Vim через Vnc: цифровые клавиши для вставки неожиданных символов

527
StoneThrow

Этот вопрос согласуется с тем, как заставить numpad работать в vim, используя iterm2 на osx с term = xterm? и как мне заставить numpad работать в vim, используя iterm2 на osx с term = xterm? но я не мог найти элементы, описанные в этих соответствующих ответах.

Я получаю доступ к Linux через VNC из Windows.

В Linux на этой сессии VNC я редактирую в Vim и в режиме вставки, когда я набираю '/' и '*' на цифровой клавиатуре (то есть, чтобы запустить комментарий в стиле C), символы ' o 'и' j 'вставляются вместо этого (в частности, кажется, что вставляется возврат каретки, затем' o 'или' j 'вставляется в первой позиции табуляции).

Вопросы и ответы, которые я отметил, кажутся специфичными для MacO; например, между терминалом, работающим на Linux, и настройками VNC, я не смог найти никакой ссылки на «xterm with Numeric Keypad».

Может кто-нибудь посоветовать, как исправить эту проблему в моей описанной среде? Мне неясно, является ли источником этого поведения 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 

Обновление: еще один, вероятно, важный фактор: я запускаю tmux поверх моей оболочки bash. Мой .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 ответа на вопрос

0
m_r_nadh

PS: я получил эту информацию в сети и не смог найти ссылку на источник сейчас.

  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файл, чтобы ваши отображения всегда сохранялись.

Пожалуйста, попробуйте найти источник и [отредактируйте] свой ответ, чтобы предоставить ссылку на него. G-Man 7 лет назад 0
Это выглядело многообещающе, но, увы, ничего не изменило: описанная проблема не изменилась после создания файла с вашим размещенным контентом и добавления «xmodmap fix_numpad» в мой файл «~ / .vnc / xstartup». StoneThrow 7 лет назад 0
Это работает безупречно на моей машине, и вот мои отображения: $ xmodmap xmodmap: до 4 ключей на модификатор (коды клавиш в скобках): shift Shift_L (0x32), Shift_R (0x3e) блокировка 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 Super_L (0x73), Super_R (0x74), Super_L (0x7f), режим Hyper_L (0x80) (0x80) ), ISO_Level3_Shift (0x7c) m_r_nadh 7 лет назад 0
0
Thomas Dickey

Этот вопрос подразумевает, что вы используете xtermи хотите переключить режим клавиатуры приложения в обычный режим (пока он установлен в приложение ). Для xterm, вы всегда можете включить / выключить режимы приложения через пункт меню в меню «Параметры VT» (управление-щелчок средней кнопкой мыши):

Эти пункты меню выбираются (с галочкой), когда они находятся в режиме приложения .

xterm использует информацию о коде клавиши, чтобы сообщить ей, нажата ли клавиша на клавиатуре, и использует обычный режим / режим приложения, чтобы решить, что отправить для этой клавиши.

Похожие вопросы