글
- 이동
- h, j, k, l : 좌, 하, 상, 우
- b or B : 이전 단어의 첫 글자로 이동
- w or W : 다음 단어의 첫 글자로 이동
- <CR> : 다음 행의 첫 글자로 이동
- ^ : 그 행의 첫 글자로 이동
- $ : 그 행의 마지막 글자로 이동
- ctrl + f : 한 화면 아래로 스크롤
- ctrl + b : 한 화면 위로 스크롤
- gg : 문서의 제일 처음으로 이동
- G : 문서의 제일 끝으로 이동
- [n]G : n행으로 이동
- ctrl + o : 여러 파일 편집시 이전 편집 위치로
- ctrl + i : 위의 반대
- 입력
- i : 현재 위치에 입력
- a : 다음 위치부터 입력
- o : 다음 줄에 입력
- A : 현재 줄의 맨 끝부터 입력
- I : 현재 줄의 제일 처음부터 입력
- 편집 (변경, 삭제 및 복사 붙이기)
- r : 한 글자만 변경 (이후 입력 모드로 바뀌지는 않음)
- yw : 한 단어 복사
- yy : 한 줄 복사
- p : 붙여넣기
- (ex 모드에서):reg : 레지스터 버퍼 내용 확인
- cc : 현재 줄을 지우고 입력
- cw : 현재 커서 위치의 단어 변경
- dd : 한 줄 삭제
- dw : 한 단어 삭제
- x : 현재 위치의 글자 삭제
- X : 바로 앞의 글자 삭제
- u : 되돌리기
- 블럭 지정
- v : 블럭 지정 시작 (j키로 커서 이동하여 d(삭제)나 y(복사)가 가능)
- ctrl + v : 사각형의 블럭 지정 시작
- 문자열 탐색
- /[찾고자 하는 문자열] 또는 ?[찾고자 하는 문자열]
- 문자열 치환
- :%s/[찾을 문자열]/[변경할 문자열]/g
- %s : 문서 전체에서 치환
- s : 제일 처음 매칭되는 행의 문자열만 치환
- 2,4s : 2행에서 4행 사이에서 매칭되는 문자열만 치환
- -1,+3s : 현재 커서에서 위로 1행 아래로 3행 사이에서 매칭되는 문자열만 치환
- g : 행 전체에 걸쳐서 치환 (쓰지 않으면 행에 여러 개의 매칭이 일어나도 처음 하나만 치환)
- gc : c를 두면 치환 여부를 사용자에게 물어봄
- :%s/[찾을 문자열]/[변경할 문자열]/g
- 저장 및 종료
- :w : 저장
- :w file.txt : file.txt로 저장
- :w >> file.txt : file.txt에 덧붙여서 저장
- :q : 종료
- :wq! : 강제 저장 후 종료
- :e : 현재 파일을 불러옴
- :e file.txt : file.txt를 불러옴
- 기타
- :set nu : 행 번호 표시
- :set nonu : 행 번호 숨기기
- vi -r : 되살릴 수 있는 모든 파일 이름 보여주기
- :reg : 레지스터 버퍼 확인
- 다중 창 사용하기
- :sp [파일명] : 현재 파일을 두 개의 수평 창으로 나눔
- ctrl+w s 로도 가능
- :vs [파일명] : 새로운 수직 창 생성
- ctrl+w v 로도 가능
- :new : 새로운 수평 창 생성
- ctrl+w n 으로도 가능
- ctrl+w q : 현재 커서의 창을 종료
- ctrl+w c : 현재 커서의 창을 닫기
- ctrl+w o : 현재 커서의 창만 남기고 모든 창 삭제
- ctrl+w w : 다음 창으로
- ctrl+w h/j/k/l : 해당 창으로 커서 이동
- ctrl+w = : 창의 크기를 균등하게 함
- :args : 편집 중인 파일목록 보여주기
- :n : 다음 파일로 넘어가기
- :prev : 이전 파일로 넘어가기
- :files 또는 :ls : 파일 버퍼의 내용을 보여주기
- :b[N] : N번 버퍼로 이동
- :sp [파일명] : 현재 파일을 두 개의 수평 창으로 나눔
- 반복되는 문자열을 네임 레지스터 버퍼에 저장하고 사용하기
- “a3yy : 현재 커서부터 3줄을 복사하여 a 레지스터에 저장
- 레지스터는 a부터 z까지 26개 사용 가능
- :reg : 레지스터 버퍼 확인
- “ap : a 레지스터의 내용을 붙여넣기
- “a3yy : 현재 커서부터 3줄을 복사하여 a 레지스터에 저장
- 매크로 사용
- q[네임 레지스터] : 선택한 네임 레지스터에 매크로 등록 시작, 하단에 기록 중이란 글자가 나온다
- q : 매크로 지정 완료 및 저장
- @[네임 레지스터] : 해당 레지스터의 매크로를 수행
- 5@b : b 레지스터의 매크로를 5번 수행
- 마킹으로 이동하기
- m[임의의 알파벳] : 마킹할 때
- ‘[마킹한 알파벳] : 마킹한 위치로 돌아갈 때
- A-Z는 전역 마킹, a-z는 지역 마킹
- 셀 명령어 사용
- :![명령어] : 해당 명령어 수행
- 정규 표현식의 사용
- ^ : 행의 첫 문자
- $ : 행의 끝
- . : 아무 문자나 한 문자를 의미
- \| : or의 의미
- [ ] : [ ] 사이의 문자 중 하나
- * : 앞의 내용이 0번 이상 반복됨
- \| : 앞의 내용이 1번 이상 반복됨
- \< : 단어의 시작
- \> : 단어의 끝
- \n : 새 행 문자
- \t : 탭 문자
- [a-z]\| : 모든 소문자 찾음
- [a-z]\+[0-9]\+ : 소문자로 시작해서 중간에 숫자가 들어가는 모든 단어
- OK\ [a-z]\+[0-9]* : “OK “로 시작해서 소문자가 1개 이상 꼭 오고 뒤에 숫자가 있거나 없는 단어
- ^[0-9]\+.* : 숫자로 시작하는 모든 행
- .*[0-9]$ : 숫자로 끝나는 모든 행
- \<ko : ko로 시작하는 모든 단어
- ^\t*\ \+ : 행이 공백으로 시작하거나 탭이 몇 개 있다가 공백으로 시작하는 행
- 기타 vim 팁
- '{' 또는 '}' 위에 커서를 두고 % 기호를 누르면 쌍을 이루는 '{' 또는 '}' 으로 이동
- 찾기 원하는 문자열에 커서를 두고 * 기호나 # 기호를 누르면 / 또는 ? 과 같은 결과가 나옴
- 폴딩 접기 v 로 블럭을 잡고 zf
- '{'위에 커서를 두고 v]}zf 하면 '{' 기준으로 자동으로 블록을 형성해서 폴딩함
- 폴딩 접힌 부분에서 zo 하면 폴딩 풀림
- 함수가 사용된 부분에 커서를 위치시키고 [i 누르면 화면 하단에 함수의 원형이 출력됨
- 흐트러진 소스 정렬을 명령모드에서 gg=G 입력
- .vimrc
- 파일 열때 이전 편집 위치 기억하게 하려면
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "norm g`\"" |
\ endif
'LINUX' 카테고리의 다른 글
ftp에서 mget 사용시 확인없이 진행하기 (0) | 2008.11.13 |
---|---|
ctags, screen, vim plugins (0) | 2008.11.03 |
sc_debian.wmv 따라하기 (0) | 2008.08.23 |
.bashrc (0) | 2008.08.20 |
#!/bin/bash (0) | 2008.08.13 |
RECENT COMMENT