레지스터를 사용하여 한 vim 인스턴스에서 다른 vim 인스턴스로 복사하는 방법

레지스터를 사용하여 한 vim 인스턴스에서 다른 vim 인스턴스로 복사하는 방법

+레지스터를 선택하는 방법은 무엇입니까 ? 다음 지침에 따라 vim에서 다른 vim으로 텍스트를 복사/붙여넣는 데 문제가 있습니다.

In the vim, highlight, select + register, and yank (save) to it:
Shift-v
"+y

In the second vim, select + register, and paste from it:
"+p

제가 키를 잘못 누른 것 같아요. 라고 나오면 "+y키를 순서대로 눌러야 하나요 "? (즉, +, +,). 나에게는 효과가 없습니다.+yShift'Shift=y

저는 X11 터미널에서 Red Hat과 vim을 사용합니다. vim 버전은

$vim --version | grep xterm_clipboard
-xterm_clipboard -xterm_save

답변1

Vim은 시스템 잘라내기 및 붙여넣기 메커니즘을 사용하여 인스턴스 간에 텍스트를 복사합니다. vim을 터미널에서 실행하면 잘라내기 및 붙여넣기 메커니즘에 직접 액세스할 수 없습니다. vim은 xterm이나 X 선택 및 클립보드 내용에 대한 액세스를 제공하는 다른 터미널에서 실행 중인 경우 이를 사용할 수 있습니다. 그러나 vim 바이너리는 이 기능을 지원하도록 컴파일되지 않습니다.

두 vim 인스턴스가 동일한 시스템에서 실행 중인 경우 임시 파일을 사용하여 통신할 수 있습니다.

:w ~/vim.tmp
:r ~/vim.tmp

두 vim 인스턴스가 동일한 X 디스플레이에 연결된 경우( DISPLAY환경 변수가 동일한 X 디스플레이를 가리키므로 vim 프로그램 자체에는 어떤 종류의 X 지원도 필요하지 않음) 다음과 같이 외부에서 X 선택기를 사용할 수 있습니다.셰르또는클립. p또는 를 생략 -selection primary하고 다른 옵션( -s/ secondary또는 -b/ )을 선택할 수 있습니다 clipboard. :w !다음을 복사하려면 (공백에 주의하세요)을 사용하세요 .

:w !xsel -ip
:w !xclip -i -selection primary

붙여 :r!넣기:

:r !xsel -op
:r !xclip -o -selection primary

답변2

Red Hat(및 Fedora)에서는 이 /usr/bin/vimx명령을 사용하십시오. 이 명령을 사용하면 +register(시스템 클립보드)가 작동합니다 vimx.

vimx는 다음으로 컴파일된 시스템 클립보드를 지원합니다.

$ vimx --version | grep xterm_clipboard
+eval            +mouse_dec       +startuptime     +xterm_clipboard

vimx.vim-X11gvim

다음 별칭을 사용하세요.

alias vim=/usr/bin/vimx

답변3

귀하의 예제에서는 +레지스터를 사용합니다. 레지스터를 사용하려면 ?동일한 명령을 사용 +하여 ?.

예를 들어:

"?y
"?p

vim 인스턴스 간에 붙여넣기 위해 시스템 클립보드를 사용하려는 경우 g명령 앞에 를 추가 해야 하므로

"+gy
"+gp

관련 정보