vimrc – ¿Cómo puedo copiar / pegar texto nuevo sin sangría automática en cada línea nueva?

Pregunta:

Cómo pego ahora:

  1. Haga clic derecho / Copiar o simplemente resalte.
  2. Clic derecho / Pegar o Clic central o CTRL + MAYÚS + V
  3. Las sangrías aparecen a intervalos crecientes: 0, 2, 4, 6, +

Pregunta en la mano:

De una investigación anterior, descubrí que la solución rápida y sucia es ingresar lo siguiente en mi archivo .vimrc : set paste . Sin embargo, aquellos que sugirieron ese comando dijeron que el set paste afecta a otras configuraciones. (Fuera de mi cabeza, lo olvido).

Me gustaría saber qué opción puedo establecer que simplemente se pegue sin sangría adicional. Si eso termina siendo 'paste' , entonces me gustaría saber qué hace exactamente ese comando.

Solo veo una diferencia. Cuando está en Vim, -- INSERT -- convierte en -- INSERT (paste) --

Respuesta:

Bien, aquí hay un manual de "tirar y poner" …

En Vim, los comandos principales para tirar (copiar) y poner (pegar) son y y p .

Yanking coloca el texto extraído en un registro. Ese registro es el registro sin nombre " , de forma predeterminada, pero se pueden usar otros registros:

"ay    " yank into register a
"by    " yank into register b
"+y    " yank into clipboard register
[…]

Del mismo modo, poner inserta texto de un registro. Ese registro es el registro sin nombre por defecto, pero se pueden usar otros registros:

"ap    " put from register a
"+p    " put from clipboard register
"3p    " put from the register 3
[…]

Esos comandos se prefieren a "Clic derecho / Pegar o Clic central o CTRL + MAYÚS + V" porque el texto se "coloca" en el búfer sin ningún tratamiento especial. Con "Clic derecho / Pegar o Clic central o CTRL + MAYÚS + V", el texto se inserta en el búfer como si lo hubiera escrito y, por lo tanto, se somete a sangría / formateo automático.

Si no puede usar "+p o "*p – trabajando sobre SSH sin reenvío X o Vim construido sin soporte para portapapeles – la opción de paste deshabilita la sangría automática y un montón de otras opciones muy útiles para que su texto escrito no esté ya escrito.

Como se indica en :help 'paste' , las opciones tienen efectos secundarios potencialmente muy graves, por lo que es importante deshabilitarlas inmediatamente después de pegar el texto:

:set paste
(paste)
:set nopaste

Ese baile es obviamente un dolor en el trasero, por lo que hay otra opción que te permite definir un atajo especial para alternar entre paste :

set pastetoggle=<F12>

Eso reduce ligeramente el dolor:

<F12>
(paste)
<F12>

Pero sigue siendo un dolor.

Si puede, se recomienda instalar un Vim adecuado con soporte para portapapeles para que pueda usar "*p o "+p (dependiendo de cómo haya copiado el texto) para pegar el texto de la manera correcta .

  • En Mac OS X: instale MacVim,
  • en sistemas basados ​​en Debian: instale el paquete vim-gnome o vim-gtk,
  • en CentOS: instale el paquete mejorado vim.

Referencia:

:help p
:help y
:help registers
:help 'paste'
:help 'pastetoggle'

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım