반응형


이제 Vim 에디터를 조금 더 고급스럽게 써보는 방법인 창분할 과 탭 사용법에 대해서 알아보도록 하자.
사실 본인의 경우는 창을 분할해서 사용하기 보단 여러개의 터미널로 접속해서 사용하였다. 물론 이렇게 하게 되면 각 창별로 내가 셋팅해서 사용할 수 있기 때문에 편하긴 하지만 서버에 터미널 접속 갯수의 제한이 있거나 동시에 파일을 여러개 띄어놓고 한개의 창에서 작업하기에는 창 분할을 사용하는게 더욱 효율적이다. 물론 어느 것이나 그렇지만 익숙해지면 정말로 훌룡한 기능이다. 비쥬얼 베이직이나 여러 다른 편집 툴 역시 탭이나 창분할을 지원하기도 하지만 Vim은 빠르고 사용법이 간단하다는 장점이 있으니 Vim 에디터의 창분할 기능을 적극적으로 사용해서 사용해보자.

------------------------------------------------------------------------------------------------------------------------------------

 명령어  설명   모드 
 :#sp filename  #에 숫자를 넣은 행의 크기 만큼 창이 수평 분할된다. filename을 넣게 되면 해당 파일을 오픈하거나 없으면 새파일을 만든다. 같은 파일에서는 일반모드로 #ctrl-w s 를 치면 #크기 만큼 창이 수평으로 분할된다.  명령행 모드
 :#vs filename  #에 숫자를 넣은 열의 크기 만큼 창이 수직 분할된다. filename을 넣게 되면 해당 파일을 오픈하거나 없으면 새파일을 만든다. 같은 파일에서는 일반모드로 #ctrl-w v 를 치면 #크기 만큼 창이 수직으로 분할된다.  명령행 모드
 :#new filename  #에 넣은 숫자만큼 상하로 창을 수평 분할하여 위쪽에 창에는 새로운 파일을 생성하여 표시한다. 일반모드에서 #ctrl-w n 를 치면 단축키로 사용할 수 있다.   명령행 모드
 :#vnew filename   #에 넣은 숫자만큼 좌우로 창을 수직 분할하여 왼쪽에 창에는 새로운 파일을 생성하여 표시한다.  명령행 모드
 ctrl-w ctrl-방향키
또는 ctrl-w 방향키
또는 ctrl-w ctrl-h,j,k,l (소문자)
 현재 창에서 해당 방향의 창으로 이동할 때 사용된다. 방향키 대신 소문자로 h,j,k,l 키를 사용할 수 있다. 대신 대문자를 사용하면 창을 해당으로 보내게 된다.  일반모드
 ctrl-w ctrl-w
 ctrl-w w
 현재 창에서 오른쪽 방향으로 이동합니다. 오른쪽 끝 창이라면 아래로 내려감.   일반모드
 ctrl-w ctrl-p
 ctrl-w p
 바로 이전에 사용한 창으로 이동.  일반모드
 ctrl-w =  모든 창의 크기를 동일하게 조절  일반모드
 ctrl-w #+  #크기만큼 창의 크기를 키운다. #이 생략되어 있을시에는 1로 판단.  일반모드
 ctrl-w #-   #크기만큼 창의 크기를 줄인다. #이 생략되어 있을시에는 1로 판단.  일반모드


아래의 다양한 크기로 조정된 창들이 수평 수직분할이 되어 있으며 맨 위에는 새로운 파일을 생성해서 다양하게 관리하고 있다.




또한 처음 vim을 시작할 때 여러 파일을 분할하여 창을 열고 싶다면 -o 또는 -O 옵션을 사용하여 열면 된다.
두 창을 상하로 분리하여 사용하고 싶다면 소문자 o를 좌우로 분리해서 사용하고 싶다면 대문자 O를 사용하면 된다.
먼저 위치는 것이 위쪽에 그리고 왼쪽에 위치하게 된다.

ex) vim -o John.txt set.x t.x 를 했을 때의 결과 화면




또한 창 분할의 강력한 기능을 소개하자면 바로 두 개의 파일을 비교하는 기능이다.
vim 을 처음 시작할 때 -d 옵션을 주고 vim -d filename.x filename2.x 와 같이 입력하게 되면 아래와 같이 두개의 수직분할된 창을 열어 서로 다른 내용을 표시해준다. 원본을 놔두고 수정사항을 체킹해야 하거나 디버깅 할 때, 혹은 버젼을 관리해야 할 때 유용하게 사용할 수 있을 것이다.



------------------------------------------------------------------------------------------------------------------------------------

창 분할의 경우는 생성할 수록 창의 크기가 n개의 갯수만큼 분할 되기 때문에 한번에 코드 내용을 많이 보면서 편집할 때는 적절하지 않다.
따라서 여타 편집기와 같이 vim에서는 tab 기능을 제공하는데 마우스가 아닌 모든 것을 키보드로 처리해야 한다. 명령어가 직관적이어서 크게 어렵지 않으니 한번 살펴보자.

 명령어  설명   모드 
 :#tabedit filename
또는 :#tabe filename
 #번째 탭에 filename에 해당 하는 파일을 엽니다. #이 생략되면 현재 열려 있는 탭 바로 뒤에 탭을 생성하여 파일을 엽니다. filename이 생략되면 빈 이름의 파일이 생성됩니다.  명령행 모드
 :#tabnew filename  #번째 탭에 파일을 생성합니다. #이 생략되면 현재 열려 있는 탭 바로 뒤에 탭을 생성하여 파일을 생성합니다. filename이 생략되면 빈 이름의 파일이 생성됩니다.  명령행 모드
 :#tabclose
또는 :#tabc
 #번째 탭의 파일을 닫습니다. #이 생략되면 현재의 탭을 닫습니다.  명령행 모드
 :#tabnext
또는 :#tabn
 #번째 다음 탭을 봅니다. #이 없으면 바로 다음 탭을 엽니다.  명령행 모드
 #gt  #번째 탭을 엽니다. #이 생략되면 바로 다음 탭을 엽니다.  일반 모드
 #ctrl-PageDown  #번째 탭을 엽니다. #이 생략되면 바로 다음 탭을 엽니다.  일반 모드
 :#tabprevious
또는 :#tabp
 #번째 이전 탭을 봅니다. #이 없으면 바로 이전 탭을 엽니다.  명령행 모드
 #gT  #번째 이전 탭을 엽니다. #이 생략되면 바로 이전 탭을 엽니다.  일반 모드
 #ctrl-pageUp  #번째 이전 탭을 엽니다. #이 생략되면 바로 이전 탭을 엽니다.  일반 모드
 :tabmove #
또는 :tabm #
 #번째 탭으로 이동합니다. #이 생략되면 가장 마지막 탭으로 이동합니다.  명령행 모드


아래 그림파일을 보면 t1.x 파일 즉 3번째 탭이 할성화 되어 있다. 또한 파일 명 바로 앞에 + 가 있는 건 수정내용이 있다는 것을 의미한다. 여러 파일을 동시에 열때와 달리 탭을 이용해서 열게 되면 굳이 저장하지 않아도 이동이 가능하다.

창을 분할할 때도 옵션을 줘서 파일을 열었듯이 탭 역시 처음 실행시 옵션을 주면 아래와 같이 탭을 가지고 실행 시킬 수 있다. 옵션은 -p 이다.
ex) vim -p filename.x filename1.x

 




 




반응형
반응형


이전의 내용은 Vim 에디터의 초급 단계의 내용으로 중급 단계로 가기 위한 작은 첫 걸음을 띄기 위해서는 파일 관련 기능을 필히 숙지해야 한다.
물론 파일 관련 기능을 알았다고 해서 중급사용자라고 할 순 없지만 그래도 Vim 에디터를 조금은 사용할 줄 알게 되는 수준은 되는 것 같다.

이번 파일 관련 기능1 에서는 다양하게 파일을 열고 닫는 법에 대해서 알아보도록 하자. 

------------------------------------------------------------------------------------------------------------------------------------

 명령어  설명   모드 
 :e #  추가로 편집하고자 하는 파일 이름 인 #을 넣으면 이전 편집하던 내용을 잠시 놔두고 다른 파일을 편집한다. 없으면 새롭게 생성한다.
대신 이전에 수정하던 파일은 반드시 수정하고 넘어가야 한다. 수정하지 않고 강제로 넘어가면 수정했던 내용은 지워진다.
어떠한 파일을 편집 할 수 있는 한개씩 확인하고 싶다면 tab을 누르면 되고 모두 확인하고 싶다면 ctrl-d 를 누르면 된다. 
 명령행 모드
 ctrl-6 또는 ctrl-^  이전에 편집했던 내용으로 돌아갈때 누르면 된다. 역시 현재 편집했던 내용은 저장하지 않으면 없어진다.  명령행 모드
 vim #1 #2 #3 #4....  vim 에디터는 여러개의 파일을 동시에 열 수 있다. vim 이후에 여러개의 파일명을 공백과 함께 입력하면 동시에 여러개의 파일을 편집할 수 있다.  명령행 모드
 :#n  여러개의 파일을 동시에 오픈했을 때, 현재 편집하던 파일이 아니라 #1 -> #2 로 가고자 할때
:n을 누르면 된다. 한번에 여러개를 건너 띌때는 # 숫자를 기업하면 된다.
ex) :2n 을 입력하면 #1 -> #3 으로 이동함.
 명령행 모드
 :#N  :n이 정방향으로 증가한다면 :#N은 뒤쪽으로 이동한다.
ex) 현재 편집하던 파일이 #4라면 :3N 을 입력하면 #4 -> #1 로 가게 된다.
 명령행 모드
 :qa  여러개의 파일이 열려 있을 때 다른 파일이 편집중이라 닫히지 않을때는 qa를 누르면 모두 닫히게 된다. 혹은 q! 를 눌러서 강제로 종료해도 된다.   명령행 모드
 :w #  #에 해당하는 파일 이름을 저장할 수 있다.
w는 write의 약자로 wrie라고 써도 된다.
 명령행 모드
 :sav #  #에 해당하는 파일을 다른 이름으로 저장한다.
sav는 saveas로 써도 된다.
 명령행 모드
 :up  현재 바뀐 내용만 저장하게 된다. w는 내용이 바뀌던 안 바뀌던 모두 저장하므로 서버에 터미널이 여러개 붙어 있을 과부하를 주게 되는데 up은 상대적으로 적은 과부하를 주게 되어 유리하다.  명령행 모드
 :x  기능은 up 을 한 다음에 q 를 동시에 한 것과 같다. 즉 wq와 같은 기능을 하지만 wq가 upq 와 같은 효과라서 wq보다 효율적인 명령이다. wq보다 x를 사용하기를 추천한다.  명령행 모드


------------------------------------------------------------------------------------------------------------------------------------

여러개의 파일을 동시에 열었을 때 해당 파일들을 동시에 편집하고 관리하는 좀 더 강력한 기능에 대해서 알아보자

 명령어  설명  모드
 :ls
 :buffers
 :files
 현재 열려 있는 파일 목록을 확인한다.  명령행 모드 
 숫자ctrl-6
 :e #숫자
 숫자번째 파일 목록을 연다.   일반모드 
 :0f  현재 파일을 목록에서 제거합니다.
연결된 파일이 있다면 해제하여 이름없음 파일로 바꿉니다. 
 명령행 모드 
 :r  해당파일을 목록에 끼워넣는다.   명령행 모드 
     


또한 비쥬얼 베이직 이나 기타 편집 툴에도 있는 기능에 대해서 소개하겠다.
바로 해당 함수나 헤더파일 등의 정의부로 이동하는 단축키인데, #include<stdio.h>의 경우 stdio.h 파일의 내용을 보고 싶을 때가 있다면 해당 부분에 커서를 옮기고 gf를 눌러보자. 해당 파일의 정의부로 이동할 수 있을 것이다. 물론 :e /usr/include/stdio.h 와 같은 방법으로도 열 수 있지만 좀 더 편리한 단축키 사용법을 알아놔서 나쁠 것 없으니 이 기회에 알아놓자.

 gf   현재 커서 위치의 파일명을 열어준다.
기본적으로 등록된 /usr/include 와 같은 검색 위치를 제외한 추가적인 위치를 등록하고 싶다면 :set path+=경로명을 쳐주거나 .vimrc 파일에 등록해서 사용하면 된다. 
 일반모드
 ctrl-w f   현재 커서 위치의 파일명을 분할된 창에 열어준다.  일반모드
 ctrl-w gf   현재 커서 위치의 파일명을 탭에서 열어준다.  일반모드






반응형

+ Recent posts