2010-07-01 6 views
5

In Vim 7, Ctrl-X Ctrl-O mostra un elenco di valori possibili, ma trovo questa sequenza di tasti per essere troppo lungo quando ho spesso uso la funzione di completamento automatico. Ad esempio, in un file HTML, mi piacerebbe vedere la lista automaticamente popup dopo aver digitato uno < seguito da una o due lettere. In un file CSS, mi piacerebbe vedere la lista dopo aver premuto il tasto ":". C'è un modo per impostare questo?Mostra Vim omnicomplet su alcuni caratteri invece di Ctrl-X Ctrl-O?

risposta

8

Per attivare l'omnicompletion digitando ":" è possibile utilizzare il seguente mapping.

imap : :<c-x><c-o> 

Lo svantaggio è che ogni volta che si preme ":" omnicompletion sarà essere attivata, anche quando si digita ":" nei commenti o in qualsiasi altro contesto in cui non si vuole omnicompletion.

ho mappato ctrl-spazio per omnicompletion attiva:

imap <c-space> <c-x><c-o> 

Questo mi dà la possibilità di attivare la omni ogni volta che ne ho bisogno.

+0

avrei dovuto essere d'accordo con Habi su questo. È meglio attivare in modo specifico l'omni-completamento quando ne hai bisogno piuttosto che farlo automaticamente. L'Omni-completamento dovrebbe essere uno strumento per aiutarti, non una stampella su cui ti affidi. – jamessan

+3

direi, basta limitare al tipo di file CSS (come l'unica volta che si digita: è quando si desidera che tali opzioni 'au FileType css imap:.: ' – sleepynate

+0

@sleepynate Grazie, questo è esattamente ciò che Volevo! – geoffeg

1

Un'altra alternativa che ho trovato più semplice è semplicemente premere la scheda due volte quando si desidera il completamento automatico e una volta per la scheda normale. Aggiungere la seguente riga al tuo ~/.vimrc

imap <tab><tab> <c-x><c-o>