%y a
이렇게 하면 전체 파일이 레지스터에 저장된다는 것을 알고 있습니다 a
. 그러나 파일 내용을 다른 텍스트 편집기(예: gedit)에 붙여넣는 데는 도움이 되지 않습니다. 이 작업을 수행하는 것 외에 다른 대안이 있나요?
답변1
파일 내용을 a
레지스터 로 가져오는 *
대신 +
다음 방법 중 하나를 사용하여 파일 내용을 X 클립보드로 가져옵니다.
:%y*
:%y+
이를 위해서는 X 지원으로 컴파일되었으며 X 서버에 연결할 수 있는 vim 복사본을 사용해야 합니다. 어떤 방법이 더 나은지는 대상 편집기가 사용하는 클립보드 유형에 따라 다릅니다.
파일에 다음 중 하나를 포함하면 이러한 레지스터 중 하나를 복사 및 붙여넣기 작업의 기본값으로 사용할 수도 있습니다 .vimrc
.
set clipboard+=unnamed
set clipboard+=unnamedplus
답변2
vi
이것이 필요한지 확실하지 않습니다 .
xclip
콘솔 출력의 모든 내용을 x 서버 클립보드로 복사할 수 있는 유틸리티가 있습니다 .
DISPLAY=:0.0
환경을 지정하고 다음과 같이 실행해야 합니다 .
cat file | xclip
또는 원격 파일의 경우
ssh remote "cat file" | xclip
또는 vi
(참고: 이 방법은 vi 버퍼 내용을 일시적으로 지웁니다. 실행 취소하려면 Esc
+ 를 누르십시오 u
. 데이터는 X cilpboard에 남아 있습니다):
:%!xclip
이제 마우스 가운데 버튼을 사용하여 아무 곳에나 붙여넣을 수 있습니다(참고: 작동하지 않을 CTRL+V
수 있음 shift+ins
).
답변3
Vim과 gedit를 함께 사용하는 경우가 많다면 Vim의 GUI 버전인 gVim으로 전환해야 할 것입니다.
Ubuntu를 사용하고 있고 gVim이 기본적으로 설치되지 않은 것 같습니다. 이를 얻으려면 다음 명령을 사용하십시오.
$ sudo apt-get install vim-gnome
Gnome에 의존하지 않는 것도 있지만 vim-gtk
gedit를 사용하고 있으므로 Gnome 기반 버전의 Ubuntu 중 하나를 사용해야 합니다.
답변4
나는 다음 별칭을 내 항목에 추가하여 이 작업을 수행했습니다..bashrc
alias vim='gvim -v'
그리고 .vimrc
클립보드를 다음으로 설정하세요.unnamedplus
set clipboard=unnamedplus
그런 다음 yank:ed 텍스트가 전역 버퍼에 복사되고 ctrl+v를 사용하여 gedit에 붙여넣을 수 있습니다. 전역적으로 복사된 텍스트는 p
vim 명령을 사용하여 붙여넣을 수도 있습니다.