macos - Vim: copiar selección al portapapeles OS X




clipboard (17)

Digamos que tienes un área seleccionada en vim. ¿Cómo puedes copiarlo en el portapapeles de OS X?

(Sugerencia: el portapapeles de OS X se puede escribir a través de canalización a /usr/bin/pbcopy )


¿La copia al portapapeles utilizando el registro '+' o '*' no funciona?

Motivo: su versión particular de vim se compiló sin el soporte del portapapeles. Escriba vim --verion en la consola y verá -xterm_clipboard . Instalar vim con paquetes gui resuelve este problema. En ubuntu puedes hacer esto escribiendo en shell:

sudo apt-get install vim-gui-common

Ahora nuevamente vim --version en consola. Probablemente, estarías viendo + xterm_clipboard ahora !!

Entonces, ahora puede copiar cualquier cosa al portapapeles usando el registro + (como "+ yy para copiar la línea actual al portapapeles)


Acabo de probar el

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

Funcionó muy bien.


Command-c funciona para mí tanto en MacVim como en la terminal.




Lo que funcionó para mí en mi .vimrc

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

Mi principal problema fue la versión osx predeterminada de VIM. Instalarlo a través de homebrew agregado +clipboard a la compilación.

Comprueba con

vim --version

si dice -clipboard o +clipboard


Para MacVim y Windows Gvim, simplemente agregue lo siguiente a su ~/.vimrc :

set clipboard=unnamed

Ahora todas las operaciones como yy , D y P funcionan con el portapapeles. No es necesario prefijarlos con "* o "+ .


Puede seleccionar el texto visualmente y escribir :w !pbcopy<CR>

O puede incluir las siguientes asignaciones de teclas en su archivo ~/.vimrc . Cortan / copian texto en modo visual al portapapeles del sistema operativo.

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

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


Puede usar MacVim cuando está en una Mac para acceder fácilmente al portapapeles utilizando las teclas estándar del sistema operativo.

También es totalmente compatible con Vim normal, por lo que ni siquiera tengo que tener un .vimrc separado.


Si el portapapeles está habilitado, puede copiar una región seleccionada al portapapeles presionando "*y

Para ver si está habilitado, ejecute vim --version y busque +clipboard o -clipboard . Por ejemplo, no está habilitado de forma predeterminada en mi caja 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
...

Si se hubiera compilado con +clipboard , podría usar el registro "* para acceder al portapapeles del sistema.

Descargué la fuente 7.2 y la compilé (tan fácil como tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install ), y el portapapeles estaba habilitado:

% 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
...

Sin embargo, incluso después de compilar, no pude copiar en el portapapeles cuando ejecuté vim en Terminal.app, solo en X11.app.


Si está utilizando MacPorts, puede actualizar su VIM para incluir soporte de portapapeles a través de:

puerto instalar vim + x + x11

Ahora usa "+ register" para jalar su texto directamente al portapapeles de su Mac. Funciona como un encanto.


Si su vim no está compilado con portapapeles, desea copiar texto seleccionado en lugar de líneas completas, no desea instalar macvim u otra GUI, la solución más simple es agregar esta línea a su .vimrc:

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

Para usarlo, simplemente seleccione visualmente el texto que desea copiar, y luego presione Control-C. Si quieres una explicación completa de esta línea, lee aquí.


Use Homebrew's : brew install vim

Mac (a partir de 10.10.3 Yosemite) viene preinstalado con un sistema vim que no tiene habilitada la bandera del clipboard .

Puedes compilar vim por ti mismo y habilitar esa bandera, o simplemente usar vim de Homebrew que está configurado correctamente.

Para ver esto por ti mismo, revisa el sistema de valores vim con /usr/bin/vim --version

Verás 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 ...

Tenga en cuenta el -clipboard

Con el vim de homebrew, obtienes

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

Tenga en cuenta el +clipboard


doble comillas asterisco ( " * ) antes de que cualquier comando de yank tire de los resultados al búfer de copia. Eso también funciona para Windows y Linux.


en mac cuando algo parece funcionar, seleccione con el mouse, haga clic derecho para elegir copiar. uff


Fakeclip implementa los buffers + y * si no son compatibles de forma nativa.





clipboard