macos - Vim: copiar selección al portapapeles OS X
clipboard (25)
¿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)
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
)
Acabo de probar el
map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
Funcionó muy bien.
Actualmente estoy en OS X 10.9 y mis esfuerzos para compilar vim con + xterm_clipboard no me aportaron nada. Así que mi solución actual es usar MacVim en modo terminal con la opción set clipboard=unnamed
en mi archivo ~ / .vimrc. Funciona perfecto para mi.
Command-c funciona para mí tanto en MacVim como en la terminal.
Dependiendo de la versión de vim que use, puedo usar el registro + para acceder al portapapeles.
http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing puede tener algunas ideas que también funcionen para usted.
En macos 10.8, vim se compila con -clipboard
modo que se use "*y
tendrá que volver a compilarlo. Afortunadamente, brew install vim
compilaría una nueva versión fácilmente para usted y será +clipboard
.
Lo que funcionó para mí en mi .vimrc
set clipboard=unnamed
if has("unnamedplus") " X11 support
set clipboard+=unnamedplus
endif
Me encuentro con el mismo problema, después de instalar macvim
todavía no funciona, finalmente encontré una manera de resolver:
Trate de desinstalar todos los vim primero,
brew uninstall macvim
brew uninstall --force vim
y reinstalar macvim
brew install macvim --with-override-system-vim
Luego puede usar "*y
o "+y
, no tiene que set clipboard=unnamed
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 "+
.
Para los usuarios de Ubuntu, el paquete que desea recuperar para usar el portapapeles está completamente lleno. Los otros paquetes (vim-tiny, vim) no incluyen la función de portapapeles.
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>
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.
Seleccione visualmente el texto y escriba:
ggVG
!tee >(pbcopy)
Que me parece mejor que:
ggVG
:w !pbcopy
Ya que no muestra una advertencia: "Presione ENTER o escriba el comando para continuar"
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 estás en MacOS X:
$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
Luego, agregue a su .vimrc:
set clipboard=unnamed
Ahora solo necesitas estar en vim y hacer :%y
, para que todo el contenido se copie en tu portapapeles.
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
comando-c? Esto al menos funciona para el vim lanzado desde Terminal.app para el texto seleccionado con el mouse.
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
si tiene la opción + portapapeles en su instalación VIM (puede verificar con: versión) y está en modo visual, puede hacer "+ y Esto llevará la selección al búfer + que es el portapapeles.
He agregado los siguientes mapas a mi vimrc y funciona bien.
vmap y "+ y Con esto puedo hacer la tecla de líder, seguida por y para copiar al portapapeles en modo visual
nmap p "+ p Con esto puedo hacer la tecla de líder y luego p para pegar desde el portapapeles en modo normal.
PD: En Ubuntu tuve que instalar vim-gtk para obtener la opción + portapapeles.
Fakeclip implementa los buffers + y * si no son compatibles de forma nativa.