
Esta questão se encaixaComo faço para que o teclado numérico funcione no vim usando iterm2 no osx com term=xterm?eComo faço para que o teclado numérico funcione no vim usando iterm2 no osx com term=xterm?mas não consegui encontrar os elementos descritos nessas respectivas respostas.
Estou acessando uma caixa Linux através do VNC a partir de uma caixa Windows.
Na caixa Linux, através desta sessão VNC, estou editando no Vim, e no modo de inserção, quando digito '/' e '*' no teclado numérico (ou seja, para iniciar um comentário estilo C), os caracteres ' o' e 'j' são inseridos em vez disso (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 anotei parecem específicas do MacOs; por exemplo, entre o terminal em execução na caixa Linux e as Preferências do VNC, não consegui encontrar nenhuma referência a "xterm com teclado numérico".
Alguém pode aconselhar como corrigir esse problema no ambiente descrito? Não estou claro se a origem desse comportamento é o Vim, o terminal ou o VNC.
Aqui estão $TERM
a versão do Vim e o .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
Atualizar: Um outro fator provavelmente relevante: estou executando o tmux no topo do meu shell bash. Meu .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
Responder1
PS: Peguei essa informação na net e não consegui encontrar o link da fonte agora.
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 $
Atribuir os novos mapeamentos
$ xmodmap fix_numpad
NOTA: Você pode adicionar isso ao seu ~/.vnc/xstartup
arquivo para que seus mapeamentos sejam sempre mantidos.
Responder2
A pergunta implica que você está usando xterm
e deseja alterar o modo do teclado do aplicativo paranormal(embora tenha sido definido paraaplicativo). Para xterm
, você sempre pode ativar/desativar os modos de aplicação através de uma entrada de menu no menu "Opções de VT" (controle-clique do meio do mouse):
Essas entradas de menu são selecionadas (com uma marca de seleção) quando estão nomodo de aplicação.
xterm
usa as informações do código-chave para informar se uma tecla do teclado foi pressionada e usa o modo normal/aplicativo para decidir o que enviar para essa tecla.
Responder3
A única maneira de contornar isso que encontrei é modificar a TERM
variável de ambiente no tmux:
setenv TERM xterm
(Estou em tcsh, para minha consternação)
No entanto, esta NÃO é uma solução recomendada a longo prazo.Os desenvolvedores do tmux dizem que é provável que ocorram problemas de exibição. Está funcionando para mim no momento, mas definitivamente será uma coisa "quando necessário": eu adoraria ouvir uma solução melhor.
Responder4
estou usando x11vnc como servidor e Tigervnc como visualizador. mesmo problema.
eu consertei isso com setxkbmap -option 'numpad:microsoft'
.