ReSharper tiene una bonita función llamada "ampliar selección": presionando CTRL+W
(creo que es el valor predeterminado) repetidamente, selecciona más y más desde su ubicación actual de intercalación. Primero es una palabra, luego más y más palabras, una línea, un bloque interno y externo de líneas (por ejemplo un bloque if), luego una función, etc. ...¿Hay alguna forma de emular la función "extender selección" de ReSharper en Vim?
Básicamente, al presionar la combinación de teclas repetidamente, puede terminar seleccionando el archivo completo. Estoy seguro de que al menos algunos de ustedes estarán familiarizados con esto.
Acabo de empezar a aprender todas las complejidades de vim y no tengo suficiente experiencia para ver cómo algo así podría implementarse en Vim (aunque supongo que es posible). Entonces mi pregunta está dirigida a los gurús de Vim: ¿se puede hacer esto y cómo?
Actualización: un poco de una historia de fondo. He estado hablando con mi ex jefe sobre todos los beneficios de Vim, y él piensa que todo está bien. Su única pregunta/problema fue: ¿tiene "extensión de selección"? Mi pregunta hasta ahora ha sido no. Entonces, si alguien sabe la respuesta, finalmente ganaré una discusión: P (y tal vez cree un nuevo Vim convertido :-)
)
Es sorprendente cómo nadie respondiendo aquí reconoció la necesidad de un analizador (parcial) adecuado. Resharper implementa ovbiosamente esta (gran) característica sobre un modelo lógico del código: el código DOM. Esto es también lo que permite que las refactorizaciones funcionen en las selecciones realizadas. Sin un analizador apropiado, seleccionarías 'cosas' pero no las (sub) expresiones apropiadas. Esto último sería útil, pero no está soportado actualmente en Vim _Es decir. a menos que cuentes el soporte de Lisp: 'vabababo2k' es perfecto para lisp_ :) – sehe
@sehe: Estás, por supuesto, completamente en lo cierto. He estado pensando en este problema de vez en cuando desde que hice la pregunta aquí (¡parece que fue hace mucho tiempo!) y me di cuenta de que, incluso si de alguna manera logro crear esta característica, solo funcionará para un idioma específico o una familia de idiomas. Muy mal, ¿no? :) –
He estado reflexionando sobre esto yo también. Estaría contento con una solución al 90% (puedo hacer refactorizaciones bastante rápido en Vim manualmente por ahora). Sin embargo, un expansor de subexpresiones-selección-selección 'utilizable' es realmente mi función de sueño no.1. Estoy convencido de que es muy posible encontrar un analizador que sea DoTheRightThing para C#, Java, C++ y C; Los únicos casos de borde adhesivo que espero son C# contra C++ 0x lambdas. Así que probablemente los dejaré por un tiempo (y me aseguraré de que sean conectables). Todavía estoy decidiendo qué usar, ya que detelo el guión de vim. Me inclino por Python, pero estoy cansado de excluir las bases de usuarios – sehe