note

vim tip

잘 모르던 vim의 기능들.

Color scheme 선택

:colo 까지 입력하고 Ctrl+D를 누르면 선택 가능한 항목이 표시됨

도움말 항목을 선택

:help wor까지 입력하고 Ctrl+D를 누르면 wor로 시작하는 항목이 표시됨.

Case-sensitive searching

\c 옵션을 사용하면 현재 설정된 ignorecase와 반대로 검색

LF 변경

%s/\r//g

숫사 증감

Ctrl+A 현재 커서가 위치한 곳에 있는 숫자를 증가시킴(10진수, 16진수 지원)  
Ctrl+X 숫자 감소. 음수도 지원  

모든 라인에 abc 추가

:%s/$/abc/g  

e-mail 찾기

/[a-zA-Z0-9.-]\+@  
/[a-zA-Z0-9.-]\+@[a-zA-Z0-9.-]\+  
/\([a-zA-Z0-9.-]\+@[a-zA-Z0-9.-]\+\)  

파일 읽기

:find filename    filename을 편집함  

:n **/*.c         현재 디렉토리 이하의 *.c 파일을 하나씩(한번에 하나씩) 읽어들임. **는 recursive. */*c는 1단계 아래만 검색.   
gf                현재 커서 위치에 있는 파일이름을 읽어들임   
Ctrl+W f          현재 커서 위치에 있는 파일이름을 새로운 창에 열어줌  
Ctrl+W gf         현재 커서 위치에 있는 파일으름을 새로운 탭에 열어줌  
Ctrl+^            이전 파일로 돌아감

Windows 창 크기

Ctrl+W           현재 창의 너비를 1칸 늘림
Ctrl+W 10        현재 창의 너비를 10칸 늘임

tabpage 사용하기

:tabnew           탭 추가
:#gt              # 번째 tabpage로 이동. tabpage은 1부터 시작  

vim -p a.c b.c    2개 파일을 tabpage로 열기  

현재 열어놓은 파일 목록 보기

: filles
: buffers  

Abbreviation

ia – Insert mode에서만 동작
ca – command mode에서만 동작

ab mymail cychong@gmail.com  
ab prjsrc /home/foobar/project/abc    
ia date0 =strftime("%Y.%m.%d-%H%M%S")  
ia time0 =strftime("%c")  

key mapping

nmap – normal mode only
imap – insert mode only
map – both mode
cmap – command mode only

자동으로 파일 타입에 따라 실행

autocmd BufRead, BufNewFile *.txt colo evening  
autocmd BufRead, BufNewFile *.c cool morning | set ts=2 sw=2

indentation

={motion}  

{motion} 에는 gg, G, )), ]] 등 이동 관련 키를 사용할 수 있다.

=gg     현재 줄 부터 첫번째 줄 까지 indent   
=G      현재 줄 부터 파일 마지막까지 indent  
=]]     현재 줄 부터 함수 마지막까지 indent 하고, 현재 줄에 커서가 유지됨 
=))     현재 줄 부터 함수 마지막까지 indent하고, 함수 끝으로 커서 이동

Auto completion

Ctrl+N                 현재 코드에서 대상이 되는 단어들을 보여줌          
Ctrl+P 
Ctrl+X Ctrl+F          현재 디렉토리에 있는 파일목록을 보여줌  
Ctrl+X Ctrl+K Ctrl+N   사전 검색 모드 동작

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s