본문 바로가기

취미

vim vi 단축키![펌]



http://egloos.zum.com/hacheo/v/3307158에서 퍼왔습니다. ㅎㅎ


자주 쓸 명령어들만 정리해봄.

  1. 명령모드(command mode)
  2. ex모드
  3. 입력모드
  4. ex모드 <=> 명령모드 <=> 입력모드

즉 ex모드에서 입력모드로 가기위해서는 명령모드를 거쳐서 가야한다. 모드라고해서 거창한것은 없다. 단지 "ESC" 키 를 한번 누르는것이 전부다.

--------------------------------------------------------------------------------------------------------------

  1. q : 종료(quit)
  2. q! : 저장하지 않고 종료
  3. e filename.xxx : 열기(open)
  4. wq! : 저장하고 종료하기

------------------------------------------입력--------------------------------------------------------------

  1. a : 커서 위치의 다음칸부터 입력
  2. A : 커서 행의 맨 마지막부터 입력
  3. i : 커서 위치부터 입력
  4. I : 커서 행의 맨 처음부터 입력
  5. o : 커서 행의 다음행에 입력
  6. O : 커서 행의 이전행에 입력
  7. s : 커서 위치의 한 글자를 지우고 입력
  8. cc : 커서 위치의 한 행을 지우고 입력

------------------------------------------이동------------------------------------------

  1. h : 왼쪽
  2. l : 오른쪽
  3. j : 아래
  4. k : 위
  5. w : 다음 단어의 첫글자로 이동
  6. b : 이전 단어의 첫글자로 이동
  7. $ : 커서 행의 맨 마지막으로 이동
  8. ^ : 커서 행의 맨 처음으로 이동 
  9. + : 다음행의 첫 글자로 이동
  10. - : 이전행의 첫 글자로 이동 
  11. ( : 문장의 처음으로 이동
  12. ) : 문장의 마지막으로 이동
  13. { : 문단의 처음으로 이동
  14. } : 문단의 마지막으로 이동 
  15. H : 커서를 화면의 맨 위로 이동
  16. M : 커서를 화면의 가운데로 이동
  17. L : 커서를 화면의 마지막으로 이동 
  18. z : 현재 행을 화면의 맨 위로 이동
  19. z. : 현재 행을 화면의 중앙으로 이동
  20. z- : 현재 행을 화면의 최하단으로 이동 
  21. [n]H : 커서를 현재 화면의 [n]행으로 이동
  22. [n]L : 커서를 현재 화면의 아래서 [n]행으로 이동 
  23. ctrl + u : 반 화면 위로 스크롤
  24. ctrl + d : 반 화면 아래로 스크롤 
  25. ctrl + b : 한 화면 위로 스크롤
  26. ctrl + f : 한 화면 아래로 스크롤 
  27. gg : 문서의 맨 첫 행으로 이동
  28. G : 문서의 맨 마지막행으로 이동
  29. [n]G : 문서의 [n]번째 행으로 이동
  30. [n] : 문서의 [n]번째 행으로 이동 

--------------------------------------------삭제------------------------------------------------------------------

  1. x, dl : 커서위치의 글자 삭제
  2. X : 커서 바로 앞의 글자 삭제
  3. dw : 한 단어를 삭제
  4. d0 : 커서 위치부터 행의 처음까지 삭제
  5. D, d$ : 커서 위치부터 행의 끝까지 삭제
  6. dd : 커서가 있는 행을 삭제
  7. dj : 커서가 있는 행과 그 다음 행을 삭제
  8. dk : 커서가 있는 행과 그 앞 행을 삭제

------------------------------------------복붙------------------------------------------

  1. yw : 커서가 있는 단어를 복사한다.
  2. yy : 커서가 있는 줄을 복사한다.
  3. v : 현재 커서부터 블록을 시작한다.
  4. y : 블록이 되어있는 부분을 복사한다.
  5. p : 현재 커서가있는곳에 붙여 넣는다.

ㅂ. 잘라내기

잘라내기를 이해하기위해서는 vi의 레지스터를 알아야 한다. vi는 총 17개의 레지스터를 가지고 있다. 일단 삭제명령으로 지운 글자들은 순서대로 레지스터로 이동한다. 그러므로 p를 눌러주면 삭제된 글자들이 붙여넣기가 된다.

ㅅ. 레지스터

윈도우에서 말하는 클립보드와 같은것이다.

  1. reg : 레지스터에 있는 내용을 볼 수 있다.
  2. "[n]p : [n]번 레지스터에 있는 값을 현재 커서위치에 붙여넣는다.

o. 블록

  • 블록은 v키를 누른뒤 커서를 이리저리 움직이면 설정된다.
  • 직사각형의 영역을 지정하기 위해서는 "ctrl + v"를 누르면 된다.
  1. ~ : 대소문자 전환
  2. d : 삭제
  3. y : 복사
  4. c : 치환(바꾸기)
  5. < : 앞에 탭 제거
  6. > : 앞에 탭 삽입

선택된 영역에 대하여 ex명령

  1. J : 행을 합침
  2. U : 대문자로 만듦
  3. u : 소문자로 만듦

------------------------------------------실행취소------------------------------------------

  1. u : 되돌리기(undo) 윈도우에서 ctrl + z 와 같다.
  2. ctrl + r 되살리기 지워진것을 다시 살린다.>

------------------------------------------문자열찾기/검색------------------------------------------

  1. /[찾고자하는 문자열] : 아래로가면서 문자열을 찾는다.
  2. ?[찾고자하는 문자열] : 위로 올라가면서 문자열을 찾는다.
    • n : 다음 문자열
    • N : 이전의 문자열

------------------------------------------찾아바꾸기(치환)------------------------------------------

  1. %s/old/new/g : 아래로 가면서 문서에 있는 모든 old문자열을 new로 바꿈
  2. s/old/new/ : 아래로 가면서 제일 처음 매칭되는 행의 문자열을 치환
  3. 2,4s/old/new/g : 2행에서 4행사이에 매칭되는 문자열을 치환한다.
  4. -1,+3s/old/new/g : 현재 커서에서 위로1줄 아래로 3줄 범위내의 문자열을 치환
  5. %s/old/new/ : 문서의 전체를 조사하되 한행에서는 처음 만나는 문자열만 치환
  6. %s/old/new/gc : 치환여부를 물어본다.