W vimie, jak zmapować „prawe polecenie” i „lewe polecenie” na początek linii i koniec linii na komputerze Mac?

10

Staram się, aby wyglądało to jak domyślna edycja tekstu na komputerze Mac. Próbowałem map! <D-Left> 0 i map! <D-Right> $ w ~ / .vimrc, ale oczywiście to nie działa. W jaki sposób mogę to zrobić?

Marty
źródło

Odpowiedzi:

9

O ile mi wiadomo, składnia modyfikatora klawiszy poleceń ( <D-...>) działa tylko w instancjach Vima w trybie GUI w systemie Mac OS X.

Vim instancji musi być oparte na GUI, ponieważ większość emulatory terminali ( Terminal , iTerm , itd.) Nie generują sekwencje kontrolne dla kombinacji klawiszy poleceń, tak tty tylko instancją Vim nie ma sposobu, aby wiedzieć, że kombinacja klawisz Command był kiedykolwiek wciśnięty (emulator terminala nigdy nie wysyła niczego przez interfejs tty). W rzeczywistości Terminal wiąże klawisze and ← i (→ (Command-Left i -Right) z cyklicznymi ruchami przez otwarte okna, więc te klawisze są „już zajęte” podczas pisania w kontekście Terminala .

MacVim (działający w trybie GUI) zawiera mapowania funkcjonalne (między innymi naciśnięciami klawiszy w stylu Mac)<D-Left>i<D-Right>(odpowiednio, na<Home>(prawie identyczne z0) i<End>(identyczne z$). Jednym zastrzeżeniem jest to, że te domyślne odwzorowania są ustanowione$VIM/gvimrc, więc można je tylko poprawnie zastąpić z twojego~/.gvimrc .

Myślę, że istnieją inne wersje Vima dla Mac OS X oparte na graficznym interfejsie użytkownika , ale MacVim wydaje się być jedyną nowoczesną.

Z grubsza, pliki startowe są przetwarzane w następującej kolejności: $VIM/vimrc, ~/.vimrc, $VIM/gvimrc, ~/.gvimrc. Ponieważ mapy MacVim 's , musisz umieścić swoje mapowanie (jeśli naprawdę chcesz go zastąpić) w swoim , aby miało ono „ostateczne zdanie”.$VIM/gvimrc<D-Left><D-Left>~/.gvimrc

Chris Johnsen
źródło
dzięki. wypróbowałem iTerm 2, zadziałało z tym, ale wciąż ... co za ból ... witam z powrotem w moim życiu, Xcode
Marty