Vim
≡ 목차 (Table of Contents)
vi 에디터는 아주 오래전 UNIX 용 편집기로 탄생한 텍스트 에디터다. 그리고 Vim(Vi Improved)은 vi 에디터의 발전된 버전으로 일단은 vi 와 Vim은 같지 않다 라고 보는 게 정석이다.
Emacs 혹은 Doom Emacs, Spacemacs 등등에서 사용되는 evil 확장도 거의 동일한 키맵을 사용하니 이 문서를 참조할 수 있다.
Vim에 관한 몇 가지 팁
커서키
종료 방법
뜬금없지만 vi 혹은 Vim 과 관련된 글에서 빠지지 않는 주제가 바로 이 종료 방법이다. 실수로 vi를 열었을 때 종료하지 못 해서 우왕좌왕하는 사태가 발생했다는 이야기는 유명하다.
vi 혹은 Vim의 종료 방법은 보통 아래처럼 설명한다.
:q
이를 풀어서 해설하자면:
ESC키를 누른 후:를 누르고q를 누르고- 엔터를 누르면
종료가 된다.
참고로 ESC 키가 없는 특정 맥북 등에서는 ESC 대신 ^[ 키 혹은 Ctrl+[ 키를 눌러도 된다.
실수로 운 좋게(?) 편집을 했다면 강제 종료의 의미로 느낌표를 붙이면 저장 없이 그대로 종료가 된다.
:q!
즉 풀어서 설명하자면:
ESC를 누르고:q!를 차례대로 누른 후- 엔터를 누르면
강제종료가 된다.
Undo/Redo
uUndo (소문자 u 주의)UUndo current line (현재 라인의 Undo, 대문자 U 주의)^RRedo (Ctrl+R)
점프(Jump)
f [character]현재 라인에서 해당 문자로 점프F [character]현재 라인에서 해당 문자로 역방향 점프
인코딩
맥 등 윈도가 아닌 OS에서 만약 텍스트 파일을 열었는데 한글이 깨져 보인다면 아래 커맨드를 시험해보자.
:e ++enc=euc-kr
만약 이걸로 안 된다면 .vimrc 파일에서 fencs 설정이 어떤지 확인해 보자.
set fencs=ucs-bom,utf-8,euc-kr,cp949
이런 내용이 있다면 아마도 되어야 정상이다. 없다면 추가하자. 참고로 euc-kr 과 cp949 는 사실상 같은 거라 맞는 쪽으로 하나만 써도 된다.
파일을 다시 utf-8 으로 저장하고 싶다면 비슷하게 아래 커맨드를 사용할 수 있다.
:w ++enc=euc-kr
클립보드
터미널에서 vim으로 특정 텍스트를 복사하거나 혹은 붙여넣기를 할 때 시스템 클립보드(혹은 Pasteboard)에 복사가 안 되는 경우나 혹은 엉뚱한 내용이 붙이기 되는 경우가 있다. 이럴 때는 아래 설정 한 줄을 넣어보자.
set clipboard=unnamed
이후 macOS에서는 복사 및 붙이기가 잘 된다. neovim 등에서는 안 되는 경우도 있으니 주의하자.
기타
di{- Delete in
{ ... }. 중괄호 블럭의 내용을 몽땅 지우라는 의미. yi{- Yank in
{ ... }. 중괄호 블럭의 내용을 카피하라는 의미. yy10p- 현재 줄을 10회 복제.
Shortcuts
Jump
f [character]- Jump to character
F [character]- Jump backward to character
;- Continue to jump
,- Continue backward to jump
Scroll
C-f- Move cursor page down
C-b- Move cursor page up
C-u- Move viewport up half page
C-d- Move viewport down half page
C-y- Move viewport down one line
C-e- Move viewport up one line
