Meine Pfeiltasten funktionieren zu Hause im Einfügemodus nicht in vi, sondern fügen jeweils eine neue Zeile und einen Großbuchstaben wie 'A' ein. Gibt es eine Möglichkeit, das zu beheben?
Offensichtlich ist die Lösung Emacs. Offensichtlich.
Paul Nathan
38
@ Paul Nathan - Wenn die Lösung Emacs ist, dann möchte ich nicht wissen, was das Problem ist.
Chas. Owens
Antworten:
107
Ich nehme an, Sie verwenden vim, da dies als Linux gekennzeichnet ist. Versuchen:
:set nocompatible
(Möglicherweise möchten Sie Ihre .vimrc-Datei damit konfigurieren, indem Sie diesen Befehl hinzufügen. Erstellen Sie eine neue .vimrc-Datei, falls diese noch nicht in Ihrem Ausgangsverzeichnis vorhanden ist, echo $HOMEund überprüfen Sie den Pfad des Ausgangsverzeichnisses .)
Stellen Sie sicher, dass Sie vi mit dem Befehl starten vimund nicht vi. Die meisten erweiterten und nützlichen Funktionen von vimsind standardmäßig deaktiviert, es sei denn, Sie beginnen mit vim.
Punkte
1
@pts - nur auf kaputten Systemen. Das Starten von vim als vi auf allen meinen Boxen funktioniert einwandfrei. Es gibt jedoch einige von mir verwendete CentOS-Boxen, die das Verhalten demonstrieren, über das Sie sprechen.
Chas. Owens
Kann jemand diese Antwort so bearbeiten, dass sie enthält, wie sie in einem vimrc aussehen würde?
Stephan
1
@Stephan Add set nocompatibleauf einer eigenen Linie in der .vimrc
Matthew Wilcoxson
Unter Ubuntu habe ich dieses Problem gelöst, indem ich von diesem Moment an einfach vim (sudo apt install vim) installiert habe. Vi funktioniert gut mit den Pfeiltasten im Einfügemodus. Edit: Ich sehe jetzt, dass dies hier unten bereits von Han erwähnt wurde.
Pizzamonster
74
Ubuntu wird standardmäßig mit ausgeliefert vim-tiny, das nicht alle Schnickschnack hat, die vim hat.
Machen Sie schnell sudo apt-get install vim, um alle saftigen Funktionen zu erhalten, über die alle sprechen.
Dies war genau das, was ich in Mint Linux brauchte. Durch die Installation von vim konnte ich immer noch "vi" verwenden und die gesamte Code-Hervorhebung war jetzt aktiviert. Was für ein fantastisches Stück Linux-Wissen :)
wired00
1
Dies funktionierte für meinen Raspberry Pi (Jessie Lite). Ich hatte dieses Problem, als ich die Shell darin sichern wollte, aber jetzt ist es vollständig behoben :-)
JakeD
35
:set term=builtin_ansi
habe es für mich behoben. Sie können dies entweder im Escape-Modus (Piep-Modus) in vim einfügen oder am Ende von ~ / .vimrc ohne das führende ":" hinzufügen.
: set term = xterm funktioniert möglicherweise auch (und ist leichter zu merken).
Alexx Roche
Zu Ihrer Information habe :set term=builtin_ansiich für mich gearbeitet. :set term=xtermnicht.
FractalSpace
Auf einer meiner Linux-Boxen verwende ich export TERM=xtermin der Kommandozeile, bevor ich vi :set term=xterm
Alexx Roche
Funktioniert perfekt! Danke dir!
Akhmedzianov Danilian
Dies funktioniert, um die Navigation mit den Pfeiltasten zu aktivieren, hat jedoch die gesamte Farbcodierung im Terminal vollständig zerstört.
Ken Ingram
16
vi unterstützt keine Pfeiltasten im Einfügemodus. Verwenden Sie vim. Obwohl Ihr vi möglicherweise nur ein Link zu vim ist, kann es so konfiguriert sein, dass es sich wie das "ursprüngliche" vi verhält und somit die Pfeiltasten deaktiviert. Rufen Sie einfach vim direkt auf.
Obwohl dies keine Lösung ist, ist es die beste Erklärung für das Verhalten (imo), um den Unterschied zwischen viund deutlich zu machen vim. Aber auf meiner Box vimdruckt command not found: D
Daniel W.
@DanFromGermany Vielleicht hast du nur ein vi installiert und kein vim. Bitte versuchen Sie, vim über den Paketmanager Ihres Linux-Systems zu installieren, wenn Sie es verwenden möchten.
Lothar
:set term=ansihat für mich gearbeitet, danke Raz . Sie sagen, es "unterstützt nicht". Ich frage mich, haben Sie gesagt, dass vim-tinydas Ubuntu-Paket, das ich verwende, sich von Vanille unterscheidet, vioder würde das Einstellen von Begriffen auch darin funktionieren?
n611x007
8
Noch eine Variation: Dieses Problem trat für mich nach einigen .vimrc-Änderungen auf. Eine konzertierte Suche ergab schließlich, dass meine clevere Neuzuordnung von ESC im normalen Modus keine gute Idee war. Das Entfernen löste das 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
Dies scheint auch bei mir mit einem Docker-Container funktioniert zu haben.
Ohlando
1
Dieser hat auch für mich funktioniert. Ich benutze cmd.exe in Windows und sshing in Ubuntu mit Vagrant
Codelogn
@ CodeCodeO-1-O-log-n Welche Seite haben Sie also viauf den Fenstern oder auf der Ubuntu-Seite verwendet? :)
n611x007
Unter Windows habe ich cmd.exe und dann vagrant ssh auf den Ubuntu-Server und dann vi auf den Server ausgeführt. Aber später habe ich angefangen, Putty zu verwenden und ich muss das nicht mehr tun und Putty funktioniert großartig für mich.
Codelogn
2
Ich hatte das gleiche Problem mit den Pfeiltasten, aber als ich diese Einstellung nocp oder nocompatible verwendet habe, funktionierte meine Rücktaste nicht richtig
Aus irgendeinem Grund sudo apt-get install vimhatte vi bei der Installation von vim mit
keine Probleme mehr mit Pfeilen oder Rücktasten
und nachdem ich eine Stunde lang herumgegraben hatte, stellte ich fest, dass das AutoClose-Plugin (das sowieso nicht gefiel) die Pfeiltasten brach.
Die Plugin-Dokumente schlagen vor, dass man set ttimeoutlen = 100 setzen sollte, aber das hat bei mir nicht funktioniert! (mit urxvt + screen oder urxvt und sogar xterm)
Antworten:
Ich nehme an, Sie verwenden vim, da dies als Linux gekennzeichnet ist. Versuchen:
(Möglicherweise möchten Sie Ihre .vimrc-Datei damit konfigurieren, indem Sie diesen Befehl hinzufügen. Erstellen Sie eine neue .vimrc-Datei, falls diese noch nicht in Ihrem Ausgangsverzeichnis vorhanden ist,
echo $HOME
und überprüfen Sie den Pfad des Ausgangsverzeichnisses .)quelle
vim
und nichtvi
. Die meisten erweiterten und nützlichen Funktionen vonvim
sind standardmäßig deaktiviert, es sei denn, Sie beginnen mitvim
.set nocompatible
auf einer eigenen Linie in der .vimrcUbuntu wird standardmäßig mit ausgeliefert
vim-tiny
, das nicht alle Schnickschnack hat, die vim hat.Machen Sie schnell
sudo apt-get install vim
, um alle saftigen Funktionen zu erhalten, über die alle sprechen.quelle
:set term=builtin_ansi
habe es für mich behoben. Sie können dies entweder im Escape-Modus (Piep-Modus) in vim einfügen oder am Ende von ~ / .vimrc ohne das führende ":" hinzufügen.
quelle
:set term=builtin_ansi
ich für mich gearbeitet.:set term=xterm
nicht.export TERM=xterm
in der Kommandozeile, bevor ich vi:set term=xterm
vi unterstützt keine Pfeiltasten im Einfügemodus. Verwenden Sie vim. Obwohl Ihr vi möglicherweise nur ein Link zu vim ist, kann es so konfiguriert sein, dass es sich wie das "ursprüngliche" vi verhält und somit die Pfeiltasten deaktiviert. Rufen Sie einfach vim direkt auf.
quelle
vi
und deutlich zu machenvim
. Aber auf meiner Boxvim
drucktcommand not found
: D:set term=ansi
hat für mich gearbeitet, danke Raz . Sie sagen, es "unterstützt nicht". Ich frage mich, haben Sie gesagt, dassvim-tiny
das Ubuntu-Paket, das ich verwende, sich von Vanille unterscheidet,vi
oder würde das Einstellen von Begriffen auch darin funktionieren?Noch eine Variation: Dieses Problem trat für mich nach einigen .vimrc-Änderungen auf. Eine konzertierte Suche ergab schließlich, dass meine clevere Neuzuordnung von ESC im normalen Modus keine gute Idee war. Das Entfernen löste das Problem:
quelle
Das einzige, was für mich funktioniert hat, war ": set term = ansi"
quelle
vi
auf den Fenstern oder auf der Ubuntu-Seite verwendet? :)Ich hatte das gleiche Problem mit den Pfeiltasten, aber als ich diese Einstellung nocp oder nocompatible verwendet habe, funktionierte meine Rücktaste nicht richtig
Aus irgendeinem Grund
sudo apt-get install vim
hatte vi bei der Installation von vim mit keine Probleme mehr mit Pfeilen oder Rücktastenquelle
Ich hatte gerade ein Problem mit den Pfeiltasten, nachdem ich auf git in .vim umgestellt hatte.
Ich habe dieses Repo installiert - https://github.com/sunaku/.vim
und nachdem ich eine Stunde lang herumgegraben hatte, stellte ich fest, dass das AutoClose-Plugin (das sowieso nicht gefiel) die Pfeiltasten brach.
Die Plugin-Dokumente schlagen vor, dass man set ttimeoutlen = 100 setzen sollte, aber das hat bei mir nicht funktioniert! (mit urxvt + screen oder urxvt und sogar xterm)
Also habe ich das Plugin am Ende entfernt.
quelle
Vielleicht möchten Sie auch 'noesckeys' ausprobieren
quelle
Ich hatte das gleiche Problem bei der Verwendung von vim in Windows 8.1 mit Cygwin.
Die Lösung für mich ist, führen Sie einfach den folgenden Befehl in Ihrem Cygwin-Terminal aus:
quelle
Schreiben Sie in die Befehlszeile Folgendes:
quelle