Korzystam z vima jako przeglądarki w komendzie północy i chcę szybko przeglądać i zamykać plik. Jak mogę odwzorować klawisz Escape :q
w trybie normalnym, aby vim zakończył działanie tylko wtedy, gdy nic się nie zmieni?
Korzystam z vima jako przeglądarki w komendzie północy i chcę szybko przeglądać i zamykać plik. Jak mogę odwzorować klawisz Escape :q
w trybie normalnym, aby vim zakończył działanie tylko wtedy, gdy nic się nie zmieni?
Odpowiedzi:
Aby to zrobić tylko dla bieżącej vim
sesji, wpisz następujące polecenia (in vim
). (Spacje są dodawane dla przejrzystości. Nie wpisuj spacji, chyba że wskazałem Space).
: m a p Space Ctrl+ V Esc Space : q Ctrl+V Enter Enter
Aby to zrobić tylko dla reszty bieżącej sesji terminalu, wpisz następujące polecenia (w terminalu, tj. Powłoka). (Podziały linii są dodawane dla zachowania przejrzystości. Wpisz następujące w jednym wierszu; nie pisz, Enterchyba że wskazałem Enter).
E X I N I T =
" : m a p Space Ctrl+ V Esc Space : q Ctrl+V Enter " Enter
i wtedy
export EXINIT
Enter
Aby zmiany były „trwałe” (tzn. Dopóki nie zmienisz plików), umieść powyższe polecenia ( EXINIT="…"
i export EXINIT
) w swoim .bash_profile
i / lub .bashrc
. (Możesz złożyć je razem w tym samym wierszu, oddzielając je ;
. Możesz to skrócić, łącząc je w export EXINIT="…"
.) To nie zadziała, dopóki nie zalogujesz się ponownie, a nawet dopóki nie uruchomisz nowej powłoki, chyba że po prostu wpisz EXINIT
polecenia lub source
plik, w którym wstawiasz EXINIT
polecenia.
Uwaga: jeśli nie używasz bash jako podstawowej powłoki, może być konieczne zmodyfikowanie powyższej powłoki.
Alternatywnie spróbuj wstawić :map …
polecenie do .exrc
pliku.
W przypadku, gdy nie jest to oczywiste,
: ciąg mapy 1 ciąg 2
(w vi
/ vim
) tworzy mapowanie (tłumaczenie), dzięki czemu podczas pisania (w trybie komend) edytor zachowuje się tak, jak podczas pisania . A + to znak super-escape, który informuje zarówno / i powłokę (w rzeczywistości prawdopodobnie wszystkie programy lub przynajmniej większość z nich), że następujący znak ma być interpretowany jako dosłowny znak tekstowy, a nie jako kontrola postać. Zauważ, że +, po
którym następuje znak powrotu karetki, często wyświetlany jako ; ale w tym jest to interpretowane jako .string1
string2
CtrlVvi
vim
CtrlVEnter^M
:map
string2
Enter
~/.exrc
pliku i to również nie działa.
vim
pomocą dowolnej z tych technik? Na przykład, czy masz już osobę, ~/.exrc
której treść działa? Jeśli wpiszesz export EXINIT=":map q jjjj"; vim some_file
, czy ( q
) powoduje, że kursor przesuwa się o cztery linie w dół? Jeśli wpiszesz export EXINIT=":set list"; vim some_file
, czy wyświetla się $
na końcach linii (i czy wyświetla tabulatory jako ^I
)?
vi
powinien być vi
na całym świecie, ale OS X to nie Linux. Spróbuj zbadać vi
system OS X (zacznij od man vi
, a następnie wyszukaj Super User, a następnie Google), aby sprawdzić, czy ma on inny sposób pozwalający ci przejść przez polecenia inicjalizacji.