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?
0
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 (invim
). (Spacje są dodawane dla przejrzystości. Nie wpisuj spacji, chyba że wskazałem Space).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).
i wtedy
Aby zmiany były „trwałe” (tzn. Dopóki nie zmienisz plików), umieść powyższe polecenia (
EXINIT="…"
iexport 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 wexport EXINIT="…"
.) To nie zadziała, dopóki nie zalogujesz się ponownie, a nawet dopóki nie uruchomisz nowej powłoki, chyba że po prostu wpiszEXINIT
polecenia lubsource
plik, w którym wstawiaszEXINIT
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,
(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źródło
~/.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 wpiszeszexport EXINIT=":map q jjjj"; vim some_file
, czy (q
) powoduje, że kursor przesuwa się o cztery linie w dół? Jeśli wpiszeszexport 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 odman 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.