사용자 도구

사이트 도구


vim:tips

Vim Tips

현재 파일의 인코딩 변경

  • 파일의 인코딩을 잘못 지정해서 읽어들였을 때
  • Vim에서는 - 기호 없이 인코딩을 지정한다. 예) euckr, utf8
:e ++enc=인코딩

Undo/Redo

  • u : Undo
  • <Ctrl-R> : Redo

Script / command 실행

  • -c “command” 첫번째 파일을 읽고서 ex command에 기술된 명령실행
    vim -c 'ex command' filename # 
  • -s scriptfilename : 파일을 읽고서 scriptfilename에 기술된 키를 그대로 눌러줌
    vim -s scriptfile filename
    • scriptfile 내에 기술된 키를 그대로 사람이 누른것과 같이 작동함
      Osome text to add^Msome more text to add^[:%s/text/TEXT^M:wq^M
      • ^M : <CR> 의미. <Ctrl-V 혹은 Q><CR>를 누르면 써지는 문자
      • ^[ : <ESC> 의미. <Ctrl-V 혹은 Q><ESC>를 누르면 써지는 문자

빈 줄 삭제하기

아무것도 없는 줄

:g/^$/d
혹은
:v/./d

공백이 있는 줄

:g/^\s*$/d
혹은
:v/\S/d

뒤따르는 공백을 삭제하고, 세 줄 이상의 빈 줄을 하나로 합친다

# 뒤따르는 공백 삭제
:%s/\s\+$//e

# 세 줄 이상의 빈 줄을 한 줄로 합친다.
:%s/\n\{3,}/\r\r/e

매칭되는 것을 제외한 다른 줄 삭제

# 패턴에 매칭되지 않는 다른 줄들 모두 삭제
:v/pattern/d

그 외 줄 삭제

여러 파일(버퍼)에 걸친 텍스트 치환(replace,substitute)

  • bufdo
    :bufdo %s/pattern/replace/ge | update
    • bufdo : 모든 버퍼에 대해 명령 수행
    • %s : 버퍼 내의 모든 줄에 대해 치환 실행
    • pattern : 검색 패턴
    • replace : 대체 문자열
    • g : global, 모두 치환
    • e : 패턴이 없어도 에러 안내기
    • | : 실행할 명령들간 구분자
    • update : 변경사항이 있으면 저장.

파일을 연 뒤에 모든 변경 취소하기

:edit!
# 혹은
:e!

find 명령으로 찾을 파일 일괄 열기

# find 결과로 나온 파일들을 모두다 Vim으로 연다.
vim $(find . -name 파일명)
 
# 혹은 find를 먼저 실행하고, 뒤이어 vim 명령을 실행해도 된다.
find . -name 파일명
vim $(!!)

bash - open vi with passed file name - Stack Overflow 참조.

저장시 끝에 있는 공백 자동 삭제

~/.vimrc에 다음을 추가한다. *.py*로 대체하면 모든 파일에 대해 적용되며, 원하는 확장자를 지정할 수 있다.

autocmd BufWritePre *.py :%s/\s\+$//e

UTF-8 BOM 제거

:set nobomb

Copy & Paste Ctrl-C, Ctrl-X, Ctrl-V

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Ctrl-V 는 insert 모드에서만 작동한다.

vim/tips.txt · 마지막으로 수정됨: 2016/09/24 15:14 저자 kwon37xi