2009-06-28 10 views
9

sé que puedo conseguir la terminación de palabras a través CTRL+N & CTRL+P y código de terminación a través omnifunc con CTRL+XCTRL+O. También probé Supertab (muy bien), porque estoy acostumbrado a TAB-finalización. Eso funcionó bien. Me gustaría ver posibles coincidencias mientras estoy escribiendo, así que también intenté autocomplpop.vim, pero eso es exactamente lo que hago.Palabra/Código de finalización en VIM

Lo que me gusta llevar a cabo, sin embargo, sería una combinación de ambos, junto con un pequeño giro: Me gustaría ver sugerencias pop-up mientras se escribe (al igual que con autocompop) pero cuando se utiliza TABla palabra debería ser ampliado única a la mayor coincidencia común:

foo bar testor booze test baz teter 
te<TAB> 

después de escribir te en la segunda línea, la ventana emergente debería sugerir test, teter y testor.

Cuando presiono TAB, no debería hacer nada, porque no hay más puntos en común que te. Después me escribió un adicional s y pulse TAB, se debe ampliar a testest (porque es el terreno común más pequeño) y después de un segundo testorTAB.

Editar: Trato de ser más clara ...

  • te<TAB>
    • no debe hacer nada porque "nosotros" no sabemos si una 't' (te t er) o una 's' (te s t, te s tor).
  • tes<TAB>
    • debería ampliar a test (debido a que funcione para ambos - prueba y testor - Teter y ya no es una coincidencia posible).
  • test<TAB>
    • debería ampliar a testor (sólo posible coincidencia).

Bueno, las sugerencias de ventanas emergentes tiene solo bono, pero realmente me encantaría ver el comportamiento TAB. Espero no llegar a lo esotérico aquí y puedes ayudarme con algunos scripts o complementos para domesticar a VIM para que haga eso.

+0

¿No es "prueba" una posible coincidencia para "prueba "? Así es como lo trata Bash ... (Aparte de ese tercer caso, tus ejemplos reflejan las reglas de finalización de bash ...) – Stobor

Respuesta

6
:set completeopt=longest,menu,preview 

tal vez?

(no estoy seguro de si su estado de

"cuando se presiona TAB, es preciso hacer nada, porque no hay ninguna planta más común de lo que te"

conflictos con su tarde declaración

"a testor después de un segundo TAB."

Me parece que no hay más terreno común que "prueba" en ese punto ... A menos que quiera decir que la primera pestaña va al campo común más largo, y luego las pestañas subsecuentes pasan por las otras coincidencias, en cuyo caso estoy después de lo que tengo arriba ...)

+0

Si utilizo ': set completeopt = longer, menu, preview' y presiono tab después de' te' it get's completed a 'testor' Eso no es lo que me gustaría lograr. – Brutus

+0

Alguien en superusuario tenía una pregunta similar (http://superuser.com/questions/117490/vim-autocompletion-making-xu-expand-to-longest-match) y decían que SuperTab estaba jugando más tiempo. ¿Intentó deshabilitar supertab? – idbrii

+0

: set completeopt = más largo, el menú es lo que quiere. – qed

Cuestiones relacionadas