Mac上ggtags-find-tag-dwim失败问题

公司用的windows emacs,在官网上下载了编译好的gnu global,配置好环境变量后,用的很好。

回到家做整理的时候,直接搞到第二天4点,洗完澡后不死心地在emacs china上发了求助帖,才去睡的觉。早上去到公司的时候,大牛已经回复我了,威武。昨天回家整个人都是懵的,也没打开电脑验证,今天验证完来写总结了。

下面是求助帖。

https://emacs-china.org/t/mac-emacs-ggtags-zsh-command-not-found-global/16805/3

大牛贴的是emacs推荐配置purcell的解决方法。

我没有很仔细地看……

Purcell提供了一个插件exec-path-from-shell。

在我折腾到4点时,有3个现象:

1.iterm2[A]是可以运行gtags和global的

2.emacs,M-x shell[B]里,也是可以的,不过这两个命令tab不出来

3.[C]使能ggtags-mode后,执行ggtags-find-tag-dwim,报错zsh cannot find global,根据贴出的命令,在1和2的命令行也都是有输出的

这个是我基本就确定是环境变量的问题,要配置的是emacs shell的环境变量,还不是我M-x shell出来的那个。

github的说明是,OS X经常会出现这个问题,即[C]没有很好的继承环境变量。

如果iterm2打开emacs的话,估计继承没问题,但我没有验证。

[C]可以通过M-x getenv SHELL查看,我得到的是zsh,这种情况,可以通过插件exec-path-from-shell解决。

因为我最近在鼓捣自己的el文件,所以我尝试了Usage的配置,一个结果是,我的M得通过Esc敲,这点和iterm2打开emacs一样。

我是M-x exec-path-from-shell-initialize,这样再去执行ggtags-find-tag-dwim,得到了正确输出。

上一篇:我的emacs学习之路


下一篇:emacs 相关