vim icon indicating copy to clipboard operation
vim copied to clipboard

E259:not find 'xxx'

Open xiaoholmes opened this issue 6 years ago • 16 comments

你好: 麻烦问下我执行命令GscopeFind s 'xxx' ,去搜索某个函数xxx定义时,显示E259: not find 'xxx',请问这个咋解决呢?

xiaoholmes avatar Mar 18 '19 08:03 xiaoholmes

你使用 gentutags 自动生成 gtags 数据库了没?

skywind3000 avatar Mar 18 '19 08:03 skywind3000

嗯,在~/.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

xiaoholmes avatar Mar 18 '19 09:03 xiaoholmes

打开调试message,发现启动vim后有如下错误: gtags/script/pygments_parser.py", line 27, in gutentags: [job output]: ' import pygments.lexers'
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'

xiaoholmes avatar Mar 18 '19 09:03 xiaoholmes

这个错误很明显了,怎么处理不用我说了吧。。。

skywind3000 avatar Mar 18 '19 11:03 skywind3000

这个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

xiaoholmes avatar Mar 18 '19 11:03 xiaoholmes

你自己的 gtags 版本有问题吧。

skywind3000 avatar Mar 18 '19 11:03 skywind3000

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.

xiaoholmes avatar Mar 18 '19 12:03 xiaoholmes

那你用相同的 $GTAGSLABEL$GTAGSCONF 环境变量和启动参数,命令行下调用下 gtags 看看呗。

skywind3000 avatar Mar 18 '19 12:03 skywind3000

在当前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 main() File "~/usr/share/gtags/script/pygments_parser.py", line 259, in main handle_requests(langmap, parser_options) File "~/usr/share/gtags/script/pygments_parser.py", line 227, in handle_requests print(typ, tag, lnum, path, image) IOError: [Errno 32] Broken pipe

xiaoholmes avatar Mar 18 '19 13:03 xiaoholmes

那你要检查你的 gtags 了,先排除 pygments 问题,尝试把 $GTAGSLABEL 换成 native ,然后测试原生支持的 6 种语言正常不。

skywind3000 avatar Mar 18 '19 13:03 skywind3000

将$GTAGSLABEL 换成 native,可以正常生成GPATH、GRTAGS和GTAGS。如果将$GTAGSLABEL设置为native-pygments,就会出现上面的错误,无法生成正确的GPATH、GRTAGS和GTAGS

xiaoholmes avatar Mar 18 '19 13:03 xiaoholmes

那你自己解决吧,这个问题不再我插件范围内。

skywind3000 avatar Mar 18 '19 13:03 skywind3000

同遇到了这个报错,message里只有一条:(1 / 1): [cscope g: definition of "print_state"]。

ihei avatar Jul 06 '19 13:07 ihei

<Leader>cs查引用没问题,cg查定义就永远是E259:not find 'xxx'

ihei avatar Jul 06 '19 14:07 ihei

将$GTAGSLABEL 换成 native,可以正常生成GPATH、GRTAGS和GTAGS。如果将$GTAGSLABEL设置为native-pygments,就会出现上面的错误,无法生成正确的GPATH、GRTAGS和GTAGS 我也是这个现象, 用的是自己编译的python3.8.13(在centos7), 不知道你是怎么解决的?

zhuzhzh avatar Apr 21 '22 02:04 zhuzhzh

将$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文件

zhuzhzh avatar Apr 21 '22 03:04 zhuzhzh