행복아울렛

[vim] vim의 register, 클립보드? 본문

vim

[vim] vim의 register, 클립보드?

붕탱구 2007. 2. 26. 12:47

vi(m)에서는 여러 개의 클립보드(=register)가 있습니다. MS-Office제품군에 사용된 여러 개의 클립보드와 같은 기능이라 할 수 있겠습니다. 원하는 클립보드에 원하는 내용을 붙여넣은 뒤 원할 때마다 붙여넣을 수 있습니다. 이는 클립보드가 하나 밖에 없다면 불가능합니다.

vi(m)에서의 클립보드는 크게 unnamed register와 named register로 나누어져 있습니다. unnamed register는 MS-Winodws에서의 그냥 클립보드와 같습니다. 잘라내기 및 복사시에 복사된 내용이 이 unnamed register에 저장이 됩니다. 사용법은 같습니다. 그냥 잘라내기, 복사하기 등의 명령을 수행하시면 자연스럽게 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 레지스터에 있는 내용과는 상관이 없습니다. 그래서 원하는 내용을 복사 또는 잘라내기 해 두었다가 원하는 시점에서 붙여넣기 하시면 됩니다.

저 같은 경우에는 보통 파일 편집 시 자주 반복되는 단어/라인 등을 a레지스터에 복사해 두었다가 필요할 때 붙여넣는 방식으로 편집을 합니다. 편하게 사용할 수 있지요 ^^;

레지스터에 저장된 내용은 :register라는 명령을 통해 무엇이 저장되어 있는지 볼 수도 있습니다. 그리고 레지스터에 저장된 내용은 .viminfo라는 vim을 위한 임시파일에 저장되기 때문에, 편집하다가 종료하고 다른 파일을 열 때에도 그 내용이 그대로 저장되어 있기 때문에 그대로 사용하실 수 있습니다. 단 vim을 여러개 열어 놓으시게 되면 최종으로 닫은 vim창의 내용이 들어 있게 될 것입니다. 참고하십시요 ^^;

Comments