Als ein guter kleiner Vim-Anwalt muss ich Ihnen sagen, dass Sie lernen sollen, wie Sie hjkl als Cursortasten verwenden. Nach der Hälfte der Erkundung des Problems dachte ich, es habe sich auf mysteriöse Weise selbst behoben, bis mir klar wurde, dass ich Tests mit hjkl anstelle der eigentlichen Pfeiltasten durchführte.
Wie auch immer, jetzt für eine echte Antwort.
Anstatt alle Bildschirme herunterzufahren und neu zu starten, können Sie die Möglichkeit des Bildschirms nutzen, zwischen Terminals zu wechseln. Drücken Sie CTRL+A
CTRL+D
, um den Bildschirm von Ihrem Terminal screen -D -R
zu trennen , und führen Sie den Befehl aus, um die Verbindung erneut herzustellen. Dadurch sollten Ihre Pfeiltasten wieder funktionieren.
Wenn Sie nicht auf dem Bildschirm, sondern nur in Vim sind, können Sie den gleichen Effekt erzielen CTRL+Z
und fg
eingeben.
Sie können auch das Cursortastenproblem in Vim umgehen, aber das Zurücksetzen hat möglicherweise andere Terminaloptionen geändert. Daher ist es sicherer, wie oben beschrieben vorzugehen, damit Sie keine anderen zufälligen Anzeige- / Tastaturprobleme feststellen. Wenn Sie die Neuzuordnungen trotzdem möchten, sind sie hier:
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
Schmuddelige Details:
Sowohl Vim als auch screen verwenden die Bibliothek ncurses, um das Terminal zu verwalten. Wenn ncurses die Steuerung eines VT100-kompatiblen Terminals übernimmt, werden unter anderem die Pfeiltasten in den "Anwendungsmodus" geschaltet, in dem die von ihnen ausgegebenen Codes geändert werden. Die Aufwärtspfeiltaste ändert sich beispielsweise von Esc
[
A
zu Esc
O
A
. Der dazu ausgegebene VT100-Steuercode lautet Esc
[
?
1
h
. Der Befehl zum Zurücksetzen des Terminals, der von Befehl + R gesendet wird, setzt die Cursortasten auf die Standardeinstellung zurück.
Durch das Trennen und erneute Anschließen des Bildschirms übernimmt ncurses die Kontrolle über das Terminal, wobei alle gewünschten Einstellungen erneut angewendet werden. Dies ist wahrscheinlich die portabelste und zuverlässigste Methode, um den Normalzustand wiederherzustellen.
VT100-Steuercodes: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm
Mit können Sie dies schnell und einfach beheben
:!reset
quelle
Wenn Sie iTerm verwenden, können Sie Ihre VIM-Sitzung durch Drücken von
command+d
und wiederherstellencommand+w
Warum?
command+d
teilt das Terminalfenster und stellt auf magische Weise das wieder her, von dem Sie gekommen sind.command+w
wird nun das gerade geöffnete geteilte Fenster schließen.quelle
Ich ordne Command-r in den iTerm-Tastenzuordnungen "Ignorieren" zu.
quelle