Korzystam z vima jako przeglądarki w komendzie północy i chcę szybko przeglądać i zamykać plik. Jak mogę odwzorować klawisz Escape :qw 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 :qw trybie normalnym, aby vim zakończył działanie tylko wtedy, gdy nic się nie zmieni?
Odpowiedzi:
Aby to zrobić tylko dla bieżącej vimsesji, 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 EXINITEnter
Aby zmiany były „trwałe” (tzn. Dopóki nie zmienisz plików), umieść powyższe polecenia ( EXINIT="…"i export EXINIT) w swoim .bash_profilei / 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 EXINITpolecenia lub sourceplik, w którym wstawiasz EXINITpolecenia.
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 .exrcpliku.
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 .string1string2CtrlVvivimCtrlVEnter^M:map string2Enter
~/.exrcpliku i to również nie działa.
vimpomocą dowolnej z tych technik? Na przykład, czy masz już osobę, ~/.exrcktó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)?
vipowinien być vina całym świecie, ale OS X to nie Linux. Spróbuj zbadać visystem 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.