다중 화면에서 창 크기 조절하기


이번에는 다중 화면에서 창의 크기를 조절하는 법을 알아보자.


명령 모드에서 <Ctrl-w>+= 다중 화면의 창의 크기를 균등하게 조절

명령 모드에서 <Ctrl-w>+_ (언더바) 수평분할선을 움직여 현재 커서가 위치한 창의 크기최대화

명령 모드에서 <Ctrl-w>+|(버티컬 바) 수직분할선을 움직여 현재 커서가 위치한 창의 크기최대화


다음은 test1.txt 창에 커서가 있고 이 상태에서 <Ctrl-w>+_ 키로 수평분할선을 화면 최하단으로 이동시켜 test1.txt 창을 최대화하고 다시 <Ctrl-w>+= 키를 눌러 다시 균등분할 상태인 원래의 화면으로 돌아오는 모습이다.

 



다음은 test1.txt 창에 커서가 있고 이 상태에서 <Ctrl-w>+| 키로 수직분할선을 오른쪽 끝으로 이동시켜 test1.txt 창을 최대화하고 다시 <Ctrl-w>+= 키를 눌러 다시 균등분할 상태인 원래의 화면으로 돌아오는 모습이다.


 

명령 모드에서 <Ctrl-w>+[#]

현재 커서가 위치한 창의 수평분할선창의 크기가 커지는 방향으로 #만큼 움직이고 #을 생략하면 1만 움직임


명령 모드에서 <Ctrl-w>+[#]- 

현재 커서가 위치한 창의 수평분할선창의 크기가 작아지는 방향으로 #만큼 움직이고 #을 생략하면 1만 움직임


다음은 test1.txt 창에 커서가 있고 이 상태에서 <Ctrl-w>+6+ 키로 수평분할선을 아래쪽으로 6행 움직여 test1.txt 창의 크기를 6행 늘리고 다시 <Ctrl-w>+6- 키를 눌러 수평분할선을 위쪽으로 6행 움직여test1.txt 창의 크기를 6행 줄이는 모습이다. 




명령 모드에서 <Ctrl-w>+[#]> 

현재 커서가 위치한 창의 수직분할선창의 크기가 커지는 방향으로 #칸만큼 움직이고 #을 생략하면 1만 움직임


명령 모드에서 <Ctrl-w>+[#]< 

현재 커서가 위치한 창의 수직분할선창의 크기가 작아지는 방향으로 #칸만큼 움직이고 #을 생략하면 1만 움직임


다음은 test1.txt 창에 커서가 있고 이 상태에서 <Ctrl-w>+10> 키로 수직분할선을 오른쪽으로 10칸 움직여 test1.txt 창의 크기를 10칸 늘리고 다시 <Ctrl-w>+10< 키를 눌러 수직분할선을 왼쪽으로 10칸 움직여 test1.txt 창의 크기를 10칸 줄이는 모습이다. 




Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



다중 분할 화면에서 창들간의 위치 전환하기


이제 화면을 다중으로 분할하고 분할된 화면에서 들 사이를 이동하고 을 열고 닫고 파일을 열고 닫을 수 있게 되었다.

 

그런데 때로는 화면 배치가 원하는 대로 이루어지지 않아 화면의 배치를 바꿔보고 싶을 수 있다.


이런 경우 사용할 수 있는 몇가지 방법을 확인해보자. 



다중 분할된 화면에서 창들간의 위치를 순차적으로 전환하기 


다중 분할된 화면에서 들을 순차적으로 전환하는 키는 다음과 같다.


명령모드에서 <Ctrl-w>+r 순차적으로 들간의 위치 전환


키를 배웠으니 제대로 작동하는지 한 번 실험해 보자. 


아래는 위에서부터 차례대로 test3.txt 파일이 표시된 3행의 수평창, test2.txt 파일이 표시된 4행의 수평창, test1.txt 파일이 표시된 13행의 수평창이 순서대로 표시되어 있는 화면에서 <Ctrl-w>+r 키를 눌러서 화면을 순차적으로 전환하고 있는 모습니다.



<Ctrl-w>+r 키로 화면의 배치를 전환하면 test3.txt 수평창이 가운데로 오고, 이 상태에서 다시 <Ctrl-w>+r 키를 누르면 test3.txt 수평창 가장 밑바닥으로 전환되는 것을 확인할 수 있다. 동일한 방식으로 test1.txt test2.txt 파일이 표시된 수평창도 전환되고 있다.


수평으로 분할된 화면에서 잘 작동하는 것을 확인했으니 이번에는 수직으로 분할된 화면에서 잘 작동하는지 확인해보자.


아래는 왼쪽의 화면에서부터 차례대로 test3.txt 파일이 표시된 20열의 수직창, test2.txt 파일이 표시된 30열의 수직창, test1.txt 파일이 표시된 50열의 수직창이 순서대로 표시되어 있는 화면에서 <Ctrl-w>+r 키를 눌러서 화면을 순차적으로 전환하고 있는 모습니다.





<Ctrl-w>+r 키로 화면을 순차적으로 전환하면 test3.txt 수직창이 가운데로 오고, 이 상태에서 다시 <<Ctrl-w>+r 키를 누르면 test3.txt 수직창이 가장 오른쪽으로 전환된다. 동일한 방식으로 test1.txttest2.txt 수직창도 같이 전환되고 있다.


<Ctrl-w>+r 키로 화면의 배치를 전환하면 수평분할된 들 사이의 배치가 바뀌고, 수직분할된 들 사이의 배치가 바뀐다. 그렇다면 화면을 수직과 수평으로 한번씩 분할해서 4등분한 화면에서 <Ctrl-w>+r 키로 화면의 배치를 바꾸면 어떻게 될까?




test2.txt 에 커서가 있고 이 상태에서 <Ctrl-w>+r 키를 누르면 test2.txt  test1.txt 이 상호 전환된다. <Ctrl-w>+r 키를 누르면 이번에도 test2.txt test1.txt 이 상호 전환된다. , test1.txt test2.txt만 상호 위치가 바뀌는 것을 확인할 수 있다. 이는 커서를 test1.txt에 두든 test2.txt 에 두든 상관없이 항상 이 두 파일이 표시된 만 서로 바뀐다


그렇다면 커서를 화면 하단의 2개의 화면인 test3.txt test.txt 에 두면 어떻게 될까?  이번에는 test3.txt test.txt  상호간에만 화면 전환이 일어난다.

 

결국<Ctrl-w>+r 키는 을 순차적으로 전환한다고 설명되어 있지만 수직분할된 수직창들 사이에서만 혹은, 수평 분할된 수평창들 사이에서만 전환이 순차적으로 이루어진다는 사실을 알 수 있다.



커서가 이전에 있었던 창과 현재 있는 창간 위치 전환하기


그 다음은 커서가 이전에 있었던 과 현재 있는 과 위치를 서로 바꾸는 명령이다.


명령모드에서 <Ctrl-w>+x → 커서가 이전에 있었던 현재 있는 의 위치를 상호 전환


<Ctrl-w>+x 키도 위 의 <Ctrl-w>+r 키와 크게 다르지 않다. , 수평으로만 분할된 화면이나 수직으로 분할된 화면에서만 서로 작동한다


그 외에 한가지 다른 점이 더 있는데 그것은 바로 인접한 창하고만 서로 위치 전환이 일어난다는 것이다. 


가령, 다음의 화면을 보자. 



위의 화면에서 test1.txttest2.txt 만 <Ctrl-w>+x 키로 상호 위치 전환이 가능하다. 마찬가지로 서로 인접해 있는 test2.txt test3.txt<Ctrl-w>+x 키로 서로 위치전환이 가능하다.

 

즉, <Ctrl-w>+x 키가 바로 직전에 있었던 화면과 현재 있는 화면의 위치를 상호 전환시켜 준다고 하지만 수직분할된 화면의 수직창들 사이에서만 혹은, 수평 분할된 수평창들 사이에서만 그것도 서로 인접한 창들끼리만 상호 위치전환이 이루어지는 것이다.

 


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



여러 개의 파일을 분할된 화면에서 열기


여러 개의 파일을 열 때 분할된 화면에 열고 싶다면 파일을 열면서 vim을 실행할 때, 다음과 같이 -o 옵션을 추가하면 된다


vim -o test1.txt test2.txt test3.txt


그러면 아래와 같이 균등하게 수평분할된 화면test1.txt, test2.txt, test3.txt 가 열린다.




명령 라인에 :ls, :buffers, :files 명령으로  3개의 파일 버퍼에 3개의 파일이 동시에 열린 것을 확인할 수 있다.


:ls 또는 :buffers 또는 :files

1 %a "test1.txt"

a "test2.txt"

a "test3.txt"


열린 세 개의 파일들이 모두 화면에 표시되어 있으므로 모두 a 표식이 붙어있다. , 현재 커서는 1번 버퍼의 test1.txt 파일에 있으므로 해당 파일에는 퍼센트(%)도 같이 붙어있다.



다중 화면에서 여러 개의 파일 다루기


이제 분할된 화면을 닫아보자


현재 커서가 위치한 창을 닫는 키는 다음과 같다.

명령 모드에서 <Ctrl-w>+q

명령 모드에서 <Ctrl-w>+c

명령 라인에 :quit 또는 :q

명령 라인에 :close 또는 :clo


현재 커서가 위치한 창을 제외한 다른 모든 창을 닫는 키는 다음과 같다

명령 모드에서 <Ctrl-w>+o

명령 라인에 :only 또는 :on


이제 test1.txt 외의 모든 창을 닫아보았다. 이 상태에서 파일 버퍼를 확인한 결과는 다음과 같다.


 


화면을 닫았을 뿐 파일을 닫은 것은 아니므로 파일들이 모두 파일 버퍼에 그대로 남아있다. 다만, 이제 화면에 표시된 파일과 현재 커서가 위치한 파일이 전부 test1.txt 뿐이므로 파일 버퍼 1번에 있는 파일에만 %a가 표시되었다


현재의 상태에서 이번에는 파일 버퍼에 있는 파일들을 분할된 화면에 표시해보자. 


명령 라인에 :sb[#] → 현재 커서가 위치한 창을 수평으로 분할하고 새로운 수평창에 # 버퍼를 표시하고만일 #을 생략할 경우 현재 파일이 그대로 표시(=:sp)됨


파일 버퍼 2에 있는 test2.txt 파일을 수평창에 열기 위해서 명령 라인에 :sb2 명령어를 입력하면 그 결과가 다음과 같다.





파일 버퍼를 하나씩 표시하는 것이 번거로우니 모든 버퍼의 파일을 표시하려면 다음과 같이 한다.


명령 라인에 :al 현재 파일 버퍼에 있는 모든 파일수평으로 분할된 화면에 표시


※ 이제까지와 달리 현재 커서가 위치한 화면을 기준으로 화면 분할이 이루어지지 않고 모든 파일이 수평으로 균등하게 분할된 화면에 표시

 



모든 파일이 수평으로 분할된 화면에 균등하게 표시되어 있는 현재의 상황에서 파일 버퍼를 닫아보자.


명령 라인에 :bd[#] # 버퍼닫는다(#이 없으면 현재의 버퍼닫는다)

 

명령 라인에 :bd1 명령을 입력하면 파일버퍼 1번의 파일인 test1.txt 파일을 표시하는 창이 닫히고 동시에 파일 버퍼도 닫힌 것을 아래와 같이 확인할 수 있다.



 


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


053 다중 화면과 파일 버퍼.apkg

복합 화면 분할


복합 화면 분할은 화면을 분할하고 분할해서 수직과 수평 분할을 복합적으로 한 것을 말한다. 화면을 복합적으로 분할하는 방법은 매우 간단하다. 커서가 위치한 창에서 앞서 배운 수평분할이나 수직분할을 반복하면 창이 계속 분할된다


아래의 사진은 먼저 test1.txt를 열고 그 상태에서 다시 :vs test2.txt 명령으로 절반으로 수직분할하면서 test2.txt 파일을 오픈한 후 이 상태에서 다시 :sp test3.txt 명령으로 이 창을 절반으로 수평분할하면서 test3.txt 파일을 오픈한 모습이다. 




분할된 화면에서 창 사이 이동하기


<Ctrl-w>를 누르고 화살표키(←↑→↓)를 더하거나 <Ctrl-w>h, j, k, l 을 덧붙이면 커서 위치를 기준으로 그 방향에 있는 창으로 간단하게 이동할 수 있다


명령 모드에서 <Ctrl-w>+h 또는 <Ctrl-w>+


왼쪽 창으로 이동(현재 커서 위치의 왼쪽에 창이 있을 경우)


명령 모드에서 <Ctrl-w>+j 또는 <Ctrl-w>+


아래쪽 창으로 이동(현재 커서 위치의 아래쪽에 창이 있을 경우)


명령 모드에서 <Ctrl-w>+k 또는 <Ctrl-w>+


위쪽 창으로 이동(현재 커서 위치의 위쪽에 창이 있을 경우)


명령 모드에서 <Ctrl-w>+l 또는 <Ctrl-w>+


오른쪽 창으로 이동(현재 커서 위치의 오른쪽에 창이 있을 경우)



<Ctrl-w>를 누르고 화살표키(←↑→↓)를 더하거나 <Ctrl-w>에 h, j, k, l 를 붙여 화면간 이동은 아래 그림을 참조하라.




test1.txt 에서는 아래와 오른쪽 창이 없으므로 당연히 아래 창으로 이동(<Ctrl-w>+j 또는 <Ctrl-w>+)이나 오른쪽 창으로 이동(<Ctrl-w>+l 또는 <Ctrl-w>+)되지 않는다.

 

또한, test1.txt 에서 왼쪽 창으로 이동(<Ctrl-w>+h 또는 <Ctrl-w>+) 할 때 커서의 위치왼쪽의 수평 분할선을 기준으로 상단에 있으면 test3.txt로 이동하고 하단에 있으면 test2.txt로 이동하게 된다.


 

그 외에 다른 화면 이동은 다음과 같다


명령 모드에서 <Ctrl-w>+w


왼쪽 최상단에서 오른쪽 최하단까지 순차적으로 이동


명령 모드에서 <Ctrl-w>+p


바로 이전에 있었던 창으로 이동

두 개의 화면에서 계속 교대로 작업할 경우 <Ctrl-w>+p 키만 반복으로 누르면 편하게 이용할 수 있다


명령 모드에서 <Ctrl-w>+t


왼쪽 최상단 창으로 이동(최상위 창)


명령 모드에서 <Ctrl-w>+b


오른쪽 최하단 창으로 이동(최하위 창)


Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


052 복합 화면 분할 후 이동하기.apkg


 

vim의 화면 변경 및 스크롤

 

vim에서도 화면을 이동할 수도 있다. 

 

커서를 중심으로 화면 변경

 

vim에서는 작업하기 편하게 커서를 중심으로 화면을 변경할 수 있다.

 

z[Enter] → 현재 커서가 위치한 행화면의 최상단이 되게끔 화면 변경

z. 현재 커서가 위치한 행화면의 중앙이 되게끔 화면 변경

z- 현재 커서가 위치한 행화면의 최하단이 되게끔 화면 변경

 

 

화면 스크롤

 

마우스의 스크롤 대신 키를 이용하여 화면을 스크롤할 수 있다. 

 

다음은 반 화면 위 아래로 스크롤 하는 키들이다. 

 

<Ctrl+u> 반 화면 위로 스크롤

<Ctrl+d> 반 화면 아래로 스크롤

UpDown으로 이해하면 쉽다.

 

다음은 한 하면 위 아래로 스크롤하는 키들이다. 

 

<Ctrl+b> → 한 화면 위로 스크롤

<Ctrl+f> → 한 화면 아래로 스크롤

 

 

Anki 파일

 

아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 

 

 

'Anki로 공부하기 > vi 또는 vim 익히기' 카테고리의 다른 글

012 복사(yank)와 붙여넣기(put)  (1) 2018.05.03
011 삭제하기  (1) 2018.04.26
009 기타 커서 이동(3)  (0) 2018.04.23
008 기타 커서 이동(2)  (1) 2018.04.21
007 기타 커서 이동(1)  (0) 2018.04.20

+ Recent posts