vim에서 외부 프로그램으로 텍스트를 복사하는 방법은 무엇입니까?


84

vim에서 일부 텍스트를 복사하여 붙여 넣으려고합니다. 시각 모드로 들어가기 위해 v 를 하고 있는데 , 일단 블록을 선택하면 y 입니다.

p가 텍스트를 붙여 넣기 때문에 텍스트를 vim의 클립 보드에 복사하는 것 같습니다. 그러나 다른 프로그램 (예 : Chrome)에서는 마우스 오른쪽 버튼을 클릭하여 붙여 넣기가 올바른 텍스트를 붙여 넣지 않습니다. 올바른 클립 보드에 텍스트를 어떻게 복사합니까?

답변:


62

다음은 기능 vim --version이 있음을 나타내는 경우에만 작동 +xterm_clipboard합니다. 그렇지 않으면 추가 패키지를 설치하거나 해당 기능이 추가 된 vim을 다시 컴파일해야합니다.


실제로 두 가지 옵션이 있습니다.

"+y

"일반적인"클립 보드 버퍼에 복사 (Ctrl + V를 사용하여 붙여 넣기, 마우스 오른쪽 단추를 클릭 한 후 "붙여 넣기"등을 선택할 수 있음)

"*y

X11 선택에 복사-중간 클릭을 사용하여이 버퍼에서 붙여 넣을 수 있습니다.

그 주 "*"+두 가지 작동합니다. 따라서 다른 응용 프로그램에서 일부 텍스트를 선택한 경우를 사용하여 vim에 붙여 넣을 수 "*p있고 일부 텍스트를 복사 한 경우 (예 : Ctrl-C) vi를 사용하여 vim에 붙여 넣을 수 있습니다 "+p.


@Tshepang 그것은 퍼티에서 작동하지 않습니다. 어떻게해야합니까?
Rahul Patil

@RahulPatil 나는 모른다; 어쩌면 수퍼 유저 에게 별도의 질문을 할 수도 있습니다 (Windows 도구이므로 더 환영받을 것입니다).
tshepang

@RahulPatil-퍼티를 사용하는 경우 로컬 컴퓨터가 아닌 원격 서버에서 파일을 편집하고 있습니다. 일반적으로 원격 서버는 로컬 컴퓨터의 클립 보드에 대해 알지 못합니다. Linux 데스크톱을 사용하는 경우 서버에 X 라이브러리를 설치 한 경우 X 전달을 사용하여 ssh를 수행 할 수 있지만 퍼티가 Windows에서 실행되면 X가 실행되지 않으므로 전달할 수 없습니다.
Hamish Downer

1
안녕하세요 여러분, "+ y를 입력하는 방법? 비주얼 모드 또는 명령 모드에서 입력해야합니까? 어리석은 일이지만 알아낼 수 없습니다.
Alind Billore

@AlindBillore : 명령 모드. 말 그대로, 키를 shift'누른 shift=다음 y(물론 교대를 제외하고 한 번에 하나씩 차례로)
리드

31

vim> = 7.3.74를 사용하는 경우 실제로 이것을 vimrc에 넣을 수 있습니다.

set clipboard=unnamedplus

+기본적으로 버퍼 (시스템 클립 보드)를 자동으로 사용합니다 . 그런 다음 yank (복사)하려면 일반 y명령 등을 사용하십시오 .

그러나이 동작 d은 텍스트를 기본 버퍼에 넣는 것과 같은 명령 으로 인해 매우 성가신 것으로 나타났습니다 dd.


2
+는 클립 보드 등록자입니다
Kit Ho

1
마지막 요점 dd은 "한 줄을 자르십시오"를 의미하므로 예상되는 동작입니다. 드문 경우에 실제로 망각으로 줄을 삭제하려는 경우 "_dd트릭을 수행합니다.
user7089

또한 @HamishDowner가 그의 답변에 메모 한 것처럼 : 다음은 기능 vim --version이 있음을 나타내는 경우에만 작동 +xterm_clipboard합니다. 그렇지 않으면 추가 패키지를 설치하거나 해당 기능이 추가 된 vim을 다시 컴파일해야합니다.
rudolph9

24

Shift 키를 누른 상태에서 마우스 커서로 텍스트를 선택하십시오.
텍스트가 클립 보드에 복사됩니다.

이것은 또한 붙여 넣기 작동 에서 정력에있는 클립 보드.

분명히, vim이것은와 같은 터미널에서 실행하는 데 효과적입니다 xterm.


텍스트를 선택할 때 Shift 키를 누르고 있다는 의미입니까? 그게 내가하는 방식입니다 xterm.
nozimica

@ nozimica : 예.
루프 공간

이 답변에는 더 많은지지가 있어야합니다 ...
whoan

여러 줄 선택을위한 @LoopSpace set nu이 옵션을 사용 하면 줄 번호도 복사됩니다 . 따라서 :set nonu선택하기 전에 바로 가기로 줄 번호를 전환하거나 명령을 실행하고 싶을 것입니다.
Steven Pribilinskiy

MAC에서 옵션 키를 누른 상태에서 마우스 커서로 텍스트를 선택하십시오
abreschi

10

표준 "+gP"+y명령을 사용하기가 매우 어렵다는 것을 알았 습니다. 그래서 나는 다시 매핑 한 Ctrl-Y클립 보드에 확 잡아 당기는 및 위해 Ctrl-P클립 보드에서 붙여 넣습니다. 이것을 추가하십시오.vimrc

nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP

5

신경 쓰지 마라. 나는 대답을 찾았다-그것은 vim의 메뉴에 쓰여있다.

"+y

매우 직관적입니다.


사용하고 gvim있습니까?
nozimica

@ nozimica- 예
ripper234

1
또한 xm 또는 X에서 유사한 터미널 에뮬레이터에서 실행되는 vim에서도 사용할 수 있습니다 (vim이 +xterm_clipboard기능으로 컴파일 된 경우 ).
Gilles

3

비 Vim 관련 답변을 추가하는 방법 : Ctrl+Shift+CUbuntu에서 시스템 클립 보드에 복사하는 데 사용할 수 있습니다 (터미널 에뮬레이터가 기능을 제공하는 경우에는 그놈 터미널이 제공합니다). Ctrl+Shift+V다른 터미널 창에 Ctrl+V붙여 넣기, GUI 응용 프로그램에 정기적으로 붙여 넣기.

또한 터미널에서 텍스트를 선택한 다음 마우스 가운데 버튼을 클릭하면 X11 클립 보드에서 붙여 넣습니다.


어떤 이유로 든 작동하지 않습니다. 시각 모드로 선택하고 ctrl-shift-C로 복사 한 다음 Ctrl-shift-V를 사용하여 다른 응용 프로그램에 붙여 넣으십시오. 텍스트가 나를 위해 복사되지 않습니다.
ripper234

2
@ ripper234 : gvim을 사용하는 경우 작동하지 않습니다. crazy2be가 말했듯 이이 기능은 터미널 에뮬레이터에서 제공됩니다.
리드

@ ripper234 : 1) 그것은 터미널 에뮬레이터가 제공하는 기능입니다 (그놈 터미널은 그것을 제공합니다), 2) Ctrl + Shift + V는 터미널 에 붙여 넣 습니다. GUI 응용 프로그램은 여전히 ​​평소대로 Ctrl + V를 사용합니다. 더 명확하게 답변을 편집하겠습니다.
crazy2be

shift-control mousedrag를 사용하면 텍스트를 선택하면 하나의 버퍼 창에서 복사 붙여 넣기가 쉬워집니다.
Stephan

2

기본적으로 라이트 버전의 vim을 설치하면 vim 외부 및 레지스터 를 사용하는 데 필요한 +xterm_clipboard기능 ( vim --version | grep xterm)이 없습니다 .*+

이를 활성화하려면 vim을 직접 컴파일하거나 사전 활성화 된 vim 버전을 설치해야합니다. vim-gnome :을 사용했습니다 sudo apt-get install vim-gnome. 당신이 수행하면 vim --version | grep xterm, 당신은 지금 그것을 볼 수 있습니다 +xterm_clipboard.

이제에 복사를 시도 +하고 *그것은 작동합니다.


2

내 vim이 클립 보드를 지원하지 않는 것을 확인했을 때 :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

vim-gnome을 설치 한 후 다시 확인했습니다.

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

이제 "+ y 및"+ p를 각각 사용하여 복사하고 붙여 넣을 수 있습니다.


1

Shift 키를 누른 채로 복사 할 텍스트를 마우스로 선택하십시오.

그런 다음로 다른 프로그램에 붙여 넣으십시오 CTRL + v.

우분투 16.04의 터미널에서 작동합니다. 확실하지 않은 gvim다른 시스템.

여기에 이미지 설명을 입력하십시오


작동하지 않습니다.
Astrid

창조적 인 답변
vidur punj

0

추가하기 만해도 작동하는 경우 vim을 감싸는 터미널을 전환하십시오 (터미널에서 vim을 사용하는 경우). 예를 들어, gnome-terminal에서 액세스 할 수 있지만 guake를 통해 클립 보드에 액세스 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.