为什么我的vim不知道我的别名?

时间:2011-03-08 16:48:07

标签: vim alias

我使用了“alias ruby​​ = ruby​​1.9.1”,所以我可以用这个来执行我的ruby:

  

ruby​​ 123.rb

  

ruby​​1.9.1 123.rb

但在我的vim中,我使用:!ruby并获得 / bin / bash:ruby:命令未找到。

我必须使用:!ruby1.9.1

别名是如何工作的?为什么vim不知道呢?

3 个答案:

答案 0 :(得分:11)

当Vim启动进程时,它会进行系统调用。如果从shell启动它,它只从shell继承了环境变量。但它不会知道你的bash别名。

当您在Bash shell中输入命令行时,Bash别名只是一种方便。它们仅由Bash扩展。

如果您想要真正的别名,请将符号链接放在私有隐藏文件夹中,并将该文件夹添加到您的PATH中,或使用alternatives工具。

答案 1 :(得分:1)

你可以尝试

:set shellcmdflag+=i

将bass称为“交互式”,尽管这会为每个执行的shell命令提供恼人的消息。

答案 2 :(得分:0)

别名(与环境变量不同)不会被子shell继承。因此,如果您希望别名始终可用,则需要在.bashrc文件中设置它,因此shell的每个实例都将在启动时获取