Hay un tipo de finalización que no figura en los archivos de ayuda de vim (en particular: insert.txt), pero que instintivamente siento la necesidad con bastante frecuencia. Digamos que tengo las palabras "Awesome" y "SuperCrazyAwesome" en mi archivo. Encuentro una instancia de Awesome que realmente debería ser SuperCrazyAwesome, así que salto al comienzo de la palabra, ingrese el modo de inserción, y luego debo escribir "SuperCrazy".finalización interna de código en vim
Siento que debería ser capaz de escribir "S", crear "SCrazy", y luego simplemente presionar una tecla de acceso rápido o dos para que encuentre lo que está a la izquierda del cursor ("S"), lo que es right ("Crazy"), regebre esto contra todas las palabras en el archivo ("/ S \ w * Crazy /"), y bríndeme un menú emergente de opciones de finalización, o simplemente reemplace si solo hay una coincidencia.
Me gustaría utilizar el sistema de finalización real para esto. Existe una finalización "definida por el usuario" que utiliza una función y tiene un buen ejemplo en las ayudas para el reemplazo de una lista dada. Sin embargo, parece que no puedo rastrear muchos detalles que necesitaría para que esto suceda, incluyendo:
- ¿Cómo obtengo una lista de todas las palabras en el archivo de una función vim?
- ¿Puedo hacer una lista de palabras de todos los buffers (con nombres de archivo), como lo hace vim?
- ¿Cómo puedo, en modo insertar, obtener el texto en la palabra antes/después del cursor?
- ¿Se puede completar la palabra completa, y no solo hasta el cursor?
He estado en esto por un par de horas. Sigo llegando a callejones sin salida, como this one, que me introdujo a \% # para que coincida con la posición del cursor, que no parece funcionar para mí. Por ejemplo, una búsqueda de \ w * \% # solo devuelve el primer carácter de la palabra en la que estoy, independientemente de dónde esté. El \% # no parece anclarse.
No es estrictamente relevante, pero puede obtener algunas sugerencias de [esto] (http://stackoverflow.com/questions/6548541/camelcase-expansion-in-vim-like-intellij-idea/6550628#6550628) answer. Hay funciones de ejemplo para generar una lista de palabras del archivo actual y una función de finalización personalizada. Trataré de publicar una respuesta más tarde hoy. –
Tu enlace parece interesante y rico en datos. Voy a excavar a través de eso. Gracias por tu ayuda. –