Klawisze strzałek vi w Linuksie zepsute w trybie wstawiania
95
Moje klawisze strzałek nie działają w domu w trybie wstawiania w vi, po prostu wstawiają nową linię i wielką literę, jak „A”. Czy jest sposób, aby to naprawić?
@Paul Nathan - Jeśli rozwiązaniem jest emacs, to nie chcę wiedzieć, w czym jest problem.
Chas. Owens
Odpowiedzi:
107
Zakładam, że używasz Vima, ponieważ jest on oznaczony jako Linux. Próbować:
:set nocompatible
(Możesz skonfigurować swój plik .vimrc z tym, dodając do niego to polecenie. Utwórz nowy plik .vimrc, jeśli nie jest jeszcze obecny w katalogu domowym, uruchom, echo $HOMEaby sprawdzić ścieżkę katalogu domowego.)
Upewnij się, że uruchamiasz vi poleceniem, vima nie vi. Większość zaawansowanych i przydatnych funkcji programu vimjest domyślnie wyłączona, chyba że uruchomisz ją za pomocą vim.
pkt
1
@pts - tylko w zepsutych systemach. Uruchamianie vima jako vi na wszystkich moich komputerach działa dobrze; jednak jest kilka okien CentOS, których użyłem, które pokazują zachowanie, o którym mówisz.
Chas. Owens
Czy ktoś może edytować tę odpowiedź, aby uwzględnić jej wygląd w pliku vimrc?
Stephan,
1
@Stephan Add set nocompatiblewe własnej linii w .vimrc
Matthew Wilcoxson
W Ubuntu rozwiązałem to, po prostu instalując vim (sudo apt install vim) od tego momentu na vi działa dobrze z klawiszami strzałek w trybie wstawiania. Edycja: Widzę, że Han już o tym wspomniał poniżej.
pizzamonster
74
Ubuntu jest domyślnie dostarczane z vim-tiny, które nie ma wszystkich dzwonków i gwizdków, które ma vim.
Zrób szybko, sudo apt-get install vimaby uzyskać wszystkie soczyste funkcje, o których wszyscy mówią.
To było dokładnie to, czego potrzebowałem w miętowym Linuksie. Po zainstalowaniu vima nadal mogłem zacząć używać "vi" i całe podświetlanie kodu było teraz włączone. Cóż za fantastyczna wiedza o Linuksie :)
wired00
1
To zadziałało dla mojego Raspberry Pi (Jessie Lite). Doświadczyłem tego problemu, gdy chciałem zabezpieczyć powłokę, ale teraz został on całkowicie rozwiązany :-)
JakeD
35
:set term=builtin_ansi
naprawiłem to dla mnie. Możesz wkleić to do vima w trybie ucieczki (tryb bleep) lub dodać na końcu ~ / .vimrc bez początkowego ":"
: set term = xterm również może działać (i jest łatwiejszy do zapamiętania).
Alexx Roche
FYI :set term=builtin_ansipracował dla mnie. :set term=xtermnie.
FractalSpace
na jednym z moich Linux-ów, których używam export TERM=xtermw wierszu poleceń przed wywołaniem vi, a następnie :set term=xtermw vim 7.2 działa dla mnie
Alexx Roche
Działa idealnie! Dziękuję Ci!
Achmedzianov Danilian
Działa to, aby umożliwić nawigację za pomocą klawiszy strzałek, ale całkowicie zabiło kodowanie kolorami w terminalu.
Ken Ingram
16
vi nie obsługuje klawiszy strzałek w trybie wstawiania. Użyj vim. Chociaż twoje vi może być po prostu linkiem do vima, może być skonfigurowane tak, aby zachowywało się jak "oryginalne" vi i tym samym wyłącza klawisze strzałek. Po prostu wywołaj vim bezpośrednio.
Chociaż nie jest to rozwiązanie, jest to najlepsze wyjaśnienie zachowania (imo), wyjaśniające różnicę między vii vim. Ale na moim pudełku vimodbitki command not found: D
Daniel W.
@DanFromGermany Może masz zainstalowany tylko vi, a nie vim. Spróbuj zainstalować vim za pośrednictwem menedżera pakietów systemu Linux, jeśli chcesz go używać.
lothar
:set term=ansipracował dla mnie dzięki Raz . mówisz, że „nie obsługuje”. Zastanawiam się, czy powiedziałeś to, ponieważ vim-tinypakiet ubuntu - używam - różni się od wanilii, viczy też ustawienie terminów będzie działać w tym?
n611x007
8
Jeszcze jedna odmiana: ten problem pojawił się u mnie po kilku zmianach w pliku .vimrc. Wspólne poszukiwania ostatecznie ujawniły, że moje sprytne ponowne odwzorowanie ESC w trybie normalnym nie było dobrym pomysłem. Usunięcie go rozwiązało problem:
" this is NOT something you want in .vimrc:
" In normal mode, hitting Esc turns off search highlights:
nmap <ESC> :nohl<CR> " Do NOT add this to .vimrc
Wydaje się, że to również zadziałało dla mnie przy użyciu kontenera Docker.
ohlando
1
Ten też działał dla mnie. Używam cmd.exe w
systemie
@ CodeCodeO-1-O-log-n, więc z której strony korzystałeś vipo stronie systemu Windows, czy po stronie Ubuntu? :)
n611x007
W systemie Windows uruchomiłem cmd.exe, a następnie włączyłem ssh do serwera ubuntu, a następnie vi do serwera. Ale później zacząłem używać Putty i nie muszę już tego robić, a Putty działa świetnie.
codelogn
3
Miałem ten sam problem z klawiszami strzałek, ale kiedy użyłem tego ustawienia nocp lub nocompatible, mój backspace nie działał poprawnie
z jakiegoś powodu, kiedy instalowałem vima z
sudo apt-get install vim, vi nie miał już żadnych problemów ze strzałkami lub backspace
Odpowiedzi:
Zakładam, że używasz Vima, ponieważ jest on oznaczony jako Linux. Próbować:
(Możesz skonfigurować swój plik .vimrc z tym, dodając do niego to polecenie. Utwórz nowy plik .vimrc, jeśli nie jest jeszcze obecny w katalogu domowym, uruchom,
echo $HOME
aby sprawdzić ścieżkę katalogu domowego.)źródło
vim
a nievi
. Większość zaawansowanych i przydatnych funkcji programuvim
jest domyślnie wyłączona, chyba że uruchomisz ją za pomocąvim
.set nocompatible
we własnej linii w .vimrcUbuntu jest domyślnie dostarczane z
vim-tiny
, które nie ma wszystkich dzwonków i gwizdków, które ma vim.Zrób szybko,
sudo apt-get install vim
aby uzyskać wszystkie soczyste funkcje, o których wszyscy mówią.źródło
:set term=builtin_ansi
naprawiłem to dla mnie. Możesz wkleić to do vima w trybie ucieczki (tryb bleep) lub dodać na końcu ~ / .vimrc bez początkowego ":"
źródło
:set term=builtin_ansi
pracował dla mnie.:set term=xterm
nie.export TERM=xterm
w wierszu poleceń przed wywołaniem vi, a następnie:set term=xterm
w vim 7.2 działa dla mnievi nie obsługuje klawiszy strzałek w trybie wstawiania. Użyj vim. Chociaż twoje vi może być po prostu linkiem do vima, może być skonfigurowane tak, aby zachowywało się jak "oryginalne" vi i tym samym wyłącza klawisze strzałek. Po prostu wywołaj vim bezpośrednio.
źródło
vi
ivim
. Ale na moim pudełkuvim
odbitkicommand not found
: D:set term=ansi
pracował dla mnie dzięki Raz . mówisz, że „nie obsługuje”. Zastanawiam się, czy powiedziałeś to, ponieważvim-tiny
pakiet ubuntu - używam - różni się od wanilii,vi
czy też ustawienie terminów będzie działać w tym?Jeszcze jedna odmiana: ten problem pojawił się u mnie po kilku zmianach w pliku .vimrc. Wspólne poszukiwania ostatecznie ujawniły, że moje sprytne ponowne odwzorowanie ESC w trybie normalnym nie było dobrym pomysłem. Usunięcie go rozwiązało problem:
źródło
Jedyną rzeczą, która zadziałała, było „: set term = ansi”
źródło
vi
po stronie systemu Windows, czy po stronie Ubuntu? :)Miałem ten sam problem z klawiszami strzałek, ale kiedy użyłem tego ustawienia nocp lub nocompatible, mój backspace nie działał poprawnie
z jakiegoś powodu, kiedy instalowałem vima z
sudo apt-get install vim
, vi nie miał już żadnych problemów ze strzałkami lub backspaceźródło
Właśnie miałem problem z klawiszami strzałek po przełączeniu się na używanie git w .vim.
Zainstalowałem to repozytorium - https://github.com/sunaku/.vim
i po godzinnym kopaniu odkryłem, że wtyczka AutoClose (która i tak się nie podobała) złamała klawisze strzałek.
Dokumentacja wtyczki sugeruje, że należy ustawić ttimeoutlen = 100, ale to nie zadziałało! (używając urxvt + screen lub urxvt, a nawet xterm)
Więc usunąłem wtyczkę na końcu.
źródło
Możesz także spróbować „noesckeys”
źródło
Miałem ten sam problem podczas używania vim w systemie Windows 8.1 z Cygwin.
Rozwiązanie zadziałało dla mnie, po prostu uruchom następujące polecenie w terminalu Cygwin:
źródło
W linii poleceń wpisz:
źródło