Vim através de Vnc: teclas numéricas inserindo caracteres inesperados

0

Esta questão se encaixa em mas não consegui encontrar elementos descritos nessas respectivas respostas.

Estou acessando uma caixa do Linux através do VNC de uma caixa do Windows.

Na caixa Linux, através desta sessão VNC, estou editando no Vim, e no modo de inserção, quando eu digito '/' e '*' do teclado numérico (isto é, para iniciar um comentário no estilo C), os caracteres 'o' e 'j' são inseridos (especificamente, um retorno de carro parece ser inserido, então o 'o' ou 'j' é inserido na primeira parada de tabulação).

As perguntas e respostas que eu notei parecem específicas do MacOs; por exemplo. entre o terminal rodando na caixa Linux e as Preferências do VNC, não encontrei nenhuma referência ao "xterm com o teclado numérico".

Alguém pode aconselhar como corrigir esse problema no meu ambiente descrito? Não estou claro se a origem desse comportamento é Vim, o terminal ou o VNC.

Aqui estão $TERM , versão do Vim e .vimrc, se forem relevantes:

>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

Atualização: Um outro fator provavelmente relevante: Estou executando o tmux no topo do meu shell bash. Meu arquivo .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
    
por StoneThrow 13.01.2017 / 01:59

2 respostas

0

PS: Eu tenho essa informação na net e não consegui encontrar o link da fonte agora.

  1. Crie o seguinte arquivo em algum local comum:

    $ 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. Atribuir os novos mapeamentos

    $ xmodmap fix_numpad
    

NOTA: Você pode adicioná-lo ao seu arquivo ~/.vnc/xstartup para que seus mapeamentos sejam sempre mantidos.

    
por 08.09.2017 / 21:42
0

A questão implica que você está usando xterm , e quer transformar o modo do teclado numérico do aplicativo para normal (enquanto estiver configurado para aplicação ). Para xterm , você pode ativar / desativar os modos de aplicação através de uma entrada de menu no menu "Opções VT" (clique no meio do mouse):

As entradas do menu são selecionadas (com uma marca de seleção) quando estão no modo de aplicação .

xterm usa as informações do código de tecla para informar se uma tecla do teclado numérico é pressionada e usa o modo normal / aplicativo para decidir o que enviar para essa chave.

    
por 27.11.2017 / 02:24