I miei progetti sono nella cartella/srv/http/dev. I file generato ctags per un progetto:VIM set ctags in .vimrc
$ ctags -R --languages=php .
Ora ho impostato percorso ctags:
:set tags=/srv/http/dev/proj/tags
e che sta funzionando benissimo.
Ma ho molti progetti in dev/folder. Come posso impostare ctags nel file .vimrc? set tags=tags
non funziona correttamente.
E mi piacerebbe generare file di tag premendo hotkey sulla cartella NERDTree selezionata. Ho provato:
nmap <silent> <F4>
\ :!ctags -R
\ --languages=php .<CR>
Ma crea file di tag nella cartella home e mostra avvertimenti circa cartella home scansione ..
EDIT: Come @Alexandru Plugaru consigliato dovrei usare g: NERDTreeFileNode.GetSelected () funzione.
Sono solo un utente principiante, quindi ho ancora una domanda. Ho aggiunto nel mio file Vimrc:
function createTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str
exec ':!ctags -R --languages=php ' . curNodePath
endfunction
nmap <silent> <F4> :execute createTags()<CR>
Ma premendo F4 vedo:
E117: Unknown function: createTags
E15: Invalid expression: createTags
EDIT 2: Grazie a @Alexandru Plugaru ho ottenuto questo:
function CreateTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str()
exec ':!ctags -R --languages=php -f ' . curNodePath . '/tags ' . curNodePath
endfunction
nmap <silent> <F4> :call CreateTags()<CR>
E funziona! Premendo F4 ottengo file tag nella cartella del progetto.
provare: chiamare createTags() anche provare a denominare la funzione con una lettera maiuscola. –