이번 포스팅에서는
리눅스·유닉스 계열에서 거의 표준처럼 사용되는 vi 편집기의
가장 기본적인 사용법과 자주 쓰는 단축키를 치트시트 형태로 정리해보겠다.
실무에서 vi를 “최소한으로”라도 다룰 줄 알면, 서버에서 직접 설정 파일 수정이나 로그 편집을 할 때 훨씬 수월해진다.

먼저 vi를 실행하고, 안전하게 나가는 법부터 정리해보자.
# vi 편집기로 파일 열기
# - 파일이 없으면 새 파일로 연다.
vi main.sh
이후 나머지 명령들은 모두 명령 모드에서 입력해야 한다.
입력 중이라면 먼저 ESC를 눌러 명령 모드로 돌아온 뒤 아래 명령을 입력한다.
:wq # 저장(write) 후 종료(quit)
:q # 저장하지 않고 종료 (변경 사항 없을 때만)
:q! # 저장하지 않고 강제 종료 (변경 사항 버림)
:w # 저장만 하고 종료는 안 함
:(콜론)을 누르는 순간 화면 맨 아래 커서가 이동하고, 그 위치에 wq, q! 같은 명령을 입력한 뒤 Enter를 치면 된다.vi는 크게 두 가지 모드로 동작한다.
가장 중요한 키는 하나다.
ESC # 언제든지 입력 모드 → 명령 모드로 전환
“지금 무슨 모드인지 헷갈린다” 싶으면 일단 ESC부터 한 번 눌러 명령 모드로 돌아오면 된다.
명령 모드에서 입력 모드로 들어가는 대표적인 키는 아래와 같다.
i # 현재 커서 위치에서부터 입력 시작 (insert)
a # 현재 커서 다음 칸부터 입력 시작 (append)
o # 현재 줄의 '아래 줄'을 새로 만들고, 그 줄에서 입력 시작
자주 쓰는 추가 키:
I # 현재 줄 맨 앞에서 입력 시작
A # 현재 줄 맨 끝에서 입력 시작
O # 현재 줄 '위에 줄'을 새로 만들고, 그 줄에서 입력 시작
아래 명령들은 모두 명령 모드에서 사용된다.
x # 커서가 있는 글자 1개 삭제
dd # 현재 줄 한 줄 삭제
yy # 현재 줄 한 줄 복사(yank)
p # 복사/삭제한 내용을 다음 줄(또는 커서 뒤)에 붙여넣기
간단한 예시 흐름:
yy → 현재 줄 복사 p → 아래 줄에 붙여넣기 dd → 현재 줄 삭제 이 패턴만 익혀도 간단한 라인 단위 편집은 충분히 처리할 수 있다.
파일이 길어지면, 빠르게 원하는 위치로 이동하는 것이 중요하다.
G # 파일 맨 끝 줄로 이동
gg # 파일 맨 처음 줄로 이동
페이지 단위 이동:
Ctrl + f # 한 페이지 아래로 이동 (page forward)
Ctrl + b # 한 페이지 위로 이동 (page backward)
현재 줄 내에서의 이동:
0 # 현재 줄 맨 앞으로 이동 (숫자 0)
$ # 현재 줄 맨 끝으로 이동
단어 단위 이동:
w # 다음 단어의 '시작'으로 이동
b # 이전 단어의 '시작'으로 이동
방향키만 써도 되지만, 위 단축키들에 익숙해지면 커서 이동 속도가 확 줄어든다.
파일 안에서 특정 문자열을 빠르게 찾을 때 사용하는 방법이다.
/[검색어] # 아래 방향으로 검색
예시:
/error # "error" 문자열을 아래쪽으로 검색
검색 후 이동:
n # 다음 검색 결과로 이동
N # 이전 검색 결과로 이동
로그나 설정 파일에서 특정 키워드를 추적할 때 /검색어 → n, N 조합을 자주 쓰게 된다.
실무에서 “vi 잘 모른다” 해도, 아래 루틴만 손에 익으면 일단 급한 편집은 다 할 수 있다.
파일 열기
vi app.log
내용 수정
i 또는 a 또는 o 로 입력 모드 진입 ESC 로 명령 모드 복귀저장 후 종료
:wq # 저장 후 종료
실수했는데 저장 안 하고 나가고 싶을 때
:q! # 변경 사항 버리고 강제 종료
이 네 가지 흐름(열기 → 수정 → 저장/종료 + 실수 시 q!)만 숙달해도,
서버에서 vi를 두려워할 이유는 거의 없어지게 된다.
이번 글에서는 vi 편집기를 처음 접할 때 꼭 알아두면 좋은
실행/종료, 모드 전환, 삭제·복사·붙여넣기, 이동, 검색 명령을
가장 많이 쓰는 최소 셋만 골라 치트시트 형태로 정리해봤다.
근데 실습을 하면서도 이게 참.. 익혀지지 않는다...
사실 전에 vscode 편집기 환경을 vim 모드로 전환되도록 세팅한적이 있었는데 그거때문에 vscode 자체를 쓰기 싫어진적이 있어서 많은 연습이 필요할듯 ㅎ!
https://vim-adventures.com/
게임을 하면서 익히는 방법도 있으니 이 방법도 써봐야지!!
“지금 무슨 모드인지 헷갈린다” 싶으면 일단 ESC부터 한 번 눌러 명령 모드로 돌아오면 된다.
우리네 인생에도 적용할 수 있습니다.
내 인생 지금 뭐하는지 모르겠다. 이 길이 맞는지 헷갈린다. 할 때는
Esc를 눌러 내 인생의 주도권을 잡는 명령 모드로 들어오면 됩니다. ^^
쉬엄쉬엄 하세요. 오쓰