En un terminal vim, pegar datos del portapapeles a menudo desordena la sangría del código. Solo sabía que si uso :set paste
la sangría no está rota. Sin embargo, después de pegar datos, ¿debería :set nopaste
volver a hacerlo ? ¿Qué pasa si no, qué problema viene?
19
Respuestas:
Como otros han escrito, no desea dejar el conjunto 'pegar'. Solo quería señalar que con un buen emulador de terminal y un compilado y configurado correctamente
vim
, no debería necesitar cambiar 'pegar'. Necesita un buen emulador de terminal, como xterm o GNOME Terminal, vim con la función X11 incluida y la opción 'mouse' establecida en 'a'. Luegovim
"sabrá" cuándo está pegando con el mouse y establecerá y deshabilitará efectivamente la opción 'pegar' para usted.Una forma de obtener un
vim
con la función X11 es ejecutargvim
con la-v
opción o crear un alias,Luego pon
en tu ~ / .vimrc.
fuente
Copy
estará atenuado o no estará visible a menos que se haya seleccionado algún texto. ¿Cómo selecciona el texto que se copiará?Esta publicación tiene mi respuesta favorita, https://coderwall.com/p/if9mda/automatically-set-paste-mode-in-vim-when-pasting-in-insert-mode
Básicamente, si comienza en modo Insertar y usa Ctrl + Shift + V o hace clic con el botón derecho en pegar con el mouse, Vim detecta que esto proviene de un terminal y establece automáticamente el modo pegar, luego lo desarma una vez hecho, para que no pierda las teclas reasignadas (que no puede funcionar en modo pegar porque está escribiendo datos sin procesar) y vuelve a un estado "sano" cuando se hace.
Por solo vim (pon tu .vimrc)
Si usa vim debajo de Tmux (todavía va en .vimrc)
fuente
let &t_SI .= "\<Esc>[?xxxxx"
líneas está detectando el atajo de pegar del teclado? ¿Funciona esto para Mac también dado el acceso directo diferente?Como sugirió romainl, la documentación explica que la configuración de la
'paste'
opción deshabilita varias otras opciones, y seguramente encontrará que, más temprano que tarde, le causará problemas. Por esta razón, existe la'pastetoggle'
opción. Ver:fuente
Si algo existe, debe tener su significado. Debería echar un buen vistazo a la documentación de vim que es muy útil.
Una vez que leas, es posible que quieras esto:
Espero que encuentres útil esta publicación :)
fuente
IIRC cuando pega en vim, esencialmente piensa que usted escribió todos esos caracteres usted mismo. Por lo tanto, si la sangría automática está activada, sangrará el contenido por usted, pero el texto pegado generalmente ya contiene sangría, por lo que la sangría se "desordena". Cambiar al modo pegar desactiva cosas como la sangría automática.
Si te gusta la sangría automática a medida que escribes, deberías volver a cambiarla a nopaste una vez que hayas terminado de pegar. Pruébelo y observe cómo debe hacer toda la sangría manualmente en modo pegar.
fuente