我试图从vim生成ctags。我使用Exuberant ctags。
所以问题是当我从vim执行:!ctags
或:call system('ctags')
时它不起作用,因为它使用我的默认ctags而不是繁琐的ctags。
我在我的shell中遇到了类似的问题,我通过首先指定了旺盛的路径来克服了这个问题
像export PATH=/usr/bin/local/:$PATH
所以这是非常奇怪的部分
当我在vim中echo $PATH
显示正确的路径时。但当我做:call system('which ctags')
它向我显示/usr/bin/ctags
而不是/usr/bin/local/ctags
。
我无法理解发生了什么?
虽然我可以通过call system('/usr/bin/local/ctags')
解决这个问题,但我只是想知道那里是否有更好的东西。
编辑: 我使用OSX 10.9.3
:set shell?
- > shell=/bin/zsh
set shellcmdflag
- > shellcmdflag=-c
我在zshrc文件中将我的路径设置为export PATH="/usr/local/bin:usr/local:$PATH
答案 0 :(得分:2)
执行:!command
或:call system('command')
时,Vim会根据'shell'
的值以及:help 'shell'
下列出的一系列其他选项启动新的子shell。 'shellcmdflag'
选项很重要,因为它通常告诉你的shell如何启动(交互式或不是,是否登录),这通常会对*rc
文件的来源产生影响,因此如果看到你的环境变量或不。
请用以下信息更新您的问题:
:set shell?
:set shellcmdflag?
*rc
文件中您更改了PATH
?