Aşağıdaki satırı .vimrc'ye ekleyerek eşlemeye çalıştım, ancak işe yaramıyor. .Vimrc dosyasının Vim tarafından yüklendiğini kontrol ettim.
map <Alt-D> <C-D>
bu eşlemede herhangi bir hata var mı?
Aşağıdaki satırı .vimrc'ye ekleyerek eşlemeye çalıştım, ancak işe yaramıyor. .Vimrc dosyasının Vim tarafından yüklendiğini kontrol ettim.
map <Alt-D> <C-D>
bu eşlemede herhangi bir hata var mı?
encoding
, eşleme çalıştıktan sonra değişiklikleriniz olursa, Alt tuşlarınızdan elde ettikleriniz başlangıçta ayarladığınızla eşleşmeyebilir.
Yanıtlar:
Dışarıdaki Mac kullanıcıları için: ALT + hjkl'yi eşlemek için, bunun yerine üretilen gerçek karakteri kullanın (INSERT modundayken kombinasyonu kullanarak hangi karakteri kullandığınızı bulun), örneğin klavyemle:
<ALT+j> ==> ª
<ALT+k> ==> º
ve bunun gibi. Çözüm burada StackOverflow'da bulundu .
Bunu .vimrc'mde ALT + k \ j ile satırları yukarı ve aşağı taşımak için kullandım:
nnoremap ª :m .+1<CR>==
nnoremap º :m .-2<CR>==
inoremap ª <Esc>:m .+1<CR>==gi
inoremap º <Esc>:m .-2<CR>==gi
vnoremap ª :m '>+1<CR>gv=gv
vnoremap º :m '<-2<CR>gv=gv
burada açıklandığı gibi .
Umarım yararlıdır, Vim'in tadını çıkar :)
Dylan_Larkin (2019) TARAFINDAN EKLE: Bunun bir Mac'te çalışması için , Terminal-> Tercihler-> Klavye'de " Seçeneği Meta Anahtar Olarak Kullan " seçeneğinin KAPALI olması gerekir.
cat
. cat
Kedi penceresinin içine istediğiniz tuş kombinasyonunu yazmanız yeterlidir . Mac'imde alt + parantezlerin "ve" olduğunu öğrendim.
nmap ˙ <C-w><Left> nmap ¬ <C-w><Right> nmap ˚ <C-w><Up> nmap ∆ <C-w><Down>
sed -n l
Eşlemeyi yapılandırmadan önce <Ak> ve <Aj> çıktılarını görmek için kullanın . Benim durumumda <Aj> ∆
ve <Ak>˚
Use Option as Meta Key
iTerm profili ayarlanırken veya üzerinde ⌥ key to Esc+
geleneksel yöntem (Linux / Unix'te olduğu gibi) gibi davranacaktır. Yani haritayı Vim'de ayarlamanıza gerek yok <^[j>
, sadece <A+j>
veya <M+j>
ile eşleştirin ve çalışır.
:help key-notation
farklı anahtarları eşlemek için hangi formatın kullanılması gerektiğini açıklar. Alt durumunda, ya <A-
da kullanabilirsiniz <M-
. Yani haritanız
map <M-d> <C-d>
nore
Eşleştirmeler için sağ tarafın yeniden değerlendirilmesine açıkça izin vermek istemediğiniz sürece :map
(örneğin noremap
) değişkenini kullanmanızı da öneririm .
<A-d>
. Muhtemelen o gönderir böylece terminalin ayarlarını değiştirmek gerekir <A-d>
olarak <Esc>d
.
Artık "mümkün" olduğundan emin değilim. Lütfen aşağıdaki güncellemeyi okuyun.
Evet, terminal vim'de bile yapabilirsiniz, ancak tüm cevabı yakalayan gerçek bir şey yoktur . Temel olarak iki adımı izlemelisiniz:
<M-d>
Gösterimin var olduğundan emin olun ve terminal girdilerinizin tam olarak neyi eşleştirin ( ^[
kaçış karakteridir):
$ cat
^[d
$
" in your .vimrc
execute "set <M-d>=\ed"
" you have to use double quotes!
Yeni "oluşturulmuş" kombinasyonunuzla bir şeyi eşleyin:
noremap <M-d> :echo "m-d works!"<cr>
Nasıl çalıştığını anladığınızda, bu "numara" yı diğer "garip" kombinasyonlara genişletebilirsiniz, örneğin, termit kullanıyorum ve vim, <S-F1>
aldığım kediyi kullanarak tanımıyor ^[[1;2P
. Sonra, vimrc'imde yapıyorum: execute "set <S-F1>=\e[1;2P"
ve sonra onu herhangi bir şeyle eşleştirebilirim.
Not: Nedenini bilmiyorum, ancak bazı insanlar için \<Esc>
bunun yerine eser kullanıyor \e
.
Güncelleme (Şubat 2016)
Terminalinizin çalıştığı terminfo'ya bağlı olarak, belki ... çoğu terminalde, örneğin "alt + h" ile eşlenir ^[h
, yani: "escape + h". Böylece anahtarların üzerine yazabilir. Sadece denedim (tekrar) ve işe yarıyor gibi görünüyor, ancak bunun çok hatalı ve hataya açık bir uygulama olduğuna inanıyorum.
Yine de, yeterince cesur olanlar için, işte deneysel bir eklenti:
execute "set...
doğrudan kullanabilirsiniz set <M-d>=^[d
. ^[
Aslında ile girilen bir kaçış karakteridir C-v-Esc
. Bu rxvt / urxvt'de gerekliydi, ancak xterm'in özel muameleye ihtiyacı olmamalı. Bu konu hakkında daha fazla bilgiyi vim wiki'de bulabilirsiniz .
Mac OSx'te Vim'de Alt Anahtarını Eşle:
Terminalinizin vim'e gönderdiği anahtar kodunu görüntüleyerek başlayın:
$ sed -n l
^[[1;9D
Yukarıdaki örnekte komutu çalıştırdım ve düğmesine bastım Alt + Left.
^[[1;9D
Böylece biz, kullanıcı vim gönderilen kaçan dizisidir bizim haritalama.
map <Esc>[1;9D
Option
tuş ( ⌥
) Esc+
ile vim'den alt+q
çıkmak için nnoremap <silent> <Esc>q :qa!<cr>
Terminaliniz Alt-D'yi "düzgün" iletemeyebilir. CV'yi Vim'e gönderilen gerçek kaçış sırasını almak için kullanabilir ve eşlemenizi oluşturmak için kullanabilirsiniz. Yani, .vimrc dosyanızı düzenleyin ve aşağıdaki sırayı "CV Alt-D" yazarak gerçek olanı değiştirin, böylece vimrc'nizde doğru kaçış sırasına sahip olursunuz. Terminaliniz vim'e hiçbir şey göndermezse bu işe yaramaz.
Terminalim ^[x
komutlar üretir (örneğin, alt-x için). Vim'de çalışmasını sağlayan şey, vim.wikia.com'daki şu küçük komut dosyasıydı :
for i in range(97,122)
let c = nr2char(i)
exec "map \e".c." <M-".c.">"
exec "map! \e".c." <M-".c.">"
endfor
Tüm alt anahtar eşlemelerini düzeltmek için .vimrc'ye ekleyin.
nnoremap <Esc>j :m .+1<CR>==
ve benzerini değiştirmek zorunda kaldım ...
Merhaba, yıllarca Mac'te yukarıdakileri test ettikten sonra iyi bir çözüm bulamadım, aramaya devam ettim.
İşte benim çözümüm:
Alt içeren bir kombinasyon tuş vuruşu oluşturmak için, kombinasyonu tercih> klavyede bildirmeniz ve bu kombinasyonu vim kurulum dosyasında kullanmanız gerekir (meta anahtar olarak kullanım seçeneğini işaretleyin).
a
Normal bir karakteri geçersiz kılmamak için çıktı alışılmadık bir karakter olmalıdır ( örneğin hayır ).
Aşağıdaki örnekte, ALT-Up ile oldukça vim yapabilmelisiniz.
vim ayarı:
mac ayarı: