Vnc를 통한 Vim: 숫자 패드 키에 예상치 못한 문자가 삽입됨

Vnc를 통한 Vim: 숫자 패드 키에 예상치 못한 문자가 삽입됨

이 질문은 다음과 일치합니다.term=xterm을 사용하는 osx에서 iterm2를 사용하여 vim에서 숫자 패드를 작동시키려면 어떻게 해야 합니까?그리고term=xterm을 사용하는 osx에서 iterm2를 사용하여 vim에서 숫자 패드를 작동시키려면 어떻게 해야 합니까?하지만 해당 답변에 설명된 요소를 찾을 수 없습니다.

Windows 상자에서 VNC를 통해 Linux 상자에 액세스하고 있습니다.

Linux 상자에서는 이 VNC 세션을 통해 Vim에서 편집하고 있으며 삽입 모드에서 숫자 키패드에서 '/' 및 '*'를 입력하면(예: C 스타일 주석을 시작하기 위해) 문자 ' 대신 o'와 'j'가 삽입됩니다(구체적으로 캐리지 리턴이 삽입된 다음 첫 번째 탭 정지에 'o' 또는 'j'가 삽입되는 것 같습니다).

내가 언급한 질문과 답변은 MacO에만 해당되는 것 같습니다. 예를 들어 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

업데이트: 또 다른 관련 요소: 저는 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 옵션" 메뉴의 메뉴 항목을 통해 언제든지 응용프로그램 모드를 켜거나 끌 수 있습니다(control-마우스 가운데 클릭).

해당 메뉴 항목은 해당 메뉴 항목에 있을 때 선택됩니다(체크 표시 포함).응용 프로그램 모드.

xterm키코드 정보를 사용하여 키패드 키를 눌렀는지 알려주고 일반/응용 모드를 사용하여 해당 키에 대해 무엇을 보낼지 결정합니다.

답변3

내가 찾은 이 문제를 해결하는 유일한 방법은 TERMtmux 내에서 환경 변수를 수정하는 것입니다.

setenv TERM xterm

(나는 실망스럽게도 tcsh에 있습니다)

그러나 이는 권장되는 장기적인 솔루션이 아닙니다.tmux 개발자는 디스플레이 문제가 발생할 가능성이 있다고 말합니다.. 지금은 제게는 잘 작동하지만 이는 확실히 "필요할 때"가 될 것입니다. 더 나은 솔루션을 듣고 싶습니다.

답변4

저는 x11vnc를 서버로, Tigervnc를 뷰어로 사용하고 있습니다. 같은 문제.

나는 그것을 로 고쳤습니다 setxkbmap -option 'numpad:microsoft'.

관련 정보