Wiem, że uruchamianie :map
poleceń bez argumentów powinno dać mi listę mapowań zdefiniowanych przez użytkownika, ale na przykład, kiedy naciskam Ctrl-W Ctrl-I coś się dzieje, ale nie mam pojęcia, która funkcja właśnie się wydarzyła jako wbudowane mapowania nie pojawiają się w :map
poleceniach.
Jak dowiedzieć się, co robi klucz?
key-bindings
Szalony Wombat
źródło
źródło
:help CTRL-W_CTRL-I
lub:help CTRL-W_i
Odpowiedzi:
Nie możesz
Oto kod źródłowy C dla tego, co
<C-w><C-i>
:normal.c
:window.c
:Nie jestem do końca pewien, gdzie
type
zmienna jest pobierana, nie miałem ochoty na to patrzeć, ale chodzi o to, że nie ma prawdziwej możliwości powiedzenia „ten klucz jest przypisany do tej funkcji”. Jest to po prostustruct
mapowaniechar
funkcji na funkcję, a implementacja drugiego naciśnięcia klawisza (<C-i>
) jest po prostu brzydotą ad-hoc!Różni się to od Emacsa, gdzie (przypuszczam) wszystko jest w Lisp, a twoje niestandardowe mapowania nie różnią się niczym od domyślnych mapowań Emacsa. Ale w Vimie masz „magiczne” mapowania, które są dostarczane przez kod C, które mapują funkcje C, które nigdy nie są ujawniane w Vimie. Zawsze mówię, że Vim ma lepszy pomysł, ale Emacs ma lepszą implementację ;-)
Więc jedynym sposobem jest sprawdzenie go w plikach pomocy. Dlatego zamknąłem to jako duplikat Jak nawigować do tematów w dokumentacji Vima, ponieważ jest to jedyna praktyczna odpowiedź , jaką może dać każdy. Rzeczywiście można argumentować, że można podać bardziej szczegółowe wyjaśnienie tego pytania (tak jak właśnie to uczyniłem), a gdybyście argumentowali, że zamiast dać odpowiedź (teraz usuniętą), prawdopodobnie powiedziałbym „ty” racja, przepraszam za błąd ”i ponownie go otworzyłem ;-)
W każdym razie, aby krótko zilustrować konwencje kilkoma przykładami:
:help w
- mapowanie trybu normalnego dlaw
(rozróżniana jest wielkość liter);:help g8
- mapowanie trybu normalnego dlag8
;:help v_o
- mapowanie trybu wizualnego dlao
; inne tryby dotycząc
wiersza poleceń ii
wstawiania;:help CTRL-W
- mapowanie trybu normalnego dla<C-w>
;:help i_CTRL-W
- mapowanie trybu wstawiania dla<C-w>
;:help CTRL-W_CTRL-I
- mapowanie trybu normalnego dla<C-w><C-i>
;:help i_CTRL-G_<Down>
- mapowanie trybu wstawiania dla<C-g><Down>
.źródło
commandline completion
vim help przy użyciu CTRL-D (nazywam to „szukaj w pomocy”). Wpisz,:h CTRL-W
a następnie naciśnij <CTRL-D>, a otrzymasz listę wszystkich poleceń zawierających ciąg „CTRL-W”, npCTRL-W, CTRL-W_^, CTRL-W-<Down>, ...
. Wpisz,:h g8<CTRL-D>
a zobaczyszg8
i8g8
jako dostępne tematy pomocy. Bez tego musisz dokładnie wpisać temat pomocy, a znalezienie dokładnego ciągu, który działa, jest trudne.Jest w plikach pomocy vima pod adresem
:help index
Jeśli chcesz wiedzieć, które klucze nie są domyślnie mapowane, zobacz
:help map-which-keys
Uwaga: powyższe są klikalnymi linkami do najnowszej instrukcji obsługi vima
źródło
Myślę, że można uzyskać mapowania za pomocą następujących poleceń
Mam nadzieję, że to pomoże!
źródło