Cómo copiar texto al portapapeles en Vim
En este artículo, le mostraré cómo copiar texto del editor de Vim a otro programa. Nuestro objetivo es copiar el contenido al portapapeles.
Usar copiar y pegar dentro de vim es más fácil usando el comando yank o usando registros. Pero cuando se trata de copiar a otra aplicación, digamos a un navegador que necesitamos pasos adicionales. Aquí explicaré dos métodos para copiar texto al portapapeles de su sistema.
- Instalando vim-gtk
- Compilando Vim
Método 1: mediante la instalación de vim-gtk
Entonces, ¿cómo copiamos de Vim a otra ventana de Vim o un navegador? De forma predeterminada, Vim no tiene esta capacidad para acceder al portapapeles de su sistema, pero obtener esta capacidad es extremadamente simple. Una forma es simplemente compilar una versión de Vim que tenga acceso al portapapeles, otra forma perezosa es simplemente instalar gvim (también conocido como vim-gtk).
Gvim es una versión gráfica de Vim. Cuando instale gvim, le dará al terminal normal vim sus capacidades de copiar y pegar en su portapapeles. En otras palabras, le brinda la posibilidad de copiar a un registro especial que corresponde al portapapeles de su sistema. El registro especial es un +
. En realidad, es solo un registro en el que puede copiar cosas y que lo colocará automáticamente en el portapapeles de su sistema.
Para instalar gvim (o vim-gtk), ejecute:
$ sudo apt-get install vim-gtk
Consideremos un ejemplo de cómo copiar una dirección de enlace y pegarla en el navegador. Abra nuestro archivo de ejemplo y navegue hasta la última línea. Ahora, debes ejecutar el siguiente comando:
V"+y
dónde:+
es el portapapeles de su sistema
Abra su navegador y presione ctrl + v de la misma manera que normalmente pegaría y verá que ahora está pegado. Podemos ir a ese sitio y obtener algo de él, copiar y pegar en nuestro Vim. Copiemos de la misma manera que lo hacemos normalmente con ctrl+c
. Ahora, podemos acceder a esta línea copiada en Vim ejecutando los siguientes comandos:
"+p
Verá que pega correctamente el contenido del navegador en Vim.
Método 2: compilando Vim
Otra forma es compilar Vim para admitir la copia del portapapeles. El Vim predeterminado no lo tiene debajo del capó. Entonces, para verificar si esta opción es válida, ejecute:
vim --version | grep .xterm_clipboard -o
Si obtiene algo como esto: -xterm_clipboard
Esto significa que no se admite la copia al portapapeles y debe compilar su Vim. Vale la pena mencionar que solo la versión de Vim con GUI admite el acceso al portapapeles. Entonces, para recompilar Vim, debe comenzar por obtener las dependencias de compilación de Vim e instalar mercurial:
$ sudo apt-get build-dep vim $ sudo apt-get install mercurial
Ahora, obtenga la fuente:
$ sudo hg clone http://hg.256bit.org/vim
Si ya tenía este clon de repositorio, actualícelo:
$ sudo hg pull $ sudo hg update
Y luego verifique si tiene la última versión:
$ hg summary
Ahora tienes que compilarlo:
cd vim_source
./configure --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --enable-rubyinterp=dynamic --enable-cscope --enable-gui=auto --enable-gtk2-check --enable-gnome-check --with-features=huge --with-x --with-compiledby="YourName <YourEmail@domain.com>" --with-python-config-dir=/usr/lib/python2.7/config
make && sudo make install
Eso lo instalará en /usr/local
camino. Tenga en cuenta que terminará con dos vim: /usr/bin/vim
sin acceso a su portapapeles:
y /usr/local/bin/vim
con acceso a su portapapeles:
Y con gvim /usr/local/bin/gvim
(con un enlace simbólico a /usr/local/bin/vim
. Admitirá portapapeles tanto si está en modo GUI como si no. Y siempre puede ejecutar el anterior con la ruta explícita.
Una vez que todo esté compilado, puede usar /usr/local/bin/vim
para abrir cualquier archivo y copiar y pegar texto de la misma manera que consideramos antes usando el registro ‘+’.
Cómo almacenar texto en el registro
Los registros son un pequeño espacio de almacenamiento en su sistema que puede almacenar el contenido que ha extraído o copiado. Puede usar muchos registros para almacenar diferentes contenidos extraídos.
Use el siguiente comando para seleccionar una línea y almacenarla en ‘un’ registro:
V"ay
dónde:
V (V mayúscula) – para marcar toda la línea
«(comillas dobles) – para acceder al registro
a – nombre de registro
y – yank (copiar)
Y para el registro ‘b’
V”by
Ahora, hemos guardado el texto en dos registros diferentes y podemos pegarlos, y podemos pegarlos en un orden diferente. Por ejemplo, podemos pegar el registro ‘b’ ejecutando el siguiente comando:
“bp
dónde:
p – pegar
Conclusión
En este artículo, hemos considerado dos formas de habilitar el acceso a su portapapeles en Vim. Ambas opciones son válidas y parece que instalar el paquete vim-gtk es más rápido y eficiente que compilar Vim.