Ubuntu 또는 다른 리눅스 환경에서 vi 또는 vim 에디터를 사용할 때, 방향키를 누르면 A, B, C, D 같은 이상한 영문자가 입력되는 문제가 발생하는 경우가 있다. 이 문제는 대부분 터미널 설정, vi vs vim, 키보드 입력 모드와 관련이 있다.
문제 현상 요약
vi편집 중 방향키를 누르면 다음과 같은 문자가 입력됨:
^[[A ← 위쪽 화살표
^[[B ← 아래쪽 화살표
^[[C ← 오른쪽 화살표
^[[D ← 왼쪽 화살표
- 주로 insert 모드에서 발생
원인
- vi가 vim이 아닌 실제 “nvi” 또는 “elvis” 같은 오래된 vi clone인 경우
- 터미널의 TERM 설정이 잘못되어 있거나 너무 제한적인 경우
.vimrc또는.exrc등 설정 파일이 없어서 입력 모드 처리에 문제가 있는 경우- locale 또는 keyboard 설정 문제
해결 방법
1. vim 설치 확인
Ubuntu의 기본 vi는 vim-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 사용 | 방향키 등 키 지원이 더 안정적임 |