
Diese Frage geht einher mitWie bekomme ich den Nummernblock in Vim mit iterm2 auf OSX mit term=xterm zum Laufen?UndWie bekomme ich den Nummernblock in Vim mit iterm2 auf OSX mit term=xterm zum Laufen?aber ich konnte in den jeweiligen Antworten keine beschriebenen Elemente finden.
Ich greife von einer Windows-Box über VNC auf eine Linux-Box zu.
Auf der Linux-Box bearbeite ich während dieser VNC-Sitzung in Vim, und wenn ich im Einfügemodus „/“ und „*“ über den Ziffernblock eingebe (um also einen Kommentar im C-Stil zu beginnen), werden stattdessen die Zeichen „o“ und „j“ eingefügt (genauer gesagt scheint ein Wagenrücklauf eingefügt zu werden, dann wird das „o“ oder „j“ am ersten Tabulatorstopp eingefügt).
Die Fragen und Antworten, die ich notiert habe, scheinen MacOs-spezifisch zu sein. Beispielsweise konnte ich zwischen dem auf der Linux-Box laufenden Terminal und den VNC-Einstellungen keinen Verweis auf „xterm mit Ziffernblock“ finden.
Kann mir jemand einen Rat geben, wie ich dieses Problem in meiner beschriebenen Umgebung beheben kann? Mir ist nicht klar, ob die Ursache dieses Verhaltens Vim, das Terminal oder VNC ist.
Hier sind $TERM
, Vim-Version und .vimrc, falls relevant:
>vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Dec 21 2016 15:22:28)
>echo $TERM
screen-256color
>cat ~/.vimrc
set backspace=indent,eol,start
set shiftwidth=2
set softtabstop=2
set expandtab
set smarttab
filetype plugin indent on
autocmd FileType make set noexpandtab shiftwidth=4 softtabstop=0
set cino+=(0
set statusline=
set statusline +=\[%n] "buffer number
set statusline +=\%F "File
set statusline +=%=%l/%L "currentLine/totalLine
set statusline +=%4v "virtual column
set laststatus=2
set t_Co=256
colorscheme torte
set number
"let g:netrw_liststyle = 3
syntax on
Aktualisieren: Ein weiterer wahrscheinlich relevanter Faktor: Ich führe tmux auf meiner Bash-Shell aus. Meine .tmux.conf:
>cat ~/.tmux.conf
unbind C-b
set -g prefix C-a
bind C-a send-prefix
set-window-option -g mode-keys vi
set -g set-titles on
set-window-option -g automatic-rename off
set-option -g allow-rename off
Antwort1
PS: Ich habe diese Informationen im Internet gefunden und konnte den Quellenlink jetzt nicht finden.
Erstellen Sie die folgende Datei an einem gängigen Speicherort:
$ cat fix_numpad ! initialization, ! Ensure that we have all keysyms we're going to use assigned to something. keycode any = KP_Insert keycode any = KP_End keycode any = KP_Down keycode any = KP_Next keycode any = KP_Left keycode any = KP_Begin keycode any = KP_Right keycode any = KP_Home keycode any = KP_Up keycode any = KP_Prior keycode any = KP_Delete ! Set the keypad to numeric mode. ! You may need to adjust KP_Next/KP_Prior; possible alternatives ! are KP_Page_Down/KP_Page_Up or just Next/Prior. ! just Next. keysym KP_Insert = KP_0 keysym KP_End = KP_1 keysym KP_Down = KP_2 keysym KP_Next = KP_3 keysym KP_Left = KP_4 keysym KP_Begin = KP_5 keysym KP_Right = KP_6 keysym KP_Home = KP_7 keysym KP_Up = KP_8 keysym KP_Prior = KP_9 keysym KP_Delete = KP_Decimal $
Zuweisen der neuen Zuordnungen
$ xmodmap fix_numpad
HINWEIS: Sie können dies zu Ihrer ~/.vnc/xstartup
Datei hinzufügen, damit Ihre Zuordnungen immer erhalten bleiben.
Antwort2
Die Frage setzt voraus, dass Sie verwenden xterm
und den Tastaturmodus der Anwendung aufnormal(während es aufAnwendung). xterm
Sie können die Anwendungsmodi jederzeit über einen Menüeintrag im Menü „VT-Optionen“ (Strg-Mitte-Mausklick) ein- und ausschalten:
Diese Menüeinträge sind ausgewählt (mit einem Häkchen versehen), wenn sie sich inAnwendungsmodus.
xterm
verwendet die Tastencodeinformationen, um festzustellen, ob eine Taste auf der Tastatur gedrückt wurde, und verwendet den Normal-/Anwendungsmodus, um zu entscheiden, was für diese Taste gesendet werden soll.
Antwort3
Die einzige Möglichkeit, dies zu umgehen, die ich gefunden habe, besteht darin, die TERM
Umgebungsvariable in tmux zu ändern:
setenv TERM xterm
(Ich bin in Tcsh, sehr zu meinem Bedauern)
Dies ist jedoch KEINE empfehlenswerte Langzeitlösung.Die tmux-Entwickler sagen, dass wahrscheinlich Anzeigeprobleme auftreten werden. Im Moment funktioniert es bei mir, aber das wird definitiv eine „bei Bedarf“-Sache: Ich würde gerne eine bessere Lösung hören.
Antwort4
ich verwende x11vnc als Server und Tigervnc als Viewer. Gleiches Problem.
ich habe es mit behoben setxkbmap -option 'numpad:microsoft'
.