Próbuję zmapować Altklucz w następujący sposób:
:map <A-j> j
:map <A-k> k
ale to nie działa (dzwonek dzwoni na Alt + j/ Alt + k).
Czego mi brakuje?
Używam terminalu w OSX, to samo dzieje się na zdalnym Linuxie.
Na Ctrl + v, Alt + j, mam: ?~H~F
( ∆
kiedy encoding=utf-8
).
Na Ctrl + v, Alt + k, mam: ?~Z
( ˚
kiedy encoding=utf-8
).
Uruchamianie vima bez wtyczek ( -u NONE
) nie robi żadnej różnicy.
key-bindings
terminal
kenorb
źródło
źródło
Alt
(naciśnij, nie przytrzymaj), a następniej
działa? Zxterm
przynajmniej muszę ustawićmetaSendsEscape
, abytrue
dostać się do tych sekwencji do pracy ... Nie wiem, czy masz ten sam problem, i nie używam OSX więc nie mogę sprawdzian ...Alt
, zwolnienie, następniej
lub dowolny inny klawisz działa normalnie. Sprawdziłem i znalazłem opcję „Użyj opcji jako klucza meta” , włączyłem ją i działa teraz. Więc ustawieniemetaSendsEscape
załatwiło sprawę, dzięki.Odpowiedzi:
Tak to robię w systemie Linux lub Cygwin:
Najpierw sprawdź, jakie znaki są wysyłane przez twój terminal po naciśnięciu ALT+ J:
Aby to zrobić, idę do konsoli i uruchamiam
sed -n l
(możesz też użyćcat
do tego). Następnie naciskam ALT+ Ji widzę, że znaki na ekranie są^[j
.Zamieniam
^[
się\e
(bo to co jest wysyłane przez mój zacisk po naciśnięciu esc) i końcowy łańcuch jest dla mnie\ej
.Następnie piszę to do mojego
.vimrc
:I mapowanie działa.
źródło
:set <M-j>=\ej
części. Czego powinienem szukać?:help :set-termcap
Z pomocą Carpetsmoker wydaje się, że Terminal nie został skonfigurowany do „Użyj Alt / Option jako meta-klucza” (jest to szczególnie powszechne w terminalach GUI).
W terminalu w OSX jest w Preferencjach -> Ustawienia -> zakładka Klawiatura -> „Użyj opcji jako klawisza meta” . Sprawdź: Jak mogę zmienić Terminal, aby używał opcji jako meta-klucza? ( Mavericks ).
W przypadku XTerm zaznacz: Konfigurowanie XTerm jako domyślnego do Meta Sends Escape, który mówi:
Następnie standardowe odwzorowania z Altkluczem takim jak:
działa w porządku.
Aby uzyskać pomoc, zobacz:
:h :map-alt-keys
.źródło
:h :map-alt-keys
inne źródło informacjiPodobne do odpowiedzi Kossaka, ale nieco prostsze, poprzez mapowanie dosłownych naciśnięć klawiszy.
Albo w trybie normalnym po naciśnięciu :, albo wstawiony do twojego
.vimrc
, mapuj dane wejściowe bezpośrednio, rozpoczynając mapowanie:następnie naciśnięcie Ctrl+, Va następnie naciśnięcie klawisza, aby nagrać, np . Alt+ ←. Będzie to wyglądać następująco:
ale każdy z nich
^[
jest pojedynczym, dosłownym znakiem ucieczki i wyróżnienie składni powinno to pokazywać. Zamień dosłowne znaki ucieczki na tekst<Esc>
i dołącz polecenie, którego chcesz użyć:Wiem, że OP mapował Alt+ litery, ale użyłem strzałek, aby pokazać, jak to zrobić dla czegoś, co może nie być domyślnie mapowane.
źródło
Działa to dla mnie na terminalu Ubuntu 16.04 xfce (i terminalu rdzy alacritty)
Ustaw wyzwalacz fragmentów ultisnip na
Meta-/
(podobnie jak fragment kodu emacsa)Oto teraz piszę
^[/
w vimieW trybie wstawiania
Ctrl-V Alt-/
(
Meta
jestAlt
klawiszem na klawiaturze komputera)źródło
Jeśli
Control+V
po niej pojawią sięALT-x
pokazy^[x
(wpisz terminal), możesz to naprawić za pomocą tego małego skryptu z vim.wikia.com :Dodaj do .vimrc dla wszystkich mapowań klawiszy alt.
źródło