autocompletion – Ins-terminación de PALABRAS

Pregunta:

<Cp> y <Cn> permiten completar las palabras que se encuentran dentro del documento actual.

Estoy tomando algunas notas y escribiendo, digo {0,1}^n (E,D) muchas veces. Estas son PALABRAS constituidas por varias palabras.

¿Hay alguna forma de completar WORD con <Cp> y <Cn> (u otro comando de ins-completion relacionado)?

Respuesta:

Insertar finalización del modo con Ctrl-n

No sé si podría completar WORD fuera de escribir su propia función (como omnifunc). Sin embargo, si no le importa expandir lo que es una palabra para que coincida con sus caracteres, puede agregar esos caracteres a 'iskeyword'

Por ejemplo, mi 'iskeyword' tiene como valor predeterminado

iskeyword=@,48-57,_,192-255

Luego lo puse a eso más los caracteres adicionales arriba

:set iskeyword=@,48-57,_,192-255,{,},,,(,),^

Esto se suma { , } , , , ( , ) , y ^ a los caracteres que componen una palabra (además de lo que ya lo hicieron)

Después de eso, escribiendo { Ctrl-n se completa en {0,1}^n (en un archivo que contiene solo los dos ejemplos que dio)

Nota: Sería mejor hacer un :set iskeyword+= con solo las cosas adicionales, de la siguiente manera:

:set iskeyword+={,},,,(,),^

De esta manera, deja cualquier otra cosa que ya constituya una palabra clave agregando los nuevos caracteres a la configuración existente.

Ampliación con abreviaturas

Aunque no forma parte de la pregunta original, otra funcionalidad similar (ish) es usar la funcionalidad de abreviatura de nvi o Vim. A diferencia de la finalización de palabras clave, las abreviaturas no tienen que verse como el texto final. Además, a diferencia de la finalización de palabras clave, las abreviaturas se expanden automáticamente, en lugar de solo cuando las solicita. Dependiendo de su objetivo y uso, esto puede ahorrarle mucho escribir y le permitirá escribir mucho texto sin la interrupción de pedir que lo complete.

Las abreviaturas son buenas para un pequeño conjunto de palabras clave y cuando puede definirlas con anticipación (no se descubren en su texto como lo es la finalización de palabras).

La idea básica detrás de las abreviaturas es que asocias una PALABRA con algún otro texto, y cada vez que el editor detecta que escribiste esa PALABRA (es decir, el texto que escribiste está rodeado por un espacio en blanco, donde la acción de finalización es agregar el espacio en blanco después de la palabra clave o salir del modo de inserción), se reemplaza con ese otro texto.

Digamos que su archivo contiene {0,1}^n mucho y no hay otras variaciones. Escribir eso es un poco estirar el dedo, por lo que tal vez desee simplemente escribir 01n o myvalue y hacer que se expanda a {0,1}^n , pero solo cuando 01n o myvalue sea ​​una palabra en sí misma (es decir, si aparece dentro de otra palabra, no la cambie).

En nvi, puede hacer :abbrev 01n {0,1}^n . Puede hacer lo mismo en Vim, pero recomiendo usar :iabbrev 01n {0,1}^n para restringir la expansión al modo de inserción solamente.

Entonces, si tiene algo de texto (donde | representa el cursor)

We find that the value 01n|

Y luego presiona Esc o Espacio o Tabulador o mueve los cursores, el texto se reemplaza y tiene (ejemplo para usar el espacio)

We find that the value {0,1}^n |

y puede seguir escribiendo sin interrupciones.

Esto generalmente se usa para corregir automáticamente errores tipográficos comunes (por ejemplo, cambiar 'teh' por 'the') pero puede ser igualmente útil para su caso de uso, nuevamente asumiendo que no le importa configurar las asignaciones con anticipación.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım