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.