vim
vim copied to clipboard
E259:not find 'xxx'
你好: 麻烦问下我执行命令GscopeFind s 'xxx' ,去搜索某个函数xxx定义时,显示E259: not find 'xxx',请问这个咋解决呢?
你使用 gentutags 自动生成 gtags 数据库了没?
嗯,在~/.cache/tags目录下面会自动生成了xxx.tags文件(大小不为0)以及xxx项目文件夹,在xxx文件夹中,自动生成GPATH、GRTAGS和GTAGS文件,不过奇怪的是这三个文件的大小为空。 我的.vimrc的配置如下: let g:gutentags_modules = ['ctags', 'gtags_cscope'] let g:gutentags_project_root = ['.git'] let g:gutentags_ctags_tagfile = '.tags' let s:vim_tags = expand('~/.cache/.tags') let g:gutentags_cache_dir = s:vim_tags let g:gutentags_file_list_command = 'find . -type f -name *.c -o -type f -name *.h' if !isdirectory(s:vim_tags) silent! call mkdir(s:vim_tags, 'p') endif let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extras=+q'] let g:gutentags_ctags_extra_args += ['--c++-kinds=+px'] let g:gutentags_ctags_extra_args += ['--c-kinds=+px'] let g:gutentags_ctags_extra_args += ['--output-format=e-ctags'] let g:gutentags_trace = 1
打开调试message,发现启动vim后有如下错误:
gtags/script/pygments_parser.py", line 27, in
gutentags: [job output]: 'ImportError: No module named pygments.lexers'
gutentags: [job output]: 'gtags: unexpected EOF.'
gutentags: [job output]: 'Locking tags file...'
gutentags: [job output]: 'Running ctags on whole project'
这个错误很明显了,怎么处理不用我说了吧。。。
这个error是解决了,是链接到另外一个项目的python了,现在指定使用/usr/bin/python,不报上面的这个error了。但是自动生成的GPATH、GRTAGS和GTAGS文件还是为空,搜索时候还是显示E259: not find 'xxx'。奇怪了,另外,调试信息的最后一个"unexpected type string:..."不知对这个有没有影响。 gutentags: [job output]: 'Unlocking tags file...' gutentags: [job output]: 'Done.' gutentags: Finished ctags job. gutentags: [job output]: 'gtags: unexpected type string: /share/locale/es/LC_MESSAGES/libc.mo ' gutentags: Finished gtags_cscope job. gutentags: gtags-cscope job failed, returned: 1
你自己的 gtags 版本有问题吧。
gtags版本应该没有问题吧,是6.6.3
~ » gtags --version
gtags (GNU GLOBAL) 6.6.3
Powered by Berkeley DB 1.85.
Copyright (c) 1996-2018 Tama Communications Corporation
License GPLv3+: GNU GPL version 3 or later http://www.gnu.org/licenses/gpl.html
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
那你用相同的 $GTAGSLABEL 和 $GTAGSCONF 环境变量和启动参数,命令行下调用下 gtags 看看呗。
在当前shell下面export $GTAGSLABEL 和 $GTAGSCONF 环境变量和启动参数后,执行gtags,打印以下消息(当前目录下生成的GPATH、GRTAGS和GTAGS文件为空):
gtags: unexpected type string: /share/locale/es/LC_MESSAGES/libc.mo
Traceback (most recent call last):
File "~/usr/share/gtags/script/pygments_parser.py", line 262, in
那你要检查你的 gtags 了,先排除 pygments 问题,尝试把 $GTAGSLABEL 换成 native ,然后测试原生支持的 6 种语言正常不。
将$GTAGSLABEL 换成 native,可以正常生成GPATH、GRTAGS和GTAGS。如果将$GTAGSLABEL设置为native-pygments,就会出现上面的错误,无法生成正确的GPATH、GRTAGS和GTAGS
那你自己解决吧,这个问题不再我插件范围内。
同遇到了这个报错,message里只有一条:(1 / 1): [cscope g: definition of "print_state"]。
<Leader>cs查引用没问题,cg查定义就永远是E259:not find 'xxx'
将$GTAGSLABEL 换成 native,可以正常生成GPATH、GRTAGS和GTAGS。如果将$GTAGSLABEL设置为native-pygments,就会出现上面的错误,无法生成正确的GPATH、GRTAGS和GTAGS 我也是这个现象, 用的是自己编译的python3.8.13(在centos7), 不知道你是怎么解决的?
将$GTAGSLABEL 换成 native,可以正常生成GPATH、GRTAGS和GTAGS。如果将$GTAGSLABEL设置为native-pygments,就会出现上面的错误,无法生成正确的GPATH、GRTAGS和GTAGS 我也是这个现象, 用的是自己编译的python3.8.13(在centos7), 不知道你是怎么解决的?
我找到我的问题啦,
我用的vim-plug,
Plug 'ludovicchabant/vim-gutentags', { 'for': ['cpp', 'c', 'python', 'verilog', 'systemverilog', 'go' ] }
所以一个目录里不全是c/c++文件时就不会生成tag文件