vi filename # 파일 열기
a # 입력 모드로 전환
i # 입력 모드로 전환
Esc # 명령 모드로 전환
:w # 파일 저장
:q # 파일 종료
:wq # 저장 후 종료
:q! # 저장하지 않고 종료
:w filename # 다른 이름으로 저장
dd # 현재 줄 삭제
G # 파일의 끝으로 이동
gg # 파일의 처음으로 이동
:set nu # 줄 번호 표시
명령어들
# vi 텍스트 에디터 명령어
# 기본 파일 조작 명령어
vi filename # 파일 열기
:w # 파일 저장
:q # 파일 종료
:wq # 저장 후 종료
:x # 저장 후 종료 (같은 :wq)
:q! # 저장하지 않고 종료
:w filename # 다른 이름으로 저장
:e filename # 다른 파일 열기
:saveas filename # 다른 이름으로 저장 후 열기
:n # 다음 파일 열기 (열려 있는 파일 목록 중)
:N # 이전 파일 열기
# 모드 전환
i # 현재 커서 위치에서 입력 모드로 전환
I # 현재 줄의 처음에서 입력 모드로 전환
a # 현재 커서 다음 위치에서 입력 모드로 전환
A # 현재 줄의 끝에서 입력 모드로 전환
o # 현재 줄 아래에 새로운 줄 삽입 후 입력 모드로 전환
O # 현재 줄 위에 새로운 줄 삽입 후 입력 모드로 전환
Esc # 입력 모드에서 명령 모드로 전환
# 커서 이동 명령어
h # 왼쪽으로 한 글자 이동
j # 아래로 한 줄 이동
k # 위로 한 줄 이동
l # 오른쪽으로 한 글자 이동
0 # 현재 줄의 맨 앞으로 이동
^ # 현재 줄의 첫 번째 비어 있지 않은 문자로 이동
$ # 현재 줄의 맨 끝으로 이동
G # 파일의 끝으로 이동
gg # 파일의 처음으로 이동
:n # n번째 줄로 이동
Ctrl+f # 한 화면 아래로 이동
Ctrl+b # 한 화면 위로 이동
Ctrl+d # 반 화면 아래로 이동
Ctrl+u # 반 화면 위로 이동
w # 다음 단어의 처음으로 이동
b # 이전 단어의 처음으로 이동
e # 현재 단어의 끝으로 이동
# 텍스트 편집 명령어
x # 현재 커서 위치의 문자 삭제
X # 현재 커서 이전의 문자 삭제
dd # 현재 줄 삭제
dw # 현재 단어 삭제
D # 현재 커서 위치부터 줄 끝까지 삭제
C # 현재 커서 위치부터 줄 끝까지 삭제 후 입력 모드 전환
u # 마지막 명령 취소 (undo)
Ctrl+r # 취소한 명령 다시 실행 (redo)
yy # 현재 줄 복사
p # 현재 커서 다음 위치에 붙여넣기
P # 현재 커서 이전 위치에 붙여넣기
J # 현재 줄과 다음 줄을 합침
~ # 현재 커서 위치의 문자의 대소문자 전환
# 범위 지정 명령어
v # 비주얼 모드 시작 (문자 단위 선택)
V # 비주얼 라인 모드 시작 (줄 단위 선택)
Ctrl+v # 비주얼 블록 모드 시작 (블록 선택)
y # 비주얼 모드에서 선택한 영역 복사
d # 비주얼 모드에서 선택한 영역 삭제
c # 비주얼 모드에서 선택한 영역 삭제 후 입력 모드 전환
# 텍스트 교체 명령어
:s/old/new/g # 현재 줄에서 old를 new로 교체
:%s/old/new/g # 파일 전체에서 old를 new로 교체
:%s/old/new/gc # 파일 전체에서 old를 new로 교체 (교체 여부를 확인)
:1,10s/old/new/g # 1에서 10번째 줄에서 old를 new로 교체
# 검색 명령어
/keyword # 키워드 검색 (아래 방향)
?keyword # 키워드 검색 (위 방향)
n # 다음 검색 결과로 이동
N # 이전 검색 결과로 이동
* # 현재 커서 위치의 단어를 아래 방향으로 검색
# # 현재 커서 위치의 단어를 위 방향으로 검색
# 파일 설정 명령어
:set number # 줄 번호 표시
:set nonumber # 줄 번호 숨기기
:set ignorecase # 대소문자 구분 없이 검색
:set noignorecase # 대소문자 구분하여 검색
:set hlsearch # 검색어 하이라이트
:set nohlsearch # 검색어 하이라이트 해제
:set autoindent # 자동 들여쓰기 설정
:set noautoindent # 자동 들여쓰기 해제
:set tabstop=4 # 탭 폭을 4로 설정
:set shiftwidth=4 # 들여쓰기 시 4칸 이동
:set expandtab # 탭을 공백으로 변환
:set noexpandtab # 탭을 공백으로 변환하지 않음
# 기타 유용한 명령어
:!command # 외부 셸 명령어 실행 (예: :!ls)
:r filename # 파일 내용 삽입 (현재 커서 위치에)
:help command # 특정 명령어에 대한 도움말 표시 (예: :help yy)