Jak uzyskać nazwę klucza do zakodowania dla mapy klawiszy w vimrc?

10

W Emacs, mogę nacisnąć Ctrl-h, kw celu opisania klucz. Mogę uzyskać nazwę klucza, nawet jeśli jest niezdefiniowana, np.

C-x <C-M-end> is undefined

W ten sposób poznałem nazwę klucza C-x <C-M-end>.

Ale jak zdobyć kluczową nazwę dla Vima?

Chcę skonfigurować mapę klawiszy dla Ctrl-Shift-Vi Shift-Insert, ale jakiego kodu muszę użyć?

Czy można uzyskać nazwę klucza w locie?

Xiè Jìléi
źródło

Odpowiedzi:

2

Najbliższe, jakie mogę znaleźć describe-key( Ctrl+ H, K), to :mappolecenie. Wyświetli listę wszystkich mapowań.

Możesz także uruchomić :map <key name>, ale musisz określić, <key>używając specjalnej składni wymienionej w
notacji klucza .

Możesz też spróbować :mapCtrl+ V<key>, co powinno pozwolić ci po prostu nacisnąć klawisz, zamiast konieczności używania specjalnej składni.

Aby powiązać Ctrl+ Shift+ V, spróbuj tego:

:map <C-S-v> whatever

lub

:mapCtrl+ V Ctrl+ Shift+V whatever

Ale upewnij się, że twój program terminalowy nie używa tego już do czegoś specjalnego, takiego jak wklej, w przeciwnym razie Vim nigdy nie zobaczy naciśnięcia klawisza.

Zobacz także map-alt-keys , które pomagają wyjaśnić, czy twój Altklucz powinien być zapisany jako <M-x>czy <A-x>.

Mikel
źródło
To Ctrl-h, k, a nie Ctrl-X, k, co oznacza bufor zabicia.
Xiè Jìléi
Przepraszamy, naprawiłem to.
Mikel
Nie jestem pewien, czy Mlub Azostanie zmapowany Alt. Ale <M-h>, <M-l>po prostu nie działają. Nie wiem, czy nazwa klucza jest nieprawidłowa, czy kluczowe zdarzenia nie zostały wysłane do Vima. Bez dziennika, bez wskazówek.
Xiè Jìléi
Tak, Altjest trudne, ponieważ większość terminali wysyła ESCwtedy, xgdy Alt+xjest naciśnięty, i skąd Vim wie, że nie nacisnąłeś ESCwtedy x. Zasadniczo Altdziała tylko w Gvim.
Mikel
5

Aby dowiedzieć się, co klucz lub kombinacja klawiszy generuje w Vimie, zwykle otwieram pusty bufor za pomocą „ :enew”, wchodzę w tryb wstawiania, naciśnij control-v, a następnie klawisz lub kombinację klawiszy, którą chcę zidentyfikować. Ta sztuczka control-v może również działać w wierszu: -command, więc definiowanie mapowań do testowania jest dość łatwe. Na przykład „ :map control-vi kombinacja klawiszy „ :echo 'it works'”.

Heptyt
źródło
0

Wystarczy wpisać Ctrl+ Vw locie i klawisze, które chcesz nacisnąć. Jeśli nie znaleźli oczekiwanego rezultatu (jak na przykład <c-space>, <c-cr>, <M-i>, ...) to po prostu oznacza używasz vim nie gvim. Sposób, w jaki vim rozumie wpisane klawisze, jest powiązany z konfiguracją twojego terminala (terminali). gvim używa własnych definicji, więc nie ma nic do skonfigurowania.

Luc Hermitte
źródło