Vim 経由 Vnc: テンキーキーで予期しない文字が挿入される

Vim 経由 Vnc: テンキーキーで予期しない文字が挿入される

この質問は、term=xterm の OSX で iterm2 を使用して、vim でテンキーを動作させるにはどうすればよいですか?そしてterm=xterm の OSX で iterm2 を使用して、vim でテンキーを動作させるにはどうすればよいですか?しかし、それぞれの回答に記載されている要素を見つけることができませんでした。

Windows ボックスから VNC 経由で Linux ボックスにアクセスしています。

Linux ボックスで、この VNC セッションを通じて Vim で編集しているのですが、挿入モードで、テンキーから '/' と '*' を入力すると (つまり、C スタイルのコメントを開始するため)、代わりに文字 'o' と 'j' が挿入されます (具体的には、キャリッジ リターンが挿入された後、最初のタブ ストップに 'o' または 'j' が挿入されるようです)。

私がメモした質問と回答は MacOs 固有のもののようです。たとえば、Linux ボックスで実行されているターミナルと VNC の設定の間で、「テンキー付き xterm」への参照は見つかりませんでした。

私が説明した環境でこの問題を解決する方法を誰か教えていただけますか? この動作の原因が Vim、ターミナル、または VNC のどれなのかはわかりません。

$TERM関連する場合は、、Vim バージョン、および .vimrc を以下に示します。

>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

アップデート: おそらく関連するもう 1 つの要因: bash シェル上で tmux を実行しています。私の .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

答え1

追記: この情報はネットで入手しましたが、ソースリンクが見つかりません。

  1. 共通の場所に次のファイルを作成します。

    $ 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. 新しいマッピングを割り当てる

    $ xmodmap fix_numpad
    

~/.vnc/xstartup注:マッピングが常に保持されるように、これをファイルに追加できます。

答え2

この質問は、あなたが を使用していてxterm、アプリケーションキーパッドモードを普通(設定されている間応用) の場合xterm、アプリケーション モードのオン/オフは、いつでも「VT オプション」メニュー (Ctrl キーを押しながらマウスの中央をクリック) のメニュー エントリから切り替えることができます。

これらのメニュー項目は、アプリケーションモード

xtermキーコード情報を使用して、キーパッドのキーが押されたかどうかを通知し、通常/アプリケーション モードを使用して、そのキーに対して何を送信するかを決定します。

答え3

私が見つけたこの問題を回避する唯一の方法は、TERMtmux 内で環境変数を変更することです。

setenv TERM xterm

(残念ながら私は tcsh にいます)

ただし、これは長期的な解決策としては推奨されません。tmux開発者は、表示の問題が発生する可能性が高いと述べている現時点では問題なく動作していますが、これは間違いなく「必要なとき」に行うものになります。もっと良い解決策があればぜひ教えてください。

答え4

私はサーバーとして x11vnc を使用し、ビューアーとして tigervnc を使用しています。同じ問題です。

私はそれを修正しましたsetxkbmap -option 'numpad:microsoft'

関連情報