[vim]레지스터를 이용한 복사/붙이기

hokim의 이미지

vim에서 보통의 복사하기(yank)와 붙이기(put) 에 사용되는 버퍼는 yank(또는 delete)가 수행될때마다 기존의 내용이 지워지고 새로운 내용으로 채워지게 되므로 빈번하게 사용되어질 문자블록이나 여러개의 문자블록들을 필요할때마다 불러쓰기에는 다소 불편합니다. 그래서 yank 또는 delete에 의해 복사되는 문자블록을 레지스터들에 저장해 두었다가 필요할때마다 불러쓰면 편합니다. 사용방법은 다음과 같습니다

*복사하기

: 1, 5 yank  a

*레지스터에 복사된 내용확인하기

: echo @a

*붙이기

: put a

또 a-z까지의 레지스터는 yank나 delete에 의해 덮어쓰게 되지만
A-Z까지의 레지스터는 기존의 레지스터의 내용뒤에 추가됩니다

File attachments: 
Forums: 
랜덤여신의 이미지

일반 모드에서는

"ayy
"ap
"add

와 같은 방법으로 사용하실 수 있습니다. :-)
barami97의 이미지

이런게 있을거같은데....
못찾아서 못 쓰고 있었습니다.
감사......

irondog의 이미지

윈도에서는 클립보드로의 복사와 붙이기가 필요 할때가 있는데...
"* 레지스트리를 이용하시면 됩니다.

참고하세요.

kimes의 이미지

리눅스에서 vi작업하다가 파폭같은데로 복사할때
"+yy이런식으로
+ 레지스터를 이용하는데요..

기본적으로 복사를 하면 그냥 yy로 + 레지스터로
복사하게 설정할수 없나요?

랜덤여신의 이미지

irondog wrote:
윈도에서는 클립보드로의 복사와 붙이기가 필요 할때가 있는데...
"* 레지스트리를 이용하시면 됩니다.

GUI 와 관련된 레지스터에는 * 하고 + 가 있습니다.
윈도우에서는 별 차이가 없는 듯 하지만(지금 테스트 해 볼 수 있는 환경이 아니네요), 리눅스에서는 차이가 있습니다.

일단, 다음과 옵션을 켜셔야 합니다:
set cb=unnamed

간단하게 말하면, * 는 X 윈도우 자체 클립보드(텍스트 영역을 지정하기만 해도 복사되고, 마우스 가운데 버튼-휠버튼-으로 붙여넣는)를 가리키며, + 는 GNOME 이나 KDE 에서 사용하는 클립보드(Ctrl+C 와 Ctrl+V 로 조작되는)를 나타냅니다.

개인적으로, + 레지스터의 동작을 좋아하기 때문에, 윈도우에서도 + 레지스터를 씁니다.

랜덤여신의 이미지

kimes wrote:
리눅스에서 vi작업하다가 파폭같은데로 복사할때
"+yy이런식으로
+ 레지스터를 이용하는데요..

기본적으로 복사를 하면 그냥 yy로 + 레지스터로
복사하게 설정할수 없나요?


음; 저도 많이 찾아봤었는데, 끝내 못 찾았습니다. T_T 누구 아시는 분 없나요.

대신, X 윈도우 자체의 클립보드를 이용하는 방법이 있습니다. 일단,
set cb=unnamed
를 지정하여 * 레지스터를 X 윈도우 클립보드와 연결하신 후,
비주얼 블록을 지정하시면 비주얼 블록이 X 윈도우 클립보드로 저장됩니다.
그리고 나서 불여우 등의 글상자에서 마우스 가운데 버튼(휠버튼)을 누르시면 됩니다.

Fe.head의 이미지

블록으로 잡고
"a
"b 등 버퍼에 저장하기.

:reg
레지스터 확인(list)

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

kimes의 이미지

인클루드 wrote:
kimes wrote:
리눅스에서 vi작업하다가 파폭같은데로 복사할때
"+yy이런식으로
+ 레지스터를 이용하는데요..

기본적으로 복사를 하면 그냥 yy로 + 레지스터로
복사하게 설정할수 없나요?


음; 저도 많이 찾아봤었는데, 끝내 못 찾았습니다. T_T 누구 아시는 분 없나요.

대신, X 윈도우 자체의 클립보드를 이용하는 방법이 있습니다. 일단,
set cb=unnamed
를 지정하여 * 레지스터를 X 윈도우 클립보드와 연결하신 후,
비주얼 블록을 지정하시면 비주얼 블록이 X 윈도우 클립보드로 저장됩니다.
그리고 나서 불여우 등의 글상자에서 마우스 가운데 버튼(휠버튼)을 누르시면 됩니다.

인쿠르드님 감사합니다.
이 기능도 꽤 편하네요.. ^^;;;

랜덤여신의 이미지

인클루드 wrote:
kimes wrote:
리눅스에서 vi작업하다가 파폭같은데로 복사할때
"+yy이런식으로
+ 레지스터를 이용하는데요..

기본적으로 복사를 하면 그냥 yy로 + 레지스터로
복사하게 설정할수 없나요?


음; 저도 많이 찾아봤었는데, 끝내 못 찾았습니다. T_T 누구 아시는 분 없나요.

패치를 만들어 보았습니다. 8)

set cb=unnamed 원래 vim 에서 이 기능을 사용하면, * 레지스터가 unnamed 레지스터(기본적으로 복사하거나 붙여넣을때 작동하는 레지스터)로 매핑되는데요. 이 패치를 사용하면 + 레지스터로 매핑됩니다.

따라서, vim 에서 그냥 복사, 붙여넣기, 잘라내기 등을 할 때에도 + 레지스터(클립보드)로 저장되게 됩니다. :)

패치 파일과 deb 패키지 압축파일(우분투 hoary 에서 제작)를 첨부합니다.
deb 패키지 압축파일에는 각각 gnome 버전, gtk 버전, kde 버전, 터미널 버전의 패치된 vim 이 들어 있습니다.
dpkg -i 패키지파일.deb 으로 기존 패키지를 덮어 씌우시고, echo '패키지명 hold' | dpkg --set-selections 로 hold 하시면 됩니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon 0바이트
파일 0바이트

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.