是的,用consult-imenu拍平了,展示分类不多,拍平之后条目也就不多了,挺好用的。如果不拍平,还要多一次选择、回车。
citre-imenu拍平后,前面一大堆头文件,就想把这些过滤掉,从imenu本身没找到配置项,不知道咋操作了。
是的,用consult-imenu拍平了,展示分类不多,拍平之后条目也就不多了,挺好用的。如果不拍平,还要多一次选择、回车。
citre-imenu拍平后,前面一大堆头文件,就想把这些过滤掉,从imenu本身没找到配置项,不知道咋操作了。
我也用 consult,其实这个时候输入分类名过滤一下就好了。你说的选项倒是看上去也算有用,不过现在 Citre 有其他的开发工作要推进,暂时没空管这些需求
我试了一下 Windows 上确实不能用这个选项(顺便和阿里系流氓进程搏斗了一顿 ) 。添加了一个 citre-gtags-args
选项,可以改一下这个。
另外我觉得其实这个问题可能还是 Windows 的路径风格造成的,如果用 msys 之类的 shell,然后 GTAGSOBJDIRPREFIX 也设为类似 /d/cache/
这样的路径,是不是有可能解决呢
楼主不管我 ,自己下手,加个advice吧
(defun filter-imenu (imenu-alist)
(seq-filter (lambda (item) (member (car item) '("function" "class")))
imenu-alist))
(advice-add 'citre-imenu-create-index-function :filter-return #'filter-imenu)
我觉得这个可能得看看gtags是咋识别目录和查找目录的,估计要看看gtags的源码;gtags在cygwin中没有现成的,msys的版本不知道有没有; 不知道gtags在cygwin下编译方便不,估计链接使用cygwin的库应该可能解决;
– 用cygwin编译了一个版本,可以用了;环境变量不能设置相对路径,绝对路径是可以识别的。
楼主您好,我看了readme,但是没太明白一步步操作。想问几个问题。
我安装好 university-ctags后,我命令行下 ctags和readtags都是能找到的,但是我打开一个项目比如leveldb,在其中一个文件中运行 citre-create-tags-file
,然后按了3(我希望每个项目单独保存自己的tag),然后就报错了:
Searching for program: No such file or directory, readtags
我在emacs中安装了一个exec-path-from-shell搞定了这个问题
楼主你好
在 Tramp mode 中使用 Citre, Emacs 卡住。
我尝试关闭Citre然后再打开远程文件,可以打开,然后再启动Citre,仍然会卡住。
2021-07-04:支持了 TRAMP,只要在远程机器上安装了 readtags 就可以用。
我远程机器是安装了readtags。
请问有什么Debug的方法吗?
我直觉是 Citre 可能花了太久时间找 tags 文件。建议的方向:
先试试移除配置中的 (require 'citre-config)
或者 (add-hook 'find-file-hook #'citre-auto-enable-citre-mode)
之类的,再试一下。
如果有效,尝试分别在使用了 tags 的工程中,以及没有使用 tags 的工程中运行 (citre-tags-file-path)
,看看速度如何。
检查是否修改了 citre-project-root-function
的值,如果是的话,恢复默认值试试。
我现在先不使用 global-cache,看起来没问题了,可以工作
谢谢,我理解了,之后考虑下怎么修。
您好,我使用citre在本地没有问题,但是主要代码都在服务器,使用ctags没有问题,但运行到readtags时出现了错误。
message里的错误如下:
citre-core--get-lines: readtags exits 127
env: ‘readtags’: No such file or directory
是因为找不到readtags吗?
我在远程服务器上也安装了ctags,不过不是默认地址,我通过在.bashrc和.profile里添加的:
PATH=$PATH:~/software/ctags/bin/
在终端里测试没有问题……
看了一下,好像ctags也没有运行,所生成的tags文件中的信息如下:
!_TAG_PROC_CWD /home/zliang/backinference/ /dir in which ctags runs/;"
!_CITRE_CMD ctags|-o|%TAGSFILE%|--languages=py,sh|--kinds-all=*|--fields=*|--extras=*|-R /command line to generate this tags file/;"
没有加载这两个文件,加个软链接在 /usr/local/bin
吧
因为没有sudo权限才没有安装在默认地址的……
可以先用 executable-find
看一下是不是能找到 readtags
和 ctags
。另外可以定制一下 citre-ctags-program
和 citre-readtags-program
试试。
因为我自己没有远程机器,测试的时候都是对本地文件用 TRAMP,可能有没有注意到的问题,这个我也没什么好办法。。。之前有别的用户报告说可以在远程主机上正常使用的。
感谢回复!我过去尝试过citre-ctags-program这样重定义路径,然后发现不行,这次改成了绝对路径之后可以了!
这个支持不支持跳转到头文件(包括项目内的头文件或者系统头文件)
citre-lang-c.el
里面有写
When the cursor is on the header file in a "#include" directive, the
header file itself, and the references to that header file (if tagged) is
found as its definitions. References that uses paths can't be found.
Also, file names will be used for auto-completion.
我的还是提示找不到,不知道怎么回事
普通的符号都可以找的,但是头文件的话就提示
Can’t find definition. Update the tags file and search again? (y or n)
更新tags文件也不行