vim 실행 중 다른 파일 열기
버퍼 관련 명령어는 다음과 같다.
명령어 | 설명 |
---|---|
:e {file} | 파일을 편집용으로 연다. (edit) |
CTRL-6 | 이전 파일을 연다. |
vim {file1} {file2} {file3} {file} | 인자로 준 파일들을 한꺼번에 연다. |
:[#]n | 다음 파일로 이동한다. (#만큼 반복) |
:[#]N | 반대 방향으로 이동한다. |
실제로는 동시에 열린 것이 아니다.
:n
을 누르면 현재 파일을 닫고 다음 파일을 여는 것이다.
따라서 변경된 내용을 저장하지 않으면 에러가 발생한다.
vim {file1} {file2} {file3}
CTRL-6
명령을 바로 사용할 순 없다. :n
을 한 번 사용하면 사용할 수 있게 된다.명령어 | 설명 |
---|---|
:buffers 또는 :ls | 버퍼 목록을 출력한다. |
:n {pattern} | 지정된 pattern으로 파일을 검색하여 buffer 목록에 추가한다. |
[#]CTRL-6 | 버퍼 목록에서 #번째 파일을 연다. |
:0f | 현재 버퍼를 목록에서 제거한다. |
:r {file} (read) | 파일을 끼워 넣는다. 파일명 대신 buffer 번호를 입력해도 된다. |
심볼 | 설명 |
---|---|
% | 현재 편집중인 버퍼 |
# | 바로 이전에 열었던 버퍼 CTRL-6을 누르면 #파일이 열린다. |
a | 현재 화면에 보이는 버퍼 (active)창 분할 기능을 쓰는 경우 여러 파일에 a가 나타날 수 있다. |
+ | 변경된 부분이 있는 버퍼 |
명령어는 다음과 같다.
명령어 | 설명 |
---|---|
gf | 커서 위치의 파일명을 인식해서 열어준다. (goto file) |
:[#]CTRL-W f | 커서 위치의 파일명을 수평 분할된 창에 열어준다. |
:[#]CTRL-W v + gf | 커서 위치의 파일명을 수직 분할된 창에 열어준다. |
CTRL-W gf | 커서 위치의 파일명을 탭에 열어준다. |
Unix 계열 vim에서는 환경변수 path에 시스템 헤더 디렉터리가 기본으로 포함되어 있기에 C언어 헤더를 gf로 열 수 있다.
다음은 파일을 저장하거나 닫는 다양한 명령어다.
명령어 | 설명 |
---|---|
:w {file} | 파일을 저장한다. (write) |
:sav {file} | 현재 파일을 다른 이름으로 저장한다. (save as) |
:up | 변경 사항이 있는 경우에만 저장한다. (update) |
:x | Vim을 종료하면서 변경 사항이 있는 경우에만 저장한다. |
ZZ | :x를 일반모드에서 사용한다. |
:qa | 모든 창을 닫는다. (quit all) |
:x
나 ZZ
가 불필요한 디스크 입출력을 발생시키지 않으므로 효율적이다.
앞으로는 :wq
대신 :x
를 사용하도록 권장한다.
CTRL-W
로 시작하는 공통점이 있기에 외우기 쉽다.명령어 | 설명 |
---|---|
:[#]sp {file} | 파일을 수평 분할한다. (split) |
:[#]CTRL-W s | 위와 동일 |
:[#]vs {file} | 파일을 수직분할한다. (vertical split) |
:[#]CTRL-W v | 위와 동일 |
:[#]new | 새로운 창으로 수평 분할한다. |
:[#]CTRL-W n | 위와 동일 |
:[#]vnew | 새로운 창으로 수직 분할한다. (vertical new) |
:q | 현재 창을 닫는다. (quit) |
:qa | 열려있는 모든 창을 닫는다 (quit all) |
vim -o {file1} {file2} | 두 파일을 수평 분할된 창으로 연다. |
vim -O {file1} {file2} | 두 파일을 수직 분할된 창으로 연다. |
#
에 창의 크기를 지정할 수 있다.#
을 생략하면 균등하게 분할된다.:q
는 원래 현재 창을 종료하는 명령어인데, 그 동안은 창을 하나만 사용해서 vim이 종료된 것이다.명령어 | 설명 |
---|---|
CTRL-W | 방향키(h, j, k, l)지정한 방향으로 창을 이동한다. |
CTRL-W w | 시계 방향으로 이동한다. |
CTRL-W r | 창 위치를 변경한다. |
CTRL-W w
명령어 하나만 외우면 충분하다.명령어 | 설명 |
---|---|
CTRL-W = | 모든 창의 크기를 동일하게 조절한다. |
CTRL-W [#]+ | # 크기만큼 현재 창의 크기를 키운다. |
CTRL-W [#]- | # 크기만큼 현재 창의 크기를 줄인다. |
#
이 생략됐을 때, default값은 1이다.vim 7 이후 버전부터 추가된 기능이다.
명령어는 다음과 같다.
명령어 | 설명 |
---|---|
:[#]tabe {file} | 탭으로 연다. (tabedit) |
:[#]tabn | 다음 탭으로 이동한다. (tabnext) (#에 반복횟수 지정) |
CTRL-PageDown | 위와 동일 |
:[#]tabp | 이전 탭으로 이동한다. (tabprevious) |
CTRL-PageUp | 위와 동일 |
:tabm [#] | #번째 탭으로 현재 탭을 이동시킨다. (tabmove) (탭은 0부터 시작) |
:[#]tabnew {file} | #번째 위치에 비어있는 탭을 만든다. |
:[#]tabc | #번째 탭을 닫는다. (tabclose) |
vim -p file1 file2 | 두 파일을 탭으로 니눠 연다. |