【发布时间】:2012-09-24 07:52:16
【问题描述】:
我每天都在使用 python,需要对我的本地项目和在我的 virtualenv 中找到的每个 python 模块/鸡蛋都有一个索引
以下是我希望改进的半工作版本。目前我可以在重绘命令之前做一个或另一个。使用这种方法,我最终会在我处理的每个项目的根目录中创建一个 .ctags 文件,并且 vim 知道通过类名/方法名/等进行任何查找都变得快速而简单。
有没有办法将这 2 行 exe 组合成一行,但仍然只生成一个索引文件?
提前谢谢你
set tags=./.ctags,.ctags;
" re-index the ctags file
map <leader>ri :call RenewTagsFile()<cr>
" search through the indexed ctags file for any class/method/etc
map <leader>fs :FufTag<CR>
function! RenewTagsFile()
exe 'silent !ctags -Rf .ctags ' . system('python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"')''
exe 'silent !ctags -Rf .ctags --extra=+f --exclude=.git --languages=-javascript 2>/dev/null'
exe 'redraw!'
endfunction
更新
对于将来可能偶然发现这个问题的任何人,我都可以使用 -a 标志附加(因此更新标签文件功能看起来像这样)
function! RenewTagsFile()
exe 'silent !ctags -Rf .ctags ' . system('python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"')''
exe 'silent !ctags -a -Rf .ctags --extra=+f --exclude=.git --languages=-javascript 2>/dev/null'
exe 'redraw!'
endfunction
【问题讨论】: