使Vim使用.bashrc中的别名

时间:2018-08-17 12:32:20

标签: bash vim

当我尝试使用:!从vim调用别名shell命令时,它说

bash: l: command not found

shell returned 127

l
alias l=ls
(来自我的.bashrc)

1 个答案:

答案 0 :(得分:1)

要解决此问题,您可以尝试命令vim :set shellcmdflag=-ic,该命令告诉它使用-i键来启动Shell以执行:!命令。 -i键表示交互式(您在终端中通常使用的外壳),而解决问题的方法是-i键强制bash使用您的别名读取.bashrc(可能是{{1 }} 如果你有一个)。但这可能不是您想要的,因为此解决方案会导致vim进入前台(使用'fg'进行调用)之类的怪异行为。

更合适的解决方案是将此行添加到您的.bashrc(.bash_aiases)中:

.bash_alises

然后,即使在非交互式shell中,所有别名也将正确扩展。

也将此添加到您的.vimrc中,以便每次您在vim中运行shell命令时都可以实际读取别名文件:

let $ BASH_ENV =“〜/ .bash_aliases”

原始答案:https://stackoverflow.com/a/19819036/6152931

Bash手册(解释交互式和非交互式Shell之间的区别):https://linux.die.net/man/1/bash

我发布此问题是因为我花了很长时间才找到合适的解决方案。