터미널 간 복사 방법


11

Linux 시스템을 사용하고 있습니다. 두 터미널에 두 개의 vim이 열립니다. 이제 A에서 B로 텍스트를 복사하고 싶습니다. 그렇게하는 한 가지 방법은 A에서 텍스트를 선택하고 마우스를 사용하여 복사 한 다음 B로 전환하는 것입니다. 삽입 모드에서 명령 <c-r>+은 텍스트를 붙여 넣습니다.

어쨌든 마우스를 사용하지 않고 수행 할 수 있습니까? "+yyA 와 마찬가지로 B로 전환하면 o<c-r>+? 나는 헛된 몇 가지 조합을 탐구했다. 그리고 "터미널 간 복사"를 검색했지만 아무것도 찾지 못했습니다.

@statox 사용자는 시각 모드, 즉 v$"+yB로 전환 할 때 A에서 하나의 솔루션을 제안 o<c-r>+합니다.

v 모드로 들어 가지 않고 A로 텍스트를 복사 할 수있는 간단한 방법이 있습니까? v 모드로 들어가는 것은 너무 많은 주요 타격을 포함하지 않으며 더 나은 방법이 있는지 궁금합니다. 예 : 커서가 선의 중앙에있는 yy경우, 전체 키를 복사 (등록 ") 0v$y하는 동시에 추가 키 스트로크로 동일한 작업 을 수행합니다.

또는, 내 질문은보다 적은 키 스트로크 어떤 방법이 있는지를 감소시킬 수 0v$"+y에 대한 사본을 내가 사용할 수 있도록 <alt-tab>o<c-r>+붙여 넣습니다.


당신의 정확한 문제는 무엇입니까? 당신은 해결책을 갖고있는 것 같다 : 당신이 (? 왜 마우스를 사용 할 것) 시각적 모드 텍스트 클립 보드 레지스터에 넣어 선택 "+y클립 보드 레지스터를 넣고 다른 정력 인스턴스에 "+p. 또는 중복 ?
statox

무언가를 잡아 당기기 위해 비주얼 모드로 들어갈 필요는 없습니다. y모션 ( :help motion.txt) 또는 객체 ( :help object-select)를 따를 수 있습니다 . Vim 인스턴스를 자주 잡아 당겨 붙여 넣으면 해당 설정 clipboard을 포함 unnamed하거나 unnamedplus유용하게 사용할 수 있습니다. 참조하십시오 :help 'clipboard'. 그런 다음 인스턴스 간 복사가 작동합니다.
garyjohn

1
내 의견의 요점은 시각적 모드가 아니며 실제로 문제를 이해하는 데 어려움이 있습니다. 처음에는 한 터미널에서 다른 터미널로 일부 텍스트를 복사하는 것이 사실이라고 생각했지만 이제는 키 입력을 거의 사용하지 않는 것 같습니다. 클립 보드 레지스터에 들어갈 수 있습니다. 그것이 두 번째 경우라면 Garyjohn의 의견이 적합합니다.
statox

1
0v$와 동일합니다 V. 그리고 그것은에 대한 매핑을 쉽게 "+y: :nnoremap <Leader>y "+y. 그래서 그것을로 줄 V\y입니다.
Martin Tournoij

@ Carpetsmoker 솔루션이 좋습니다. 답변 영역에 붙여 넣으면 최적의 솔루션으로 사용하고 싶습니다. 키 맵이 없으면 내 질문에 복사 할 수있는 최선의 방법은 V"+y4 번의 키 입력 인 것 같습니다.
user3813057

답변:


9

Vim이 다음을 사용하여 클립 보드 지원으로 빌드되었는지 확인할 수 있습니다.

:echo has('clipboard')

출력이 1인 경우 목표를 달성하기에 충분해야합니다.

"*y    in source Vim
"*p    in destination Vim

클립 보드 레지스터와 기본 레지스터를이 설정과 동기화하여 다음과 같이 원활하게 만들 수 있습니다 vimrc.

set clipboard^=unnamed

의 출력이 또는 인 경우 적절한 Vim을 설치하는 :echo has('clipboard')것이 좋습니다 (패키지 이름은 배포판마다 다를 수 있습니다).0vim-gtkvim-gnome


1

귀하의 질문에 이미 언급 한 해결책이 올바른 것이라고 생각합니다. 키 입력 횟수를 줄이려면 간단히지도를 만들 수 있습니다 (예 :

vmap <leader>y "+y
vmap <leader>d "+d
nmap <leader>p "+p
nmap <leader>P "+P
vmap <leader>p "+p
vmap <leader>P "+P

여기 에서 두 번째 항목을 참조 하십시오 .


1

@romainl의 답변을 확장하려면 (클립 보드 지원) 시스템 전체 클립 보드와 공유되는 레지스터를 사용할 수 있습니다.

"+y    To yank/copy from a vim-terminal
"+p    To paste in destination vim-terminal

"*y    To yank/copy from a vim-terminal
"*p    To paste in destination vim-terminal

이들 명령을 실행하여, 넌 Y anking / 복사 / 레지스터에 선택된 콘텐츠를 저장하고, P의 asting 그 대상 빔 단말. 이 두 특수 레지스터 +와는 *시스템 전체 클립 보드 (및 웹 브라우저의 gedit 등으로 따라서 다른 많은 프로그램)과 공유됩니다. 레지스터 +는 복사 / 붙여 넣기 버퍼와 *관련이 있으며 선택 버퍼 (우분투의 텍스트 필드를 가운데 클릭하여 선택의 사본을 삽입하는 선택 버퍼)와 연관되어 있으며 ctrl + v( ctrl + shift + v그놈 터미널에서)를 사용하여 붙여 넣을 수 있습니다 .


1

1) Fedora에서는 다음 설정을 사용합니다.

dnf install vim-X11

vim-X11은 클립 보드를 지원합니다. 다른 배포판에서도 비슷합니다.

2) 내 .bashrc에 별칭을 설정하십시오.

alias vim="vimx"

3) .vimrc에서 :

set clipboard=unnamedplus

이제 Vim의 일반적인 yank가 시스템 클립 보드에 들어가고 vim 외부의 모든 Ctrl-C를 vim에 붙여 넣을 수 있습니다.


0

당신이 맥 (OSX)를 사용하는 경우, 당신은 설치할 수 있습니다 bpcopy (사용 pbcopy 설치 BREW 다니게 http://brew.sh/을 자세한 내용). 그런 다음 마우스 건드리지 않고 다음 (직선 명령 줄) 실행하십시오 .

예:

1) TERMINAL # 001에서 :

cat /tmp/stuff.txt | pbcopy

2) OSX 터미널 응용 프로그램의 내장 단축키를 사용하여 터미널 # 002 (마우스를 사용하지 않고)로 전환 할 수 있습니다. command+i

3) TERMINAL # 002에서 : vim에서 새 파일을 엽니 다

vi newfile

4) vim을 삽입 모드i

5) command+ 를 사용하여 클립 보드의 텍스트를 삽입합니다 V(Mac의 클립 보드에서 붙여 넣기).

6) 나머지 하루를 즐기십시오!

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