我的项目在 /srv/http/dev 文件夹中。我为一个项目生成了 ctags 文件:
$ ctags -R --languages=php .
现在我设置了 ctags 路径:
:set tags=/srv/http/dev/proj/tags
它很好地运转着。
但我有许多项目在dev/文件夹中。我该如何在.vimrc文件中设置ctags?set tags=tags
不能正常工作。
我想通过按下选定的NERDTree文件夹上的热键来生成标签文件。我尝试了:
nmap <silent> <F4>
\ :!ctags -R
\ --languages=php .<CR>
但是它会在主目录中创建标签文件并显示有关扫描主目录的警告。
编辑: 正如@Alexandru Plugaru建议的那样,我应该使用g:NERDTreeFileNode.GetSelected()函数。
我只是一个新手vim用户,所以我还有一个问题。 我在我的.vimrc文件中添加了:
function createTags()
let curNodePath = g:NERDTreeFileNode.GetSelected().path.str
exec ':!ctags -R --languages=php ' . curNodePath
endfunction
nmap <silent> <F4> :execute createTags()<CR>
但是按下 F4 我看到:
E117: Unknown function: createTags
E15: Invalid expression: createTags
编辑2: 感谢 @Alexandru Plugaru 我得到了这个答案:
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>
它起作用了!按下 F4 键,我就可以在项目文件夹中获得 tags 文件。