vimrc – ¿Cómo evito que Vim elimine la sangría de las líneas vacías?

Pregunta:

Vim sigue desangrando las líneas que quiero mantener sangradas si no escribo nada en ellas … Daré un ejemplo, donde el | es el símbolo de intercalación.

  1. Caret tiene sangría y presiono enter

     if expression: print("hello world") |
  2. Caret tiene sangría en la siguiente línea, y ahora presiono la flecha hacia arriba

     if expression: print("hello world") |
  3. Ahora el signo de intercalación ya no tiene sangría, ¿qué pasó?

     if expression: print("hello world") |

Entonces, ¿cómo mantengo la sangría?

Respuesta:

Lo que está viendo es el comportamiento normal de 'autoindent' que utiliza el complemento de sangría de Python. Ver :help 'ai' . Puede ver lo que sucede con la sangría a medida que escribe ejecutando

:set list

No hay forma que yo sepa de hacer que Vim conserve automáticamente su sangría en el caso que describe. Establecer la bandera I de 'cpoptions' no ayuda.

Puede solucionar este problema utilizando la siguiente asignación.

:inoremap <cr> <space><bs><cr>

Eso hará que Vim deje una sangría de espacios cuando escriba Enter en una línea vacía. No recomiendo hacer eso, ya que dejará su archivo desordenado con espacios innecesarios hasta que los elimine con algo como

:%s/\s\+$//

antes de guardar el archivo, pero puede que le resulte menos molesto que el comportamiento de sangría normal.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım