Strg-Links und Strg-Rechts funktionieren in Vim während einer Bildschirmsitzung nicht

Strg-Links und Strg-Rechts funktionieren in Vim während einer Bildschirmsitzung nicht

In vim sind Strg-links und Strg-rechts durch Leerzeichen getrennte Wörter vorwärts und rückwärts (also Synonyme für B und W), dasselbe gilt für Web-Textbereiche und bash.

Beim Ausführen von funktionieren diese Tasten jedoch screennicht mehr. Wenn sie gedrückt werden, wechselt vim stattdessen zur Befehlszeile und gibt dort 5Coder ein 5D.

Hier ist die Kodierung, die ich für diese Schlüssel habe:

$ cat >/dev/null    # pressing control-left, then control-right:
^[[1;5C^[[1;5D

Übrigens: Ich habe versucht, diese Tasten in neu zuzuordnen .screenrc, und zwar wie folgt:

bindkey ^[[1;5D stuff B
bindkey ^[[1;5C stuff W

Dies funktioniert für vim, aber jetzt funktionieren diese Tasten nicht in der bashBefehlszeile (stattdessen wird nur Boder ausgegeben W).

Ich vermute, das ist ein termcapMysterium, das ich nie verstanden habe ... danke für jede Aufklärung!

Antwort1

Es gibt mehrere Möglichkeiten, dies zu beheben. Eine Möglichkeit besteht darin, den Wert von $TERM zu notieren, bevor Sie screen starten (wahrscheinlich xterm), und dann, nachdem Sie vim innerhalb von screen gestartet haben, die Option „term“ auf diesen Wert zu setzen. Beispiel:

:set term=xterm

Eine andere Möglichkeit besteht darin, Zuordnungen für diese Zeichenfolgen zu definieren:

:map <esc>[1;5D <C-Left>
:map <esc>[1;5C <C-Right>

Sie können jede dieser Lösungen in Ihrer ~/.vimrc unter der Bedingung ausführen, dass Sie screen verwenden, und zwar wie folgt:

if &term == "screen"
    map <esc>[1;5D <C-Left>
    map <esc>[1;5C <C-Right>
endif

Antwort2

Mein .vimrcin Ubuntu, um Strg-Pfeiltasten zu handhaben

map  <Esc>[1;5A <C-Up>
map  <Esc>[1;5B <C-Down>
map  <Esc>[1;5D <C-Left>
map  <Esc>[1;5C <C-Right>
cmap <Esc>[1;5A <C-Up>
cmap <Esc>[1;5B <C-Down>
cmap <Esc>[1;5D <C-Left>
cmap <Esc>[1;5C <C-Right>

map  <Esc>[1;2D <S-Left>
map  <Esc>[1;2C <S-Right>
cmap <Esc>[1;2D <S-Left>
cmap <Esc>[1;2C <S-Right>

verwandte Informationen