VI 에디터에서 방향키 사용 시 영문자가 입력되는 문제

Ubuntu 또는 다른 리눅스 환경에서 vi 또는 vim 에디터를 사용할 때, 방향키를 누르면 A, B, C, D 같은 이상한 영문자가 입력되는 문제가 발생하는 경우가 있다. 이 문제는 대부분 터미널 설정, vi vs vim, 키보드 입력 모드와 관련이 있다.

문제 현상 요약

  • vi 편집 중 방향키를 누르면 다음과 같은 문자가 입력됨:
^[[A    ← 위쪽 화살표
^[[B    ← 아래쪽 화살표
^[[C    ← 오른쪽 화살표
^[[D    ← 왼쪽 화살표
  • 주로 insert 모드에서 발생

원인

  1. vi가 vim이 아닌 실제 “nvi” 또는 “elvis” 같은 오래된 vi clone인 경우
  2. 터미널의 TERM 설정이 잘못되어 있거나 너무 제한적인 경우
  3. .vimrc 또는 .exrc 등 설정 파일이 없어서 입력 모드 처리에 문제가 있는 경우
  4. locale 또는 keyboard 설정 문제

해결 방법

1. vim 설치 확인

Ubuntu의 기본 vivim-tiny 또는 busybox vi일 수 있음. 이를 일반 vim으로 대체해야 한다.

sudo apt update
sudo apt install vim

2. vi를 vim으로 링크 설정

sudo update-alternatives --config editor

→ 목록 중에서 vim.basic 또는 vim을 선택

3. .vimrc 생성 및 입력 모드 제어

홈 디렉토리에 .vimrc를 생성하고 다음 내용을 추가:

set nocompatible
set backspace=2

nocompatible은 vi 호환 모드를 끄고, vim 고유 동작을 활성화한다.

backspace=2는 입력 모드에서 백스페이스/방향키 처리를 개선함.

4. 터미널 설정 확인

TERM 환경 변수를 확인:

echo $TERM
  • xterm, xterm-256color, screen, tmux-256color 등이 적절함
  • 너무 제한적인 dumb, linux, vt100 등일 경우 방향키가 제대로 인식되지 않음

필요 시:

export TERM=xterm-256color

기타 팁

vim 대신 nvim(Neovim) 사용

보다 현대적인 대체제:

sudo apt install neovim
nvim somefile.txt

요약

해결 방법설명
vim 설치vi 대신 최신 vim 사용
.vimrc 설정set nocompatible, backspace 옵션 적용
TERM 설정xterm-256color 등으로 설정
update-alternatives기본 편집기를 vim으로 지정
nvim 사용방향키 등 키 지원이 더 안정적임

참고

답글 남기기