vi 에디터 단축키 마스터하기

viemu 의 단축키 리스트가 있지만, 손에 익기 전엔 사용하기가 힘들다.

a, i, 저장, 나가기 이런 기초적인 건 제외하고 vi 에디터에서 더 빠른 작업을 위한 명령어들을 다시 알아보자.

이동

커서
l 또는 →오른쪽 한 문자
h 또는 ←왼쪽 한 문자
j 또는 ↓한 줄 아래로
k 또는 ↑한 줄 위로
0현재 줄 처음으로
^현재 줄 첫 번째 공백 아닌 글자로
현재 줄 마지막으로
W다음 단어나 마침표 기호 처음으로
shift + W다음 단어 처음으로 (마침표 무시)
B이전 단어나 마침표 기호 처음으로
shift + B이전 단어 처음으로 (마침표 무시)
ctrl + F 또는 PageDown한 페이지 아래로
ctrl + B 또는 PageUp한 페이지 위로
number + shift + G (1G)해당 줄로
shift + G파일의 마지막 줄로

L, H, J, K 가 문자 이동에 사용되는 이유는, 방향키까지 손가락을 움직이기엔 너무 멀기 때문이다.

편집

빈줄 추가

커서
o현재 줄 아래에 빈 줄 추가
shift + O현재 줄 위에 빈 줄 추가

삭제 및 자르기

d 명령어는 삭제한 텍스트를 버퍼에 보관한다.

커서
x현재 문자
3x현재 문자를 포함한 다음 2개 문자
dd현재 줄
4dd현재 줄을 포함한 다음 4줄
dW현재 커서부터 다음 단어 앞까지
d $현재 커서부터 현재 줄 끝까지
d0현재 커서부터 현재 줄 맨 앞까지
d^현재 커서부터 그 줄의 공백아닌 첫 글자까지
dG현재 줄부터 파일 끝까지
d10G현재 줄부터 다음 10번째 줄까지

복사

커서
yy현재 줄
4yy현재 줄을 포함한 다음 3줄
yW현재 커서부터 다음 단어 앞까지
y $현재 커서부터 현재 줄 끝까지
y0현재 커서부터 현재 줄 맨 앞까지
y^현재 커서부터 그 줄 공백아닌 첫 글자까지
yG현재 줄부터 파일 끝까지
y10G현재 줄부터 다음 10번째 줄까지

붙혀넣기

p

치환

1
:%s/Search/Replace/gc
  • %: 파일 열 전체 (1,$ 라면 1번 줄부터 파일 끝까지)
  • s: search and replace
  • /Search/Replace/: Search 를 Replace 문자열로 치환
  • g: global
  • c: confirm 실행

치환 확인 명령

작업
y치환 실행
n건너뛰기
a전체 치환
q종료
l이번만 치환하고 종료
ctrl + E스크롤 위로 이동
ctrl + Y스크롤 아래로 이동