macos onde Vim: copia a seleção para a área de transferência do OS X




como copiar e colar no mac (21)

Digamos que você tenha uma área selecionada no vim. Como você pode copiá-lo na área de transferência do OS X?

(Dica: a área de transferência do OS X pode ser gravada no pipe via /usr/bin/pbcopy )


Answer #1

Selecione visualmente o texto e digite:

ggVG
!tee >(pbcopy)

Que eu acho mais legal que:

ggVG
:w !pbcopy

Como não aparece um prompt: "Pressione ENTER ou digite command para continuar"


Answer #2

Se você está no MacOS X:

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

Em seguida, adicione ao seu .vimrc:

set clipboard=unnamed

Agora você só precisa estar no vim e fazer :%y , para ter todo o conteúdo copiado para sua área de transferência.


Answer #3

Command-c funciona para mim tanto no MacVim quanto no terminal.


Answer #4

Se a área de transferência estiver habilitada, você pode copiar uma região selecionada para a área de transferência pressionando "*y

Para ver se está habilitado, oa vim --version e procure por +clipboard ou -clipboard . Por exemplo, não está ativado por padrão na minha caixa 10.5.6:

% which vim
/usr/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43)
Included patches: 1-22
Compiled by [email protected]
Normal version without GUI.  Features included (+) or not (-):
...
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

Se ele tivesse sido compilado com a +clipboard , eu poderia usar o registro "* para acessar a área de transferência do sistema.

Eu baixei a fonte 7.2 e a compilei (fácil como tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install ), e a área de transferência foi ativada:

% which vim
/usr/local/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 24 2009 17:31:52)
Compiled by [email protected]
Normal version with GTK2 GUI.  Features included (+) or not (-):
...
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

No entanto, mesmo depois de compilar, eu não consegui copiar para a área de transferência ao executar o vim no Terminal.app, apenas no X11.app.


Answer #5

comando-C? Isso pelo menos funciona para o vim lançado de dentro do Terminal.app para o texto selecionado com o mouse.


Answer #6

Para usuários do Ubuntu, o pacote que você deseja recuperar para usar a área de transferência é vim-full. Os outros pacotes (vim-tiny, vim) não incluem o recurso de clipboard.


Answer #7

Se o seu vim não é compilado com pranchetas, você deseja copiar o texto selecionado em vez de linhas inteiras, você não deseja instalar o macvim ou outra GUI, a solução mais simples é adicionar esta linha ao seu .vimrc:

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

Para usá-lo, simplesmente selecione visualmente o texto que deseja copiar e, em seguida, Control-C. Se você quiser uma explicação completa desta linha, leia aqui


Answer #8

No macos 10.8, o vim é compilado com o -clipboard para usar "*y você precisará recompilar. Felizmente brew install vim e compile uma nova versão facilmente para você e ela será +clipboard .


Answer #9

Eu apenas tentei o

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

Funcionou muito bem.


Answer #10

Use Homebrew's vim Homebrew's : brew install vim

O Mac (a partir do 10.10.3 Yosemite) vem pré-instalado com um sistema vim que não possui o sinalizador de clipboard ativado.

Você pode compilar o vim para si mesmo e habilitar esse sinalizador, ou simplesmente usar o vim do Homebrew que está configurado corretamente.

Para ver isso por si mesmo, confira o sistema de estoque vim com /usr/bin/vim --version

Você verá algo como:

$ /usr/bin/vim --version

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

Observe o -clipboard

Com o vim do homebrew, você recebe

$ /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 ...

Observe a +clipboard


Answer #11

Para MacVim e Windows Gvim, basta adicionar o seguinte ao seu ~/.vimrc :

set clipboard=unnamed

Agora, todas as operações, como yy , D e P funcionam com a área de transferência. Não é necessário prefixá-los com "* ou "+ .


Answer #12

se você tem a opção + clipboard na sua instalação VIM (você pode verificar com: version) e você está no modo visual, você pode fazer "+ y" Isso irá puxar a seleção para o buffer + que é a área de transferência.

Eu adicionei os seguintes mapas ao meu vimrc e funciona bem.

vmap y "+ y Com isso eu posso fazer chave de líder, siga com y para copiar para a área de transferência no modo visual

nmap p "+ p Com isso eu posso fazer chave de líder, siga por p para colar a partir da área de transferência no modo normal.

PD: No Ubuntu eu tive que instalar o vim-gtk para obter a opção + clipboard.


Answer #13

O que funcionou para mim no meu .vimrc

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

Answer #14

Fakeclip implementa os buffers de + e * se eles não forem suportados nativamente.


Answer #15

Copiar para a área de transferência usando o registro '+' ou '*' não está funcionando?

Razão: Sua versão específica do vim foi compilada sem suporte à área de transferência. Digite vim --verion no console e você verá -xterm_clipboard . Instalar o vim com pacotes gui resolve esse problema. No Ubuntu você pode fazer isso digitando no shell:

sudo apt-get instala vim-gui-common

Agora, novamente, faça o vim --version no console. Muito provavelmente, você estaria vendo + xterm_clipboard agora !!

Então, agora você pode copiar qualquer coisa para a área de transferência usando register + (como "+ yy para copiar a linha atual para a área de transferência)


Answer #16

Você pode selecionar visualmente o texto e digitar :w !pbcopy<CR>

Ou você pode incluir os mapeamentos de teclas abaixo em seu arquivo ~/.vimrc . Eles cortam / copiam texto no modo visual para a área de transferência do sistema operacional.

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

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


Answer #17

Meu principal problema era a versão osx padrão do VIM. Instalando-o via homebrew adicionado +clipboard para a compilação.

verificar com

vim --version

se diz -clipboard ou +clipboard


Answer #18

Se você estiver usando o MacPorts, poderá atualizar seu VIM para incluir o suporte da área de transferência por meio de:

porta instalar vim + x + x11

Agora você usa o registro "+" para puxar seu texto diretamente para a área de transferência do Mac. Funciona como um encanto.


Answer #19

Você pode usar o MacVim quando estiver em um Mac para acessar facilmente a área de transferência usando as teclas padrão do sistema operacional.

Também é totalmente retrocompatível com o Vim normal, então eu nem preciso ter um .vimrc separado.


Answer #20

asterisco de aspas duplas ( " * ) antes de qualquer comando yank irá puxar os resultados para o buffer de cópia. Isso funciona para Windows e Linux também.


Answer #21

Atualmente estou no OS X 10.9 e meus esforços para compilar o vim com + xterm_clipboard não me trouxeram nada. Portanto, minha solução atual é usar o MacVim no modo terminal com a opção set clipboard=unnamed no meu arquivo ~ / .vimrc. Funciona perfeito para mim.





clipboard