선택 사항을 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

, 경우 모두해야 할 일 - vim와 macvim+ 클립 보드가 있습니다. 그리고에 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.