vi 또는 vim에서 키패드로 숫자 입력하기

현상


vi 또는 vim에서 Keypad로 숫자입력을 할 수 없습니다.

원인


키패드로 숫자입력이 안되는 현상은 유닉스 시스템이나 터미널 에뮬레이터상에서 발생하는 문제는 아닙니다.

vi 또는 vim이 특정 터미널 종류일 경우 키패드의 숫자를 인식하지 못해서 생기는 문제입니다.

해결 방법


터미널 종류를 'xterm'이나 'vt100'이 아닌 'ansi', 'vt220'으로 바꾸어 사용하면 됩니다.

vi의 syntax highlight 기능과 같이 컬러 표현 기능을 사용하기 위해서는 ansi 터미널을 권합니다.

터미널 종류를 변경하는 방법은 Xshell 옵션에서 설정하거나, 로그인한 후 명령행으로 실행할 수 있습니다.


  • Xshell에서 터미널 종류 변경
    '등록 정보 - 터미널 - 에뮬레이션 - 터미널 종류'
    에서 터미널 종류를 선택하거나 직접 입력




  • 명령행으로 터미널 종류 변경

    $export TERM=ansi 또는 setenv TERM ansi


추가 정보


다음은 vi에서만 터미널 종류를 ansi로 바꿔 이용하는 방법이므로 참고하십시오.

사용자의 홈디렉토리에 vi라는 파일을 만들어 다음 내용을 입력합니다.

#!/bin/sh
TERM=ansi
export TERM
exec /usr/bin/vi $@


마지막으로 vi를 실행시키면 위에서 만든 스크립트가 실행되도록 합니다.

$chmod 755 $HOME/vi
$alias vi='$HOME/vi'
(C shell일 경우는 $alias vi '$HOME/vi')

(alias 부분은 사용자의 .profile이나 .cshrc, .login 등 로그인 스크립트에 넣으면 편리합니다.)

또는 alias를 이용하여 좀 더 간편한 코드를 사용할 수 있을 것 같습니다.

$ alias vi=`OLDTERM=${TERM}; TERM=ansi; \vi; TERM=${OLDTERM}'