Bir anahtarın vim'deki bir şeye bağlı olup olmadığını tespit et


89

Bir anahtarın vim'de bir şey yapıp yapmadığını anlamanın bir yolu olup olmadığını bilmek isterim. :mapKullanıcı tanımlı eşlemeleri görmek için kullanabileceğimi biliyorum , ancak yerleşik şeyler için bir şeyler var mı?

Örneğin, her zaman CTRL- Wsekmeyi kapatmak zorunda kaldım , çünkü kullanılmadığını düşündüm. Yarım yıl sonra, ben gibi, onu kullanan bazı diziler vardır öğrendim CTRL- W CTRL- Spencere bölmek ve kendim yeniden eğitmek için bir kabus oldu.


4
Kullanıcı tanımlı haritaların kazara çarpışmalarından bahsetmişken, mapleader'ı
derenio

Yanıtlar:


80

Randy Morris tarafından önerilen cevaba bakarsanız, bunu bulacaksınız

:help index 

size istediğiniz listeyi verecektir.


çok kullanışlı! Yeni bir şeyler öğrenmek için etrafı dürtmek istiyorsanız gidebileceğiniz bir yer olduğunu bilmek güzel
JonnyRaa

42

Varsayılan eşlemeyi kontrol etmek için:

:help index

Kullanıcılar veya eklenti tarafından yapılan diğer haritalama için:

:map
:map!

Gönderen http://vim.wikia.com/wiki/Mapping_keys_in_Vim_- Eğitimi (Part_1) :

İlk komut normal, görsel ve seçme ve operatör bekleme modunda çalışan haritaları görüntüler. İkinci komut, ekleme ve komut satırı modunda çalışan haritaları görüntüler.

Tipik olarak yukarıdaki komutların çıktısı birkaç sayfaya yayılır. Çıkışı vim_maps.txt dosyasına yeniden yönlendirmek için aşağıdaki komut kümesini kullanabilirsiniz:

:redir! > vim_maps.txt
:map
:map!
:redir END

Vim'in daha yeni sürümleri birdenbire daha iyi bir alternatif sunmadıkça, hem dahil edilen hem de özel tuş haritalarını aramanın tek yolu bu gibi görünüyor. mapcheck( başka bir yanıtta belirtildiği gibi ) ayrıca yalnızca özel tuş bağlamalarını da kapsar. Bir metin dosyası ve mapcheck çıktısı arasındaki temel fark bir metin dosyasına çıkışı ve / veya kullanma olmasıdır :help indexyapmanızı sağlayan/C-w kullanarak herhangi bir şey bulmak için VimC-w
Zoe

34

Tam bir cevap değil, ancak kontrol etmek isteyebilirsiniz :help map-which-keys vim'in size özel haritalarınızda kullanmanızı önerdiği anahtarların listesine .

Bu yardım bölümünde, belirli bir anahtarın bir eylemle eşlenip eşlenmediğinin nasıl anlaşılacağına dair bir öneri bulunur.


19

Kullanım :map!ve :mapmanuel olarak ayarlanan tuşlar için ve :help 'char(-combination)'anahtarları zaten vim eşleştirilir olduğunu öğrenmek için out-of-the-box (/ seçenekleri derleme senin özgü dışarı). (Biraz konu dışı ama yine de dikkate değer (sanırım): :scriptnamesHangi dosyaların hangi sırayla sağlandığını görmek için kullanın .)


Belirli bir komutu hangi tuşların tetiklediğini aramak istiyorsanız, şunu yapabilirsiniz:: redir keys.txt: map: redir end Sonra keys.txt dosyasını açın ve hangi komutların bağlı olduğunu arayın.
Christian Oudard

18

Gözden geçirdim :help indexve kullanılmayan bazı nmapanahtarların bir listesini yaptım :

  • Q ("Ex" moduna geç)
  • ZZ, ZQ hariç Z
  • \
  • <Space> (ile aynı l normal moddakiyle ; normal moddaki en büyük ve en az kullanılan anahtar)
  • gb, gc, gl, gx, gy, gz
  • gs (uyku)
  • zp, zq, zu, zy
  • cd, cm, co, cp, cq, cr, cs, cu, cx, cy
  • dc, dm, do, dp, dq, dr, ds, du, dx, dy
  • gA, gB, gC, gG, gK, gL, gM, gO, gS, gX, gY, gZ
  • zB, zI, zJ, zK, zP, zQ, zP, zS, zT, zU, zV, zY, zZ
  • ] a,] b,] e,] g,] h,] j,] k,] l,] n,] o,] q,] r,] t,] u,] v,] w,] x ,] y
  • [a, [b, [e, [g, [h, [j, [k, [l, [n, [o, [q, [r, [t, [u, [v, [w, [x , [y
  • CTRL-G, CTRL-K
  • CTRL- \ a - z (uzantılar için ayrılmıştır)
  • CTRL- \ A - Z (kullanılmıyor)

Lütfen güncelleyin / yorum yapın.


12

Kullanabilirsiniz mapcheck.: -

Örneğin, bir dosyayı girintili <CR> ,ihale gg=Ggetirmek için eşlemek istedim . Zaten bir eşleme olup olmadığını kontrol etmek için<CR> , i

if mapcheck("\<CR>", "I") == "" |echo "no mapping"

... ancak bu, eşlemenin bir dizinin parçası olup olmadığını algılamaz.


Aşağıdakilerle "o" nun normal modda bir şeye bağlı olup olmadığını kontrol etmeye çalıştım: if mapcheck ("o", "N") == "" | echo "eşleştirme yok", ancak o kesinlikle "yeni satır aç" a bağlı olduğunda "eşleme yok" bildiriyor. Yanlış mı kullanıyorum?
K. Norbert

@ K.Norbert: Bunun kullanıcı tanımlı haritalamalar için olduğuna inanıyorum
Yüce deve Moha
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.