
강좌 & 팁
vi(m)에서는 여러 개의 register가 있습니다.
MS-Office제품군에 사용된 여러 개의 클립보드와 같은 기능이라 할 수 있겠습니다.
원하는 클립보드에 원하는 내용을 붙여넣은 뒤 원할 때마다 붙여넣을 수 있습니다. 이는 클립보드가 하나 밖에 없다면 불가능합니다.
vim에서의 클립보드는 크게 unnamed register와 named register로 나누어져 있습니다.
unnamed register는 MS-Winodws에서의 그냥 클립보드와 같습니다. 잘라내기 및 복사시에 복사된 내용이 이 unnamed register에 저장이 됩니다.
unnamed register는 총 16개가 있으며, 0번부터 순차적으로 "0 - "9 까지 순환식으로 register 에 저장 됩니다.
6개의 특수 register는 다음과 같습니다.
"" : 바로 이전에 클립 하였던 내용이 항상 들어 가게 됩니다.
". : 최근 까지 타이핑한 내용이 들어 가게 됩니다.
"% : 현재 작업하고 있는 파일 이름이 들어 가게 됩니다.
"/ : 가장 최근에 검색한 문자열이 들어 가게 됩니다.
": : 최근 입력한 명령 모드의 내용이 들어 있습니다.
"- : 최근 x혹은d 커멘드를 이용하여 지운 내용이 들어 가게 됩니다.
전에 vim에서 익혀 두었던, 잘라내기, 복사하기 등의 명령을 수행하면 자연스럽게 unnamed register에 들어갑니다.
그래서 원하는 위치에서 붙여넣기(P명령류:P또는 p)를 수행하시면 됩니다.
새로운 내용을 다시 잘라내기, 복사하기를 수행하시면 새로운 내용이 다시 unnamed register에 들어갑니다.
다음은 named register입니다. register의 이름은 a-z까지 26개로 구성되어 있습니다.
named register는 말그대로 레지스터이름을 지정해주는 것 외에는 사용법은 unnamed register와 똑같습니다.
이름을 지정하는 방법은 큰따옴표+레지스터이름입니다.
그래서 a레지스터를 지정하시려면 "a라고 하시면 됩니다. f레지스터는 "f 이런식으로 지정하시면 됩니다.
named register를 사용하는 간단한 예를 들어 보도록 하겠습니다. b레지스터에 2라인을 복사했다가 붙여넣는 예제입니다.
위 예제 첫번째 라인에서 "b2yy라고 치시면 2라인이 b레지스터에 복사됩니다.
그러고 난 뒤 원하는 위치에 가셔서 "bp라고 치시면 'b레지스터에 있는 내용을 현재 커서 위치에 붙여 넣어라'라는 명령을 내릴 수 있습니다.
텍스트의 다른 위치에 가셔서 3yy라고 치게 되면 이 내용은 unnamed register에 저장되게 되므로 b 레지스터에 있는 내용과는 상관이 없습니다.
그래서 원하는 내용을 복사 또는 잘라내기 해 두었다가 원하는 시점에서 붙여넣기 하시면 됩니다.
레지스터에 저장된 내용은 :reg(ister) 라는 명령을 통해 register에 무엇이 저장되어 있는지 볼 수 있습니다.
이상으로 vim 에서 register에 대하여 알아 보았습니다.