Saltar al contenido

¿Cómo hacer que vim pegue desde (y copie) el portapapeles del sistema?

Luego de mucho batallar hemos encontrado la respuesta de esta escollo que agunos usuarios de nuestra web han tenido. Si quieres aportar algo más puedes compartir tu conocimiento.

Solución:

los "* y "+ los registros son para el portapapeles del sistema (:help registers). Dependiendo de su sistema, pueden hacer cosas diferentes. Por ejemplo, en sistemas que no usan X11 como OSX o Windows, el "* El registro se utiliza para leer y escribir en el portapapeles del sistema. En los sistemas X11 se pueden utilizar ambos registros. Ver :help x11-selection para más detalles, pero básicamente el "* es análogo a X11 _PRIMARY_ selección (que normalmente copia las cosas que selecciona con el mouse y las pega con el botón central del mouse) y "+ es análogo a X11 _CLIPBOARD_ selección (que es el portapapeles propiamente dicho).

Si todo eso se le pasó por la cabeza, intente usar "*yy o "+yy para copiar una línea al portapapeles de su sistema. Suponiendo que tiene las opciones de compilación adecuadas, una u otra debería funcionar.

Es posible que desee reasignar esto a algo más conveniente para usted. Por ejemplo, podrías poner vnoremap "*y en tus ~/.vimrc para que pueda seleccionar visualmente y presionar control+C para tirar al portapapeles de su sistema.

Tenga en cuenta que copiar/pegar desde el portapapeles del sistema no funcionará si :echo has('clipboard') devuelve 0. En este caso, vim no está compilado con el +clipboard característica y tendrá que instalar una versión diferente o volver a compilarla. Algunas distribuciones de Linux ofrecen una instalación mínima de vim por defecto, pero si Instala el vim-gtk o vim-gtk3 paquete no obstante, puede obtener las características adicionales.

También es posible que desee echar un vistazo a la 'clipboard' opción descrita en :help cb. En este caso puedes :set clipboard=unnamed o :set clipboard=unnamedplus para hacer que todas las operaciones de extracción/eliminación se copien automáticamente en el portapapeles del sistema. Esto podría ser un inconveniente en algunos casos en los que está almacenando algo más en el portapapeles, ya que lo anulará.

Para pegar puedes usar "+p o "*p (nuevamente, dependiendo de su sistema y/o selección deseada) o puede asignarlos a otra cosa. Los escribo explícitamente, pero a menudo me encuentro en modo de inserción. Si está en el modo de inserción, aún puede pegarlos con la sangría adecuada usando * o +. Ver :help i_CTRL-R_CTRL-P.

También vale la pena mencionar el de vim paste opción (:help paste). Esto pone a vim en un lugar especial. “modo pegar” eso deshabilita varias otras opciones, lo que le permite pegar fácilmente en vim usando el atajo de pegado familiar de su emulador de terminal o multiplexor. (Simplemente escriba :set paste para habilitarlo, pegue su contenido y luego escriba :set nopaste para deshabilitarlo.) Alternativamente, puede usar el pastetoggle opción para establecer un código clave que alterna el modo (:help pastetoggle).

Recomiendo usar registros en lugar de estas opciones, pero si aún dan demasiado miedo, esta puede ser una solución conveniente mientras perfecciona sus habilidades de vim.

Ver :help clipboard para obtener información más detallada.

Puede copiar en vim mediante el atajo de gnome-terminal para pegar. Haga el archivo en modo de inserción y use

control+Cambio+v.

Recuerda de antemano a

 :set paste 

para evitar jugar con la sangría.

Creo que esta pregunta merece una respuesta más objetiva y gráfica:

Entrar en modo de pegado

  • ESC
  • :establecer pegar
  • prensa I
  • CAMBIO + Insertar (con un texto copiado en su portapapeles)

Salir del modo Pegar

  • ESC
  • :establecer sin pegar
  • prensa I

Pegaste el texto y puedes volver a escribir.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *