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
u
Undo (소문자 u 주의)U
Undo current line (현재 라인의 Undo, 대문자 U 주의)^R
Redo (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