선택 사항을 OS X 클립 보드에 복사하는 방법


225

Vim에서 영역을 선택했습니다. OS X 클립 보드에 어떻게 복사 할 수 있습니까?

(OS X 클립 보드는에 파이프를 통해 쓸 수 있습니다 /usr/bin/pbcopy)


4
시각적으로 선택한 다음을 클릭하십시오 "+y.
zx1986

2
OSX와 함께 제공되는 vim 에는 또는 이 없습니다 . 로 확인할 수 있습니다 . 로 해결할 수 있습니다 . +clipboard+xterm-clipboardvim --version | grep clipboardbrew install vim --with-client-server
LondonRob

1
또는하여에 심볼릭 링크 수있는 명령 줄 버전을 제공 MacVim, 사용 ~/bin후 및 ~/bin앞으로 정상적인 시스템 설치 정력과 동의어의 경로에 삽입 할 수 있습니다.
Tin Man

@ zx1986의 글을 바탕으로 세 가지 작업을 수행했습니다. 1) vi / vim을 MacVim의 터미널 모드로 별칭 지정하기 위해 ~ / .bashrc에 alias vi='mvim -v'다음을 추가했습니다 . 2) ~ / .vimrc에 다음을 추가했습니다. c (Cmd + c 아님) : vnoremap <C-c> "+y3) ^c터미널에서 실행할 때 키 시퀀스 (Ctrl + C) 를 입력하도록 키보드 Maestro를 구성 했습니다 (제 경우 iTerm2). Cmd + c를 사용하여 텍스트를 OSX 클립 보드에 복사 할 수 있습니다 다른 OSX 응용 프로그램에 붙여 넣을 수 있습니다.
닐 그리핀

답변:


79

사용중인 Vim 버전에 따라 +레지스터를 사용하여 클립 보드에 액세스 할 수 있습니다 .

" Mac OS X 클립 보드 공유 "에는 유용한 아이디어가있을 수 있습니다.


5
+ 클립하지 않고 컴파일 VIM 가진 사람들은 위의 링크 해결 방법을 제공하는 우수한 자원 w / O 재 컴파일 VIM
sdjuan

매우 중요한 세부 사항 !!! Vim 버전 7.3이있는 경우이 기능이 작동하지 않을 수 있지만 Vim 버전 7.4가있는 경우 작동합니다 (때로는 전체 "+ y"를 수행하지 않아도 됨). 터미널에> vim을 쓴 다음 버전 번호는 시작할 때입니다
Zeth


1
"+OS X는 윈도우 시스템으로 X11을 사용하지 않는 동안, (당신이, + X11 지원 정력 구축 OS X에서 X11 서버 XQuartz를 설치할 경우 제외) 레지스터는 X11 존재합니다.
nn0p

, 경우 모두해야 할 일 - vimmacvim+ 클립 보드가 있습니다. 그리고에 clipboard=unnamed추가 ~/.vimrc? 진짜 고통처럼 보이며 모든 해결 방법을 시도했으며 현재 우주 클립 보드를 사용해야합니다. 내가 알면 글로벌 클립 보드를 사용해야합니다 :)
Nikolay Fominyh

240

들어 MacVim 및 Windows GVIM, 단순히 당신에 다음을 추가 ~/.vimrc:

set clipboard=unnamed

등 이제 모든 작업 yy, D그리고 P클립 보드와 함께 작동합니다. 필요가 그들을 접두사 없습니다 "*"+.


2
나는 아침 내내 MacVim이 가능하게하는 ⌘-C 및 ⌘-V에서 y, d 및 P 명령을 분리하는 방법을 알아내는 데 보냈습니다. 확실히, 나는 vim 청소년이었을 때 vimrc에 이것을 추가했고 그 이후로 나를 실망시켰다.
Jonathan Dumaine

2
MacVim을 처음 사용하는 사용자는 터미널에서 -v플래그 ( mvim -v)를 사용하여 사용할 수 있습니다 . 나는 vim과 mvim에 별명을 붙였다.
pk-nb

3
위의 의견에서 @VincentG가 언급했듯이 이것은 실제로 터미널 기반 버전의 Vim에서 작동하지만 터미널 내에서 tmux를 사용하는 사람들은 여기에 설명 된 솔루션 중 하나를 따라야합니다. stackoverflow.com/a/11421329/456584
user456584

3
이 허용 대답을해야한다 - 긴만큼 :echo has("clipboard")말했다 1MacVim의 경우 인, 그리고 나는이 vi별칭을 그 실행 mvim -v대신
jdsumsion

1
@Joseph, :version보여 주면 -clipboardVim 빌드는 클립 보드 기능을 지원하지 않습니다. GUI 앱인 MacVim에 대해 이야기하고있었습니다.
George V. Reilly

136

클립 보드가 활성화되어 있으면 선택한 영역을 클립 보드에 복사하여 "*y

이 활성화 실행되어 있는지 vim --version와 대한 모습 +clipboard이나 -clipboard. 예를 들어 10.5.6 상자에서 기본적으로 활성화되어 있지 않습니다.

어느 % vim
/ usr / bin / vim
% vim-버전
VIM-Vi 개선 7.2 (2008 년 8 월 9 일, 2008 년 11 월 11 일 17:20:43 컴파일)
포함 된 패치 : 1-22
_www@b77.apple.com에 의해 편집 됨
GUI가없는 일반 버전.  포함 된 기능 (+) 또는 포함되지 않음 (-) : 
... 
-clientserver -clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments
 ...

로 컴파일 된 경우 레지스터를 사용하여 시스템 클립 보드에 액세스 +clipboard할 수 있습니다 "*.

7.2 소스를 다운로드하여 컴파일하면 (쉽게 tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install) 클립 보드가 활성화되었습니다.

어느 % vim
/ usr / local / bin / vim
% vim-버전
VIM-Vi 개선 7.2 (2008 년 8 월 9 일, 2009 년 3 월 24 일 컴파일 17:31:52)
rampion@Myrrhy.local에 의해 컴파일 됨
GTK2 GUI가있는 일반 버전.  포함 된 기능 (+) 또는 아닙니다 (-) : 
... 
+ clientserver + clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments
 ...

그러나 컴파일 후에도 Terminal.app에서 vim을 실행할 때 X11.app에서만 클립 보드에 복사 할 수 없었습니다.


3
+ clipboard로 최신 버전을 컴파일했으며 이제 기본 클립 보드가 * 레지스터로 작동합니다. 또한 .vimrc 파일에서 "set clipboard = unnamed"를 설정하면 시스템 클립 보드가 일반적인 클립 보드가됩니다. 나는 실제로 github.com/adamv/homebrew/blob/duplicates/Library/Formula/… 이 homebrew 공식을 사용하여 빌드하고 컴파일했습니다.
rado

흠, 왜 Vim이 Homebrew에 나타나지 않는지 잘 모르겠지만 / usr / local / Library / Formula에 복사하고 brew install vim을 실행했는데 "ld : -lruby-static에 대한 라이브러리를 찾을 수 없습니다" ". RVM을 사용하고 있으며 1.8.7이었습니다. 1.9.2로 전환했을 때 오류는 "ld : library for found -lruby.1.9.1"입니다. 해결책은 먼저 rvm 사용 시스템을 실행하여 시스템 Ruby를 사용하는 것입니다.
Just at

9
일반적으로 긴 기능 목록 인 "clipboard"라는 단어를 검색하는 것보다 조금 더 쉽습니다 :echo has("clipboard"). 0을 표시하면 컴파일되지 않습니다. 1을 표시하면 해당됩니다.
ravron

3
당신은 또한 homebrew를 사용하여 클립 보드로 vim을 컴파일 할 수 있습니다 : brew install vim
Anton Koval '

4
조심해! 나는 +clipboard버전을 가지고 있지만 --with-client-server가능하게 설치 +x11하고 macOS의 터미널 vim에서 x11에 복사 / 붙여 넣기 시도가 작동하지 않았습니다. :)없이 다시 설치해야했습니다 +clientserver.
jacwah

96

텍스트와 유형을 시각적으로 선택할 수 있습니다 :w !pbcopy<CR>

또는 ~/.vimrc파일 에 아래의 키 매핑을 포함시킬 수 있습니다 . 시각 모드에서 텍스트를 운영 체제의 클립 보드로 잘라내거나 복사합니다.

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 

출처 : http://drydevelopment.com/blog/vim-pbcopy-on-os-x


6
: 1,10w! pbcopy와 같은 명령 줄에서 텍스트를 선택하여 1-10 행을 클립 보드에 복사 할 수도 있습니다. 원본 텍스트를 그대로 유지하려면 공백과 함께 w가 중요합니다. 위의 소스 링크가 깨졌지만 여기에 토론이 있습니다 : vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing
sdjuan

나는 이것을 tmux에서 작동시키기 위해 이것을 따라 갔다 : superuser.com/questions/231130/…
Wex

@Wex 링크가 수정되었습니다
SnoringFrog

2
이것은 전체 줄을 선택할 때만 작동하는 것 같습니다. 선의 일부만 선택하려는 경우 작동하지 않는 것 같습니다. stackoverflow.com/questions/16196826/…
Kevin Wheeler

1
@Kevin Wheeler : 비선형 복사 noremap <silent> <leader> y : <CR> : let @ a = @ "\ |"normal! vgvy "\ | let res = system ("pbcopy ", @") \ | @ "= @ a <CR>
dragonxlwang

38

"*yank 명령 앞에 큰 따옴표 별표 ( )가 있으면 복사 버퍼에 결과가 표시됩니다. 그것은 Windows와 Linux에서도 작동합니다.


11
그냥 종 캐릭터와 나에게 다른 효과를 방출하지 않는 것 같습니다
ʞɔıu

3
X11에서 Vim의 "*는 PRIMARY이고"+는 CLIPBOARD이며 SECONDARY는 명명 된 레지스터를 얻지 못합니다. (아무도 그것을 사용하지 않습니다 ...)
ephemient

아주. 특히 블록 선택 (ctrl-v)에서 실제로 도움이됩니다.
Sonique

질문은 Mac OS X에 관한 것이기 때문에 Mac에서도 작동한다고 덧붙일 필요가 없습니다.
Paul Tomblin

@PaulTomblin 좋아, 충분히 공평 :-)
apprenticeDev

26

맥 OS 10.8에서 정력은 컴파일 -clipboard사용하는 그래서 "*y당신이 다시 컴파일해야합니다. 운 좋게도 brew install vim새 버전을 쉽게 컴파일 할 수 있습니다 +clipboard.


1
아주 변태 - 뭔가 명심해야 할 brew install vim업데이트 vi없습니다 vim . 따라서 homebrew와 함께 vim을 설치 한 후 별명을 다르게 지정해야 할 수도 있습니다.
shridharama

18

텍스트를 시각적으로 선택하고 입력하십시오.

ggVG
!tee >(pbcopy)

내가보다 더 좋은 것을 발견 :

ggVG
:w !pbcopy

프롬프트가 표시되지 않으므로 "ENTER (입력)를 누르거나 계속하려면 command를 입력하십시오"


여전히 전체 라인을 복사합니다
Karl Pokus


11

MacPorts를 사용하는 경우 다음을 통해 클립 보드 지원을 포함하도록 VIM을 업그레이드 할 수 있습니다.

port install vim +x +x11

이제 "+레지스터를 사용 하여 텍스트를 Mac 클립 보드로 직접 가져 옵니다 . 매력처럼 작동합니다.


1
이것은 내가 필요한 것입니다. $ PATH가 올바른지 확인하고 Apple vim이 아닌 / opt / local / bin / vim을 받고 있어야합니다.
Gareth

8

MacOS X를 사용하는 경우 :

$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]

그런 다음 .vimrc에 추가하십시오.

set clipboard=unnamed

이제 당신은 단지에있을 필요가 정력 과 할 :%y모든 내용을 클립 보드에 복사하도록.


내용이 손상되었지만 VIM 외부에 붙여 넣을 수 없습니다.
prayagupd

5

Homebrew의 vim을 사용하십시오 :brew install vim

(10.10.3 요세미티 기준) 맥 않는 시스템 정력에 사전 설치되어 있지clipboard플래그가 활성화.

vim을 직접 컴파일하고 해당 플래그를 활성화하거나, 올바르게 설정된 Homebrew의 vim을 사용할 수 있습니다.

이것을 직접 보려면 재고 시스템 vim을 확인하십시오. /usr/bin/vim --version

다음과 같은 내용이 표시됩니다.

$ /usr/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov  5 2014 21:00:28)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...

참고 -clipboard

homebrew의 vim을 사용하면 대신

$ /usr/local/bin/vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42)
MacOS X (unix) version
Included patches: 1-712
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
... +clipboard ...

참고 +clipboard


1
그런 다음 어떻게 복사합니까?
Frozen Flame

정력의 BREW 버전으로 나는 내가 원하는 일을 할 수 있었다 : 내가 사용 라인을 강조 V다음을 :w !pbcopy하며 일
davidpm4

5

Vim이 클립 보드로 컴파일되지 않은 경우 전체 줄 대신 선택된 텍스트를 복사하고 MacVim 또는 기타 GUI를 설치하지 않으려면 가장 간단한 해결책은이 줄을 .vimrc에 추가하는 것입니다.

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

사용하려면 복사 할 텍스트를 시각적으로 선택한 다음 Control- 를 누르십시오 C. 이 줄에 대한 자세한 설명을 보려면 " vim에서 클립 보드에 복사하는 방법 "을 읽으십시오 .


그러나 그것은 또한 텍스트가 복사 된 후 나에게 2 개의 검은 선을줍니다
Nic Wanavit

4

나는 사용했다 :

map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>

정말 잘 작동했습니다.


3

당신이 사용할 수있는 MacVim을 쉽게 표준 OS 키를 사용하여 클립 보드에 액세스 할 수 맥에있을 때.

또한 일반 Vim과 완벽하게 호환되므로 별도의조차 필요하지 않습니다 .vimrc.


MacVim을 사용한 다음 명령 줄 vim 동의어를 my ~/bin로 연결하여 기본값을 재정의했습니다.
Tin Man

2

커맨드 -C? 이것은 적어도 Terminal.app 내에서 시작된 vim이 마우스로 선택된 텍스트에 대해 작동합니다.


6
좋은 순진한 대답이지만 vim에서 수직 분할 서브 윈도우를 사용하거나 (실제로 내가 생각하고있는 경우) 결과가 하나의 터미널 화면보다 길면 출력이
끊어

3
당신 말이 맞아요, 나는이 사건들을 생각하지 않았습니다. 다른 사람들이 도움이되지 않는 유사한 답변을하지 못하도록 답변을 남깁니다.
mouviciel


2

내 주요 문제는 Vim의 기본 OSX 버전이었습니다. +clipboard빌드에 추가 된 homebrew를 통해 설치합니다 .

당신은 확인할 수 있습니다 :

vim --version

-clipboard또는 라고 표시되어 있는지 확인하십시오 +clipboard.


2

당신이있는 경우에 +clipboard당신의 빔 설치에 대한 옵션을 (당신과 함께 확인하실 수 있습니다 :version) 그리고 당신은 당신이 할 수있는 비주얼 모드에서 "+y이 버퍼에 선택을 꺼낼 것이다 +클립 보드입니다.

vimrc에 다음 맵을 추가했으며 정상적으로 작동합니다.

vmap <leader>y "+y :이 내가 할 수 leader key에 의해 추적을 y시각적 모드에서 클립 보드에 복사합니다.

nmap <leader>p "+p : 이것으로 할 수 있습니다 leader key 에 의해 다음과 p일반 모드에서 클립 보드에서 붙여 넣기 할 수 있습니다.

PD : 우분투에서 +clipboard옵션 을 얻으려면 vim-gtk를 설치해야했습니다 .


0

Mac에서 다른 것이 작동하는 것처럼 보일 때-마우스로 선택하고 마우스 오른쪽 버튼을 클릭하여 복사를 선택하십시오. uff



0

내에서 나를 위해 일한 것 .vimrc

set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif

0

Mac의 경우 텍스트를 선택하는 동안 option키를 누른 ctrl V채로 트릭을 수행했습니다.


0

Shift cmd c – 복사 모드 설정 마우스를 드래그하고 텍스트를 선택하고 cmd c를 사용하여 선택한 텍스트를 복사합니다 Cmd v 붙여 넣기


-1

우분투 사용자의 경우 클립 보드를 사용하여 검색하려는 패키지가 가득 찼습니다. 다른 패키지 (vim-tiny, vim)에는 클립 보드 기능이 포함되어 있지 않습니다.


vim-full은 더 이상 우분투 패키지 이름이 아닙니다. 기본 vim 패키지 (7.3.154)에는 -clipboard를 포함하여 최소 기능 세트가 있습니다. vim-gtk 또는 vim-nox를 설치하면 + 클립 보드 버전이 제공됩니다.
spazm

-1

레지스터 '+'또는 '*'를 사용하여 클립 보드에 복사가 작동하지 않습니까?

이유 : vim의 특정 버전은 클립 보드 지원없이 컴파일되었습니다. vim --verion을 콘솔에 입력하면 -xterm_clipboard 가 표시 됩니다 . gui 패키지와 함께 vim을 설치하면이 문제가 해결됩니다. 우분투에서는 쉘에 다음과 같이 입력하면됩니다 :

sudo apt-get 설치 vim-gui-common

이제 콘솔에서 vim --version을 다시 수행하십시오. 아마도 + xterm_clipboard 가 표시 될 것입니다 .

이제 레지스터 +를 사용하여 클립 보드에 무엇이든 복사 할 수 있습니다 (예 : "+ yy와 같이 현재 행을 클립 보드에 복사)


-1

설치가 macvim여전히 작동하지 않으면 같은 문제가 발생하여 마침내 해결 방법을 찾았습니다.

모든 vim을 먼저 제거하고

brew uninstall macvim

brew uninstall --force vim

macvim을 다시 설치하십시오

brew install macvim --with-override-system-vim

그럼 당신은 사용할 수 있습니다 "*y또는 "+y필요 없어,set clipboard=unnamed


-2

Command-c는 MacVim과 터미널 모두에서 작동합니다.


기존의 복사 및 붙여 넣기는 Vim 버퍼에서 작동하지 않으며 포맷을 완전히 망칠 수 있습니다. 예를 들어 Cmd + C를 사용하여 중첩 된 개체 15 줄을 복사 한 다음 Cmd + V를 붙여 넣으면 중첩에 대한 이해가 없어집니다. 이것은 아마도 .vimrc의 설정에 달려 있으며 매우 구체적
netpoetica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.