Tengo mis proyectos en la carpeta/srv/http/dev. Me genera archivos ctags para un proyecto:VIM establecer ctags en .vimrc
$ ctags -R --languages=php .
Ahora establecer la ruta ctags:
:set tags=/srv/http/dev/proj/tags
y está funcionando bien.
Pero tengo muchos proyectos en dev/folder. ¿Cómo puedo establecer ctags en el archivo .vimrc? set tags=tags
no funciona correctamente.
Y me gustaría generar archivos de etiquetas presionando la tecla de acceso directo en la carpeta seleccionada de NERDTree. Probé:
nmap <silent> <F4>
\ :!ctags -R
\ --languages=php .<CR>
Pero crea fichero de etiquetas en la carpeta de inicio y muestra advertencias sobre la carpeta de inicio de exploración ..
EDIT: Como @Alexandru Plugaru aconsejó que debería utilizar g: NERDTreeFileNode.GetSelected () función.
Solo soy usuario novato de vim, entonces tengo una pregunta más. He añadido en mi archivo .vimrc:
function createTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str
exec ':!ctags -R --languages=php ' . curNodePath
endfunction
nmap <silent> <F4> :execute createTags()<CR>
Pero presionando F4 veo:
E117: Unknown function: createTags
E15: Invalid expression: createTags
EDIT 2: Gracias a @Alexandru Plugaru Tengo esto:
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>
¡Y funciona! Al presionar F4 obtengo el archivo de etiquetas en la carpeta del proyecto.
try: call createTags() también intenta nombrar la función con una letra mayúscula. –