프로그래밍/NDK

[스크랩]vim 명령어 요약

프리월드 2012. 9. 19. 17:28

출처 : http://blog.naver.com/dhan71?Redirect=Log&logNo=60170035092


유닉스 리눅스 프로그래밍 필수 유틸리티 개정판 

이 책을 읽고 vim 을 좀 더 잘 사용하기 위해 명령 요약을 정리

정말 좋은 책임

 

1. 저장 및 종료

  :w    저장

  :w file.txt                   file.txt 파일에 저장

  :w >> file.txt                file.txt 파일에 덧붙여서 저장

  :q                            종료

  :q!                           종료

  ZZ                            저장 후종료

  :wq!                          강제 저장 후 종료

  :e file.txt                   file.txt 파일을 불러옴

  :e                            현재 파일을 불러옴

 

2. 입력모드 전환 

  a                             커서 위치 다음 칸부터 입력

  A                             커서 행의 맨 마지막부터 입력

  i                             커서 위치에 입력

  I                             커서 행의 맨 앞에서부터 입력

  o                             커서 다음 행에 입력

  O                             커서 이전 행에 입력

  s                             커서 위치의 한 글자를 지우고 입력

  cc                            커서 위치의 한 행을 지우고 입력

 

3. 이동 

  h                             왼쪽 한 칸 이동

  j                             아래쪽 한 칸 이동

  l                             오른쪽 한 칸 이동

  k                             위쪽 한 칸 이동

  w,W                           다음 단어의 첫 글자로 이동

  b,B                           이전 단어의 첫 글자로 이동

  e,E                           단어의 마지막 글자로 이동

  <CR>                          다음 행의 첫 글자로 이동

  ^                             그 행의 첫 글자로 이동

  $                             그 행의 마지막 글자로 이동

  +                             다음 행의 첫 글자로 이동

  -                             그 행의 첫 글자로 이동

  (                             이전 문장의 첫 글자로 이동

  )                             다음 문장의 첫 글자로 이동

  {                             이전 문단으로 이동

  }                             다음 문단으로 이동

  H                             커서를 화면의 맨 위로 이동

  z<CR>                         현재 행을 화면의 맨 위로 이동

  M                             커서를 화면의 중앙으로 이동

  z.                            현재 행을 화면의 중앙으로 이동 이동

  L                             커서를 화면 최하단으로 이동

  z-                            현재 행을 화면의 최하단으로 이동

  [n]H                          커서를 위에서 n행으로 이동

  [n]L                          커서를 아래에서 n행으로 이동

  <Ctrl>-u                      반 화면 위로 스크롤

  <Ctrl>-d                      반 화면 아래로 스크롤

  <Ctrl>-b                      한 화면 위로 스크롤

  <Ctrl>-f                      한 화면 아래로 스크롤

  gg,1G                         문서의 첫 행으로 이동

  G                             문서의 마지막 행으로 이동

  [n]G                          n행으로 이동

  :[n]                          n행으로 이동

 

4. 삭제 

  x,dl                          커서 위치의 글자 삭제

  X,dh                          커서 바로 앞의 글자 삭제

  dw                            한 단어 삭제

  d0                            커서 위치부터 행의 처음까지 삭제

  D,d$                          커서 위치부터 행의 끝까지 삭제

  dd                            현재 행 삭제

  dj                            커서가 있는 행과 그 다음 행을 삭제

  dk                            커서가 있는 행과 그 앞 행을 삭제

 

5. 복사 & 붙이기 

  yy                            커서가 위치한 행 복사

  p                             붙여넣기

  [n]yy                         커서가 위치한 이후로 n행 복사

  [n]p                          n번 붙여넣기 반복

  "a[n]yy                       커서가 위치한 이후로 n행을 복사해 a 레지스터에 저장

  "ap                           a 레지스터 내용을 복사

 

6. 블록 지정 관련 

  v                             블록 지정

  [Ctrl]+v                      비주얼 블록 지정

  ~                             대소분자 전환

  d                             삭제

  y                             복사

  c                             치환

  >                             행 앞에 탭 삽입

  <                             행 앞에 탭 제거

  :                             선택된 영역에 ex 명령

  J                             행을 합침

  U                             대문자로 만듬

  u                             소문자로 만듬

 

7. 문자열 탐색 및 치환 

  /[문자열]                     문자열 탐색

  :s/old/new                    현재 행의 처음 old를 new로 교체

  :s/old/new/g                  현재 행의 모든 old를 new로 교체

  :10,20s/old/new/g             10행부터 20행까지 모든 old를 new로 교체

  :-3,+4s/old/new/g             현재 커서 위치에서 3행 위부터 4행 아래까지 모든 old를 new로 교체

  :%s/old/new/g                 문서 전체에서 모든 old를 new로 교체

  :%s/old/new/gc                문서 전체에서 모든 old를 new로 확인하며 교체

  :g/pattern/s/old/new/g        pattern이 있는 모든 행의 old를 new로 교체

  :g/pattern/s//new/g           :%s/old/new/g 와 동일

 

8. vim 정규 표현식 

  ^                             행의 첫 문자([]안에서는 not의 의미)

  $                             행의 끝

  .                             아무 문자나 한 문자 의미

  \|                            or의 의미

  []                            [] 사이의 문자 중 하나

  \{min,max\}                   min 이상 max 이하 반복됨

  *                             앞의 내용이 0번 이상 반복됨

  \+                            앞의 내용이 1번 이상 반복됨

  \<                            단어의 시작

  \>                            단의 끝

  \n                            개행 문자

  \t                            탭 문자

 

9. vim 확장 정규 표현 문자열 

  \i                            변수 지정에 사용되는 문자열 [_0-9A-Za-z]

  \I                            \i와 같지만 숫자는 제외

  \k                            keyword로 사용하는 문자 [_\.\-0-9A-Za-z>]

  \K                            \k와 같지만 숫자는 제외

  \f                            파일 이름으로 사용하는 문자

  \F                            \f와 같지만 숫자는 제외

  \p                            프린트 가능한 문자

  \P                            \p와 같지만 숫자는 제외

  \s                            whitespace character(공백과 탭)

  \S                            non whitespace character

  \d                            숫자[0-9]

  \D                            숫자가 아닌 문자 [^0-9]

  \x                            16진 숫자 [0-9A-Fa-f]

  \X                            16진 숫자가 아닌 문자 [^0-9A-Fa-f]

  \o                            8진 숫자 [0-7]

  \O                            8진 숫자가 아닌 문자 [^0-7]

  \w                            영문 단어에서 사용되는 문자 [0-9A-Za-z-]

  \W                            영문 단어에서 사용되지 않는 문자 [^0-9A-Za-z-]

  \h                            영문 단어에서 시작에 사용되는 문자 [A-Za-z]

  \H                            영문 단어에서 시작에 사용되지 않는 문자 [^A-Za-z]

  \a                            모든 알파벳 [A-Za-z]

  \A                            알파벳이 아닌 문자 [^A-Za-z]

  \l                            소문자 [a-z]

  \L                            소문자가 아닌 문자 [^a-z]

  \u                            대문자 [A-Z]

  \U                            대문자가 아닌 문자 [^A-Z]

  \e                            esc

  \t                            탭 문자

  \r                            carrage return

  \b                            backspace

  \n                            개행 문자

 

10. POSIX 문자 클래서 

  [:alnum:]                     알파벳과 숫자 [A-Za-z0-9]

  [:alpha:]                     알파벳 [A-Za-z]

  [:cntrl:]                     제어 문자

  [:blank:]                     탭과 공백 문자

  [:digit:]                     숫자 [0-9]

  [:graph:]                     제어 문자와 공백 문자를 제외한 문자

  [:lower:]                     소문자 [a-z]

  [:upper:]                     대문자 [A-Z]

  [:print:]                     제어 문자를 제외한 문자 특, 프린터할 수 있는 문자

  [:punct:]                     [:graph:] 문자 중 [:alnum:] 을 제외한 문자 (예: !,@,#,$,%,^)

  [:space:]                     공백 문자 (예: 공백,탭,캐리지 리턴,개행 문자,수직 탭,폼 피드)

  [:xdigit:]                    16진수

 

11. 파일 버퍼 관련 명령 

  :buffers                      버퍼의 내용을 나열

  :files or :ls                 버퍼의 내용을 나열

  :b[n]                         n 버퍼로 이동

  :bd[n]                        n 버퍼를 삭제(n이 없으면 현재의 버퍼를 완전 삭제)

  :bw[n]                        n 버퍼를 완전 삭제(n이 없으면 현재의 버퍼를 완전 삭제)

  :bp[n]                        이전 버퍼로 이동 (n을 붙이면 n번만큼 이전 버퍼로 이동)

  :bn[n]                        이후 버퍼로 이동 (n을 붙이면 n번만큼 이후 버퍼로 이동)

  :sb[n]                        창을 수평 분할해 n번 버퍼를 로드

  :bf                           첫 번째 버퍼로 이동

  :bl                           마지막 번째 버퍼로 이동

  :al                           현재 열려 있는 모든 버퍼를 수평 분할 창에 로드

 

12. 다중 창 관련 명령 

  <Ctrl>-ws,:sp[lit]            현재 파일을 두 개의 수평 창으로 나눔

  <Ctrl>-wv,:[n]vs[lit]         새로운 수직 창 생성. n이 붙으면 n칸 크기의 창 분할

  <Ctrl>-wn,:new                새로운 수평 창 생성

  <Ctrl>-w^                     수평 창으로 나누고 이전 파일의 오픈

  <Ctrl>-wf                     창을 수평으로 나누고 커서 위치의 파일을 오픈

  <Ctrl>-wi                     커서 위치의 단어가 정의된 파일을 오픈

  <Ctrl>-wq,:q[uit]!            현재 커서의 창을 삭제

  <Ctrl>-wc,:clo[se]            현재 커서의 창을 삭제

  <Ctrl>-wo,:on[ly]             현재 커서의 창만 남기고 모든 창 삭제

  <Ctrl>-wh                     왼쪽 창으로 커서 이동

  <Ctrl>-wj                     아래쪽 창으로 커서 이동

  <Ctrl>-wk                     위쪽 창으로 커서 이동

  <Ctrl>-wl                     오른쪽 창으로 커서 이동

  <Ctrl>-ww                     창을 순차적으로 이동

  <Ctrl>-wp                     가장 최근에 이동한 방향으로 이동

  <Ctrl>-wt                     최상위 창으로 이동

  <Ctrl>-wb                     최하위 창으로 이동

  <Ctrl>-wr                     순차적으로 창의 위치를 순환

  <Ctrl>-wx                     이전 창과 위치를 바꿈

  <Ctrl>-w=                     창의 크기를 모두 균등하게 함

  <Ctrl>-w_                     수평 분할에서 창의 크기를 최대화

  <Ctrl>-w|                     수직 분할에서 창의 크기를 최대화

  <Ctrl>-w[n]+,:res[ize]+n      창의 크기를 n행만큼 증가 (<Ctrl>-w+ 는 1행만큼 증가)

  <Ctrl>-w[n]-,:res[ize]-n      창의 크기를 n행만큼 감소 (<Ctrl>-w- 는 1행만큼 감소)

  <Ctrl>-w[n]>                  창의 크기를 오른쪽으로 n칸만큼 증가 (수직창에 한함)

  <Ctrl>-w[n]<                  창의 크기를 왼쪽으로 n칸만큼 증가 (수직창에 한함)

 

13. 마킹 및 마킹한 위치로 이동 

  ma                            a로 마킹

  `a                            a로 마킹한 위치로 돌아감

  'a                            a로 마킹한 행의 처음으로 돌아감

  ''                            직전에 커서가 위치하던 행의 처음

  ``                            직전에 커서 위치로 이동

  '"                            이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 행의 처음으로 이동

  `"                            이전에 vim으로 현재 파일을 닫았을 때 커서가 있던 위치로 이동

 

14. ctags 관련 명령 

  <Ctrl>+]                      tag가 정의된 위치를 나열하고 선택한 위치로 점프

  <Ctrl>+t                      stack top에 저장된 위치를 pop하고 그 위치로 점프

  :tn                           tj나 ts로 점프했을 때 다음 tag로 점프

  :tp                           tj나 ts로 점프했을 때 이전 tag로 점프

  :tr                           tj나 ts로 점프했을 때 처음 tag로 점프

  :tl                           tj나 ts로 점프했을 때 마지막 tag로 점프

 

15. etc 

  :20vs .                       파일 브라우징

  %                             쌍이 되는 {,} 로 이동

  /*,/#                         커서가 있는 위치의 단어 검색

  =                             소스 정렬

  <Ctrl>+wf                     현재 커서가 있는 위치의 헤더 열기

  <Ctrl>+p                      커서 위치에서 위로 검색하며 자동완성 기능 사용

  <Ctrl>+n                      커서 위치에서 아래로 검색하며 자동완성 기능 사용

  :![cmd]                       vim 을 빠져나가서 cmd 수행 후 다시 vim 으로 돌아옴

  :r ![cmd]                     cmd 수행 결과를 읽어옴

[출처] vim 명령어 요약.|작성자 대한민군

'프로그래밍 > NDK' 카테고리의 다른 글

NDK 현재 진행 상황  (0) 2012.09.19