Vim에서 제공하는 기본 기능
혹시 이 글을 읽고 Vim에 관심을 가지게 되셨나요?
Vim에 관심있는 사람들을 위한 Discord 커뮤니티
vim.kr 바로 여러분들을 위한 커뮤니티입니다.
Disclaimer : 혼선을 방지하기 위해 이 문서에서는 키맵을 설명할때 대/소문자를 구분해서 표기함.
- CTRL/SUPER/ALT 키를 동시에 입력하는 경우에는
CTRL + SHIFT + A
와 같이 표기
Buffer 관련 기능
command
:e(dit) <file>
- 일반적으로는 파일을 편집하기 위해 사용되는 커맨드이지만, 외부 프로그램을 통해서 변경된 파일을 현재 버퍼에서 새로고침할때도 사용할 수 있다.:term(inal)
- Vim 화면을 띄워놓고 shell 명령어를 입력할 수 있는 프롬프트를 열어준다. Vim/Neovim 각각 동작하는 방식이 미묘하게 다르다.- Vim의 경우 : 화면이 수직으로 분할되어 terminal buffer가 열린다.
- Neovim의 경우 : 현재 활성화된 버퍼가 terminal buffer가 된다.
- 소스코드를 편집하다가 말고 현재 버퍼를 terminal buffer로 활용하는게 이상하게 느껴질 수 있지만, 커맨드 모드에서는 alias 커맨드를 사용할 수 없다. alias 커맨드를 tmux window를 벗어나지도 않고, 지금 띄우고 있는 터미널탭을 이탈하지 않고도 사용할 수 있으려면 선택가능한 유일한 선택지가
:term
명령어로 터미널 버퍼를 띄우고 거기서 alias 커맨드를 실행하는 것이다.
- 소스코드를 편집하다가 말고 현재 버퍼를 terminal buffer로 활용하는게 이상하게 느껴질 수 있지만, 커맨드 모드에서는 alias 커맨드를 사용할 수 없다. alias 커맨드를 tmux window를 벗어나지도 않고, 지금 띄우고 있는 터미널탭을 이탈하지 않고도 사용할 수 있으려면 선택가능한 유일한 선택지가
:%w !pbcopy
- 현재 버퍼에 있는 모든 소스코드를 클립보드에 쓰기 연산을 실행할 수 있다. 즉, 복사/붙여넣기를 아주 간단하게 할 수 있다. 소스코드를 붙여넣기할때는 당연히 (SUPER
orCtrl
) +V
키를 입력해주면 된다.- Neovim의 경우에도
:wshada
/:rshada
를 활용한 트릭으로 가능하지만,w !pbcopy
를 이용한 트릭이 훨씬 편하다. - 이는 visual mode에서도 사용할 수 있는데,
:'<'>w !pbcopy
와 같이 사용할 수 있다.
- Neovim의 경우에도
:! <command> %
- 현재 버퍼가 열고 있는 파일을 커맨드라인에 파라미터로 넘겨줄 수 있다. 여기서%
가 현재 버퍼가 열고 있는 파일을 나타낸다.- ex)
:! poetry run pylint %
- 현재 버퍼가 열고 있는 파일을 린터로 분석 - ex2)
:! poetry run python manage.py test %
- 현재 버퍼가 열고 있는 파일의 테스트 코드를 실행
- ex)
keymap
CTRL + w
+H/J/K/L
: h/j/k/l 표기법을 보면 알 수 있듯이 현재 활성화된 버퍼를 화면의 맨왼쪽/맨아래쪽/맨위쪽/맨오른쪽으로 위치를 옮김. 왼쪽/오른쪽으로 옮길 경우 버퍼의 높이가 화면 전체의 높이로 조정이 되고, 위쪽/아래쪽으로 옮길 경우 버퍼의 너비가 화면 전체의 너비로 조정이 됨.CTRL + w
+Ctrl + r / Ctrl + R
: 버퍼의 위치를 위아래 혹은 좌우로 rotate하면서 swap한다.