유용한 vi, vim 명령어 정리

IT/etc 2013. 2. 6. 09:53

유용한 vi, vim 명령어 정리


 기본 기능

:w                  파일 저장하기

:q                   종료하기

h, j, k, l           커서 이동

x, dd, J           삭제

yy                   복사

p                    붙이기

u                    명령 취소

v                    범위 지정


● 터미널 단축키

Ctrl + i : 탭

Ctrl + c : 현재 작업 강제 종료

Ctrl + q : 현재 작업 강제 종료 (디버깅용)

Ctrl + s : 스크롤 잠금

Ctrl + z : 현재 작업을 백그라운드로 보냄


● 입력 모드 전환 키

a append, 현재 커서 위치에서 한칸 뒤로 이동한 후 입력 모드

A      현재 행의 끝으로 이동한 후 입력 모드로 전환

i insert,     입력모드로 전환

I        현재 행의 맨 앞으로 이동한 후 입력 모드로 전환

o Open line, 현재 행 아래에 새로운 행을 만든 뒤 입력모드로 전환

O          현재 행 위에 새로운 행을 만든 뒤 입력모드로 전환

R Replace, 모든 글자를 덧씌움


● 저장과 종료

:w         write, 현재 파일을 저장

:q         quit, vi를 종료

:wq         저장하고 종료

:w filename      다른이름으로 저장

:q!         저장 안하고 나가기

:w! filename filename에 해당하는 파일을 덮어쓴다.


● 커서 이동 키

[#]h 좌, #칸 이동

[#]l

[#]j 아래

[#]k

^ 행의 맨앞으로

$ 행의 맨끝으로

Ctrl + b page up

Ctrl + f page down

Ctrl + u page up (1/2)

Ctrl + d page down (1/2)

w,e 단어 단위 이동(앞으로)

b 단어 단위 이동(뒤로)



● 특정 위치로 이동 명령

[#]gg #행으로 이동. #생략되면 첫번째행

[#]G #행으로 이동. #생략되면 마지막행

:#         #행으로 이동

Ctrl + g         현재 문서 위치 정보를 하단에 표시


● 옵션

:set         현재 옵션 설정 확인

:set all         모든 옵션 설정 확인

:set name! on/off

:set nu 화면에 행 번호 표시

:set ai 자동 들여쓰기


● syntax 명령어

:syntax enable 문법 표시 사용 (컬러분류)

:syntax clear 문법 표시 종료


● 문자열 검색

/word word를 검색

n         다음 검색 결과로

N         반대 방향의 검색 결과로

*         커서 위치의 단어 검색

:set nohls         하이라이트 제거


● 문자열 교체

:1,$s/man/boy/g 1~$(처음부터 끝)까지 man을 boy로 교체 (g: 안물어봄)

:1,$s/man/boy/i 대소문자 무시

:1,$s/man/boy/c 교체 전 확인 (/를 escape하기 위해선 \/로 처리)

:%s/$/ <BR>/g         각 행의 끝에 <br> 넣기


● 파일관련

:edit         파일 열기 (:e)

Ctrl + 6         이전 파일 열기

:e #         #번째 파일로 이동

:w filename 파일을 저장

:sav filename 현 파일을 다른 이름으로 저장

:sp         수평으로 창 분할 (Ctrl+W, s)

:sp + filename 수평으로 다른 파일과 창 분할

Ctrl+W 분할 된 창들 사이에서 이동

:vs         수직으로 분할 (Ctrl+W, v)

:tabedit filename 탭으로 다른 파일 열기

:tabn[ext]         탭 이동 (Ctrl+PageUp,Down)

:tabc[lose] 탭 닫기

:set fenc         현재 파일의 인코딩형식

:set fenc=euc-kr,utf-8 인코딩 변경


기타 정규식은 pass (-ㅅ-);;

위 내용은 "손에 잡히는 vim"의 내용에서 필요한 부분만 발췌하였습니다.