この質問は、 term = xtermを使用してosxでiter2を使用してテンキーをvimで動作させるにはどうすればよいですか? および osxでiterm2を使用してvimでテンキーを動作させるにはどうすればよいですか?) term = xterm? しかし、それぞれの回答に記載されている要素が見つかりませんでした。
WindowsボックスからVNCを介してLinuxボックスにアクセスしています。
Linuxボックスでは、このVNCセッションを介して、Vimで編集しており、挿入モードで、テンキーから「/」と「*」を入力すると(つまり、Cスタイルのコメントを開始するため)、文字「」代わりにo 'と' j 'が挿入されます(具体的には、キャリッジリターンが挿入されているように見え、最初のタブストップに' o 'または' j 'が挿入されます)。
私が指摘した質問と回答はMacO固有のようです。例えばLinuxボックスで実行されている端末とVNCの設定の間で、「xterm withNumericKeypad」への参照が見つかりませんでした。
誰かが私の説明した環境でこの問題を修正する方法をアドバイスできますか?この動作の原因が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
PS:ネットでこの情報を入手しましたが、ソースリンクが見つかりませんでした。
いくつかの一般的な場所に次のファイルを作成します。
$ 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
$
新しいマッピングを割り当てます
$ xmodmap fix_numpad
注:これを~/.vnc/xstartup
ファイルに追加して、マッピングが常に保持されるようにすることができます。
私が見つけたこれを回避する唯一の方法は、tmux内のTERM
環境変数を変更することです。
setenv TERM xterm
(私はtcshにいますが、非常に残念です)
ただし、これは推奨される長期的な解決策ではありません。 tmux開発者は表示の問題が発生する可能性が高いと言っています 。現時点では動作していますが、これは間違いなく「必要な場合」になります。より良い解決策を聞きたいと思います。
この質問は、xterm
を使用していて、アプリケーションのキーパッドモードをnormalに変更したいことを意味します( アプリケーション)。 xterm
の場合、[VTオプション]メニューのメニューエントリ(control-middle-mouse click)を使用して、いつでもアプリケーションモードのオン/オフを切り替えることができます。
これらのメニューエントリは、アプリケーションモードのときに(チェックマーク付きで)選択されます。
xterm
は、キーコード情報を使用してキーパッドキーが押されたかどうかを通知し、通常/アプリケーションモードを使用してそのキーの送信先を決定します。