2011-01-20 13 views
7

So che Vim ha un supporto sofisticato per i tag, ma non riesco a farli funzionare con JavaScript e TCL.Utilizzo dei tag in Vim

Sto utilizzando Vim 7.2.330 sotto Ubuntu Lucid, un'installazione standard di Vim e l'installazione standard di CTag esuberante.

desidero mantenere i miei tag in un file chiamato ~/.vimtags/tags

Ho incluso il file tag nel mio file vimrc set tags+=$HOME."/vimtags/tags".

ho eseguire il seguente comando dalla directory di codice di base:

ctags-exuberant -f ~/.vimtags/tags -h ".js" --totals=yes --tag-relative=yes --fields=+akst -R 

Ho anche quanto segue nel mio file .ctags - ho visto un articolo da qualche parte online che ha detto che si dovrebbe aggiungere questi per renderlo compatibile con JavaScript moderno.

--langdef=js 
--langmap=js:.js 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\{/\1/,object/ 
--regex-js=/([A-Za-z0-9._$()]+)[ \t]*[:=][ \t]*function[ \t]*\(/\1/,function/ 
--regex-js=/function[ \t]+([A-Za-z0-9._$]+)[ \t]*\(([^)])\)/\1/,function/ 
--regex-js=/([A-Za-z0-9._$]+)[ \t]*[:=][ \t]*\[/\1/,array/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^"]'[^']*/\1/,string/ 
--regex-js=/([^= ]+)[ \t]*=[ \t]*[^']"[^"]*/\1/,string/ 

Quando carico Vim, il file di tag viene caricato definitivamente. A set tags? mostra che il file di tag è stato incluso.

Tuttavia, ogni volta che I CTRL-] su una parola chiave, si dice sempre che non ci sono tag.

Si prega di condividere come si configurano i tag Vim con JavaScript e anche mostrare come si utilizza il sistema di tag? Sembra essere una grande caratteristica di Vim, se solo potessi farlo funzionare.

+0

Come hai risolto questo? Sembra che almeno un paio di persone stiano cercando una risposta (2 preferiti) ma la risposta accettata non sembra essere la soluzione al tuo problema. – intuited

risposta

3

Tuttavia, ogni volta che si CTRL-] su una parola chiave, si dice sempre che non ci sono tag.

tag non sono tenuti a lavorare su parole chiave, lavorano sui simboli che avete definito (funzioni, variabili, costanti, ecc) nei file indicizzati. Quindi se stai provando con una parola chiave Javascript non funzionerà. Non funzionerà nemmeno su una funzione di una libreria, se non hai incluso la libreria JS nel tuo file di tag (usando ctags -a per esempio).

Se vuoi essere sicuro di cosa è stato indicizzato e di cosa hai accesso con <C-]>, puoi semplicemente aprire il tuo file "tag" e vedere cosa c'è dentro.

:e ~/.vimtags/tags

Si dovrebbe vedere un'intestazione con informazioni relative al formato di file di tag, seguito da un elenco di tag, che includono il nome del tag seguito da un percorso di file, un numero di riga, e un carattere che identifica il tipo di tag.

Se ha del contenuto, dovrebbe funzionare per i simboli elencati.

Per quanto riguarda la configurazione del ctag, a mio parere sembra a posto.

+0

Con parole chiave intendo variabili, funzioni ... ecc. Ma non riesco ancora a farlo funzionare. Sono riuscito a trovare i tag su una o due variabili, ma ci dovrebbe essere molto di più ... – mrwooster

+0

@mrwooster: Ok, sospettavo che la parola chiave fosse usata in senso confuso. Se apri il tuo file di tag, puoi identificare il tipo di tag che è incluso e il tipo di tag che sembra mancante. Puoi tracciare questo modo se si tratta di un problema di percorso (alcuni dei tuoi file sono ignorati) o di un problema di regexp (alcune funzioni o dichiarazioni sono ignorate), ecc. –

+3

@mrwooster: se sei finalmente riuscito a far funzionare i tag nella tua configurazione , puoi dirci cosa c'è che non va? Potrebbe giovare alla persona successiva con lo stesso tipo di problema. –

2

C'è un modo molto ordinato e facile da raggiungere JavaScript browsing codice sorgente/tag-listing in Vim, utilizzando DoctorJS di Mozilla (precedentemente noto come jsctags).

See my answer for this question for more info.

Divertiti.:)