Vim bis Vnc: Zifferntasten, die unerwartete Zeichen einfügen

574
StoneThrow

Diese Frage greift folgende Fragen auf: Wie bekomme ich das Numpad, um in vim mit iterm2 auf osx mit term = xterm zu arbeiten? und Wie bekomme ich das Numpad in vim mit iterm2 auf osx mit term = xterm? aber ich konnte keine Elemente finden, die in den jeweiligen Antworten beschrieben werden.

Ich greife über VNC von einer Windows-Box auf eine Linux-Box zu.

In der Linux-Box, in dieser VNC-Sitzung, bearbeite ich in Vim und im Einfügemodus tippe ich '/' und '*' über den Ziffernblock (dh um einen Kommentar im C-Stil zu starten) die Zeichen ' o 'und' j 'werden stattdessen eingefügt (insbesondere scheint ein Wagenrücklauf eingefügt zu werden, dann wird das' o 'oder' j 'am ersten Tabulatorstop eingefügt).

Die Fragen und Antworten, die ich festgestellt habe, scheinen MacOs-spezifisch zu sein. ZB zwischen dem auf der Linux-Box laufenden Terminal und den Präferenzen von VNC konnte ich keinen Verweis auf "xterm with Numeric Keypad" finden.

Kann jemand raten, wie Sie dieses Problem in meiner beschriebenen Umgebung beheben können? Ich bin mir nicht klar, ob die Ursache dieses Verhaltens Vim, das Terminal oder VNC ist.

Hier sind die $TERMVim-Version und .vimrc, wenn sie relevant sind:

>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 

Update: Ein anderer wahrscheinlich relevanter Faktor: Ich verwende tmux auf meiner Bash-Shell. 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 
0

2 Antworten auf die Frage

0
m_r_nadh

PS: Ich habe diese Informationen im Internet und konnte den Quelllink jetzt nicht finden.

  1. Erstellen Sie die folgende Datei an einem üblichen Ort:

    $ 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  $ 
  2. Weisen Sie die neuen Zuordnungen zu

    $ xmodmap fix_numpad 

HINWEIS: Sie können dies zu Ihrer ~/.vnc/xstartupDatei hinzufügen, sodass Ihre Zuordnungen immer erhalten bleiben.

Bitte versuchen Sie, die Quelle zu finden, und [bearbeiten] Ihre Antwort, um einen Link zur Quelle bereitzustellen. G-Man vor 6 Jahren 0
Das sah vielversprechend aus, aber leider machte es keinen Unterschied: Das beschriebene Problem ist unverändert, nachdem eine Datei mit Ihrem veröffentlichten Inhalt erstellt wurde und "` xmodmap fix_numpad "'zu meinem` ~ / .vnc / xstartup' hinzugefügt wurde. StoneThrow vor 6 Jahren 0
Es funktioniert einwandfrei in meinem Rechner und hier sind meine Zuordnungen: $ xmodmap xmodmap: bis zu 4 Schlüssel pro Modifikator (Schlüsselcodes in Klammern): shift Shift_L (0x32), Shift_R (0x3e) sperren Caps_Lock (0x42) Control Control_L (0x25) , Control_R (0x6d) mod1 Alt_L (0x40), Alt_R (0x71), Meta_L (0x9c) mod2 Num_Lock (0x4d) mod3 mod4 Super4 (0x73), Super_R (0x74), Super_L (0x7f), Hyper_L (0x80) mod5 Mode_switch (0x8) ), ISO_Level3_Shift (0x7c) m_r_nadh vor 6 Jahren 0
0
Thomas Dickey

Die Frage impliziert, dass Sie verwenden xterm, und wollen die Anwendung Tastaturmodus drehen normalen (während es eingestellt wurde, Anwendung ). Für xterm, können Sie immer die Anwendungsarten Ein- / Ausschalten über einen Menüeintrag im „VT Optionen“ -Menü (control-middle-Mausklick):

Diese Menüeinträge werden ausgewählt (mit einem Häkchen), wenn sie sich im Anwendungsmodus befinden .

xterm verwendet die Tastencodeinformationen, um anzugeben, wenn eine Tastaturtaste gedrückt wird, und im Normal- / Anwendungsmodus zu entscheiden, was für diese Taste gesendet werden soll.