Puedo capturar un archivo, copiar y pegar texto con el botón central o shift-insert.
¿Cómo puedo copiar texto en vim y pegarlo desde el portapapeles del sistema?
:!sed -n 5,10p %
:!cat %
Puedo capturar un archivo, copiar y pegar texto con el botón central o shift-insert.
¿Cómo puedo copiar texto en vim y pegarlo desde el portapapeles del sistema?
:!sed -n 5,10p %
:!cat %
Respuestas:
Es necesario tener Vim con el clipboard
y xtermclipboard
características compilado. En Ubuntu, éstos sólo están disponibles con los paquetes de interfaz gráfica de usuario (vim vim-gnome
, vim-gtk
, vim-athena
, etc.).
Una vez que instales uno de estos, puedes copiar (y pegar desde) los registros del portapapeles ( *
y +
). De esta publicación muy informativa sobre Vi y Vim :
Para los sistemas basados en X11 (es decir, Linux y la mayoría de los sistemas similares a UNIX ) hay 2 portapapeles, que son independientes entre sí:
- PRIMARIO: se trata de copiar al seleccionar y se puede pegar con el botón central del mouse.
- CLIPBOARD: se copia con (generalmente)
^C
y se pega con^V
(es como MS Windows).
Vim tiene 2 registros especiales correspondientes a estos portapapeles:
*
utiliza PRIMARIO; mnemónico: s tar es s elect (para copy-on- s elect)+
usa el CLIPBOARD; mnemónico: CTRL + C (para la combinación de teclas común)
Para copiar a un registro, debe preceder el comando de copia ( y
) con "
y el nombre del registro ( *
por ejemplo). "*y
, A continuación, el botón del medio para pegar, o "+y
y ShiftInsertpegar.
Una solución bastante interesante proviene de esta pregunta. Instale xclip, luego canalice la salida de un comando a xclip ( cat file | xclip -selection clipboard
por ejemplo) y luego péguelo en cualquier lugar (si está en la terminal, úselo Ctrl ShiftV
). Ahora, resulta que puedes acortar ese comando xclip -sel clip
, lo que no es exactamente aparente al leer la página del manual o los ejemplos allí.
/dev
, pero el texto todavía está en alguna parte, ¿verdad?
Tuve un problema porque mi vim no era compatible con el portapapeles :
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Instalé vim-gnome (que admite el portapapeles) y luego verifiqué nuevamente:
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Ahora puedo copiar y pegar usando "+ y y" + p respectivamente.
sed -n5,10p
para imprimir líneas 5-10 para poder copiar y pegar más fácilmente sin que reaccione con el mouse.