2011년 2월 11일 금요일

VI(VIM) 명령어 정리

Vi는 세가지 모드가 존재한다.


- 표준 모드: 커서의 이동, 삭제, 복사, 붙여 넣기 등의 활동이 가능


- 입력 모드: 텍스트의 입력이 가능


- 명령라인 모드: 명령의 입력을 통한 설정, 저장, 불러오기 등의 활동이 가능






[입력 모드] <----- i , o , s ----- [표준 모드] <------ESC------- [명령라인 모드]


[입력 모드] ------- ESC -------> [표준 모드] ----: , / , ?------> [명령라인 모드]






[명령라인 모드]


- :w (저장) :w file.txt (file.txt로 저장)


- :w >> file.txt (파일에 추가 저장)


- :q (종료) ZZ (저장 후 종료) :wq! (저장 후 종료)


- :e file.txt (파일 불러오기)






[입력 모드]


- a (커서 다음 칸부터 입력) A (행의 마지막부터 입력)


- i (커서 위치부터 입력) I (행의 처음부터 입력)


- o (다음 행에 입력) O (이전 행에 입력)


- s (한 글자 지우로 입력) cc (한 행 지우고 입력)






[표준 모드]


- w or W (다음 단어의 첫 글자) b or B (이전 단어의 첫 글자)


- H (커서를 화면의 맨 위로) z + ENTER (현재 행을 화면 맨 위로)


- M (커서를 화면의 중간으로) z + . (현재 행을 화면 중간으로)


- L (커서를 화면의 최 하단으로) z + - (현재 행을 화면 최 하단으로)


- CTRL + u (반 화면 위로 스크롤) CTRL + d (반 화면 아래로 스크롤)


- CTRL + b (한 화면 위로 스크롤) CTRL + f (한 화면 아래로 스크롤)






[편집 - 삭제]


- x (커서 위치 글자 삭제) dw (한 단어 삭제)


- D (커서 위치부터 행의 끝까지 삭제) dd (행을 삭제)


[편집 – 복사]


- yw (한 단어 복사) yy (한 행 복사)


- 10yw (단어 10개 복사) 10yy (10행 복사)


- p (붙여 넣기) 2p (두 번 붙여 넣기)


[편집 – 블록지정]


- v (커서 이동 시 블록 선택 됨) --> d (삭제)


--> y (복사)


- v (커서 이동 시 블록 선택 됨) --> > (탭 삽입)


--> < (탭 제거)


- v (커서 이동 시 블록 선택 됨) --> U (대문자로)


--> u (소문자로)


- v (커서 이동 시 블록 선택 됨) --> ~ (대소문자 전환)


[편집 – redo, undo]


- u (되돌리기) CTRL + r (되살리기)


[편집 – 검색]


- /문자열 (문자열 검색) ?문자열 (문자열 역탐색)


- n (다음 검색 결과) N (이전 검색 결과)


[편집 – 치환]


- :범위/매칭문자열/치환문자열/행범위


- :%s/old/new/g (문서 전체에서 old -> new로 치환)


- :s/old/new/g (문서 전체에서 처음만 old -> new)


- 2, 4s/old/new/g (2행에서 4행까지만 old -> new)


- -1, +3s/old/new/g (현재 커서 위치에서 위로 -1, 아래로 3행 old -> new)


- %s/old/new/ (문서 전체에서 old -> new 치환하지만 한 행에 한번씩만)


[편집 – 여러 파일 편집]


- vi file1 file2 file3 (한번에 file1 ~ 3 열기)


- :ls (vi에서 목록 확인)


- :b2 (문서간에 이동 두 번째 버퍼로 이동)


- :bw (현재 버퍼 닫기)


- :al (모든 버퍼 수평 분할)


- :sb2 (두 번째 버퍼를 수평 분할해서 로드)


- :map ,1 :b!1 (1번키에 맵핑)


[편집 – 창 분할]


- CTRL + wn (가로로 분할) CTRL + ws


- CTRL + wv (세로로 분할) CTRL + wv


- CTRL + wq (분할 창 닫기) :q!


- CTRL + ww (창간 이동)


- CTRL + w= (수평분할 균등화)


댓글 없음:

댓글 쓰기