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?

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>.


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'”.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.