Vsvim: Problemas de formato de Razor con: w

Creado en 9 abr. 2014  ·  5Comentarios  ·  Fuente: VsVim/VsVim

He notado esto principalmente en archivos de plantilla de afeitar, (específicamente archivos .cshtml, pero una o dos veces en html simple) pero al usar: w para guardar, el formateador intenta formatear y las líneas se marcarán como no guardadas. Ctrl + s funciona correctamente. Los intentos repetidos en: w ejecutarán el formateador, pero aún así no se guardarán correctamente.

Es especialmente malo con las declaraciones de Razor if, o cualquier cosa que requiera llaves.

Estoy ejecutando Visual Studio 2013 Update 2 RC, pero esto ha sido un problema desde antes de esa instalación. Windows 7 x64, si eso importa.

Complementos instalados:
Productividad Power Tools 2013 (el formato al guardar está desactivado)
Web Essentials 2013

Esta es la muestra de código que me llevó a presentar el error:
shot_140409_120037

bug visual studio integration

Comentario más útil

Estoy en MacOS y VSVim no me permitirá presionar <Enter> para completar el comando. Me permite ingresar al modo de comando presionando : . Una vez que escribo un comando y presiono <Enter> , presiona <Enter> como si estuviera en modo de inserción , colocándome en una nueva línea mientras me mantiene en modo de comando. Si presiono la tecla de retroceso, comenzará a eliminar los caracteres que escribí en el comando. Entonces, parece que <Enter> en modo de comando en archivos .cshtml está actuando como si estuviera en modo de inserción y no guarda el archivo ni finaliza ningún comando después de presionar <Enter> . Otra rareza es que si escribe :W con una 'W' mayúscula, le permitirá presionar <Enter> para salir del modo de comando y no tener el problema de pasar a una nueva línea como si estaba en modo de inserción pero el comando no se ejecuta. Este es el caso si se incluye cualquier letra mayúscula en el comando.

Además, mientras estoy aquí, VSVim no funciona en absoluto en archivos XML.

Todos 5 comentarios

¡Gracias por presentar el problema!

¿Puede aclarar un punto? ¿La operación :w guarda el estado del archivo antes del formato o no lo guarda en absoluto? Tengo curiosidad por el contenido en el disco frente al indicador de margen, ya que están algo separados e indicarían diferentes problemas

No pensé en comprobar esto antes.

Parece que cuando se golpea: w, lo guardará en el disco y luego ejecutará el formateador. Abrir el archivo en texto sublime muestra los cambios de texto, pero no los cambios de formato que a veces intentará.

Vine a informar de esto y una búsqueda superficial reveló este problema.

Esto suena un poco a lo que estoy observando. Cuando trato de :w para guardar un archivo Razor (cshtml) y presiono Enter para ejecutar el comando (desde una línea vacía), parece estar guardando el archivo y luego insertando 4 espacios (es decir, como si fuera una pestaña se había insertado y convertido a espacios). Noto el cambio típicamente en Mercurial diff cuando encuentro un espacio en blanco al final de la línea. Me acabo de dar cuenta de que no era yo quien estaba escribiendo el carácter incorrecto en este diseño de teclado de PoS, sino que parece que Visual Studio y / o VsVim están insertando el espacio cuando escribo :w<Enter> ...

Estoy en MacOS y VSVim no me permitirá presionar <Enter> para completar el comando. Me permite ingresar al modo de comando presionando : . Una vez que escribo un comando y presiono <Enter> , presiona <Enter> como si estuviera en modo de inserción , colocándome en una nueva línea mientras me mantiene en modo de comando. Si presiono la tecla de retroceso, comenzará a eliminar los caracteres que escribí en el comando. Entonces, parece que <Enter> en modo de comando en archivos .cshtml está actuando como si estuviera en modo de inserción y no guarda el archivo ni finaliza ningún comando después de presionar <Enter> . Otra rareza es que si escribe :W con una 'W' mayúscula, le permitirá presionar <Enter> para salir del modo de comando y no tener el problema de pasar a una nueva línea como si estaba en modo de inserción pero el comando no se ejecuta. Este es el caso si se incluye cualquier letra mayúscula en el comando.

Además, mientras estoy aquí, VSVim no funciona en absoluto en archivos XML.

¿Fue útil esta página
0 / 5 - 0 calificaciones