La sangría inteligente en vim (normalmente genial) es un desastre al pegar un fragmento de código
-
19-08-2019 - |
Pregunta
Supongo que otros editores son lo suficientemente inteligentes como para apagar esas cosas para pegarlas, pero cuando se usa vim en un terminal, no se puede distinguir entre pegar y escribir realmente.
¿Qué tipo de soluciones o soluciones tiene para esto?
Agregado: también hay una configuración que hace que los comentarios continúen automáticamente en la siguiente línea. La sangría al menos no cambia la semántica del código, pero la continuación automática de comentarios realmente arruina las cosas. Ahora que lo pienso, debería desactivarlo por completo. ¿Alguien sabe cómo se llama esa opción?
Solución
: establecer pegar es el camino a seguir, pero si olvida, como a menudo lo hago, entonces si está usando un idioma con {} como abrir / cerrar bloques, entonces haciendo un =% en el primer {o last} volverá a aplicar la sangría.
Otros consejos
: establecer pegar
agregue esto a su .vimrc y úselo con la tecla F2 para alternar el estado de pegado antes y después de agregar fragmentos de código:
set pastetoggle=<F2>
Otra forma de hacer esto, suponiendo que tenga el portapapeles de su sistema configurado correctamente es hacerlo
"*p
Esto se pegará desde el portapapeles del sistema.
Verifique su vim --version
. En OS X necesitarás + portapapeles
y en Linux + xterm_clipboard
, creo.
Si está en OS X, siempre puede brew instalar macvim
y usar mvim -v
en lugar del paquete Vim (no se compiló con + portapapeles
).