Vim 不使用 Bash 的别名

Vim 不使用 Bash 的别名

我正在尝试设置 Vim,以便可以直接从编辑器本身编译 C 代码:

.vimrc

let $BASH_ENV = "$HOME/.bashrc"

autocmd FileType c map <F6> :!gcc -o "%:p:r.out" "%:." <bar> more<CR>
autocmd FileType c map <F7> :!%:p:r.out <CR>

.bash_aliases

alias gcc="gcc -lm -ansi -Wall -g -O0 -Wwrite-strings -Wshadow -pedantic-errors -fstack-protector-all"

.bash_aliases源自.bashrc

当我使用 编译任何内容时F6gcc别名不会被使用。我怎样才能vim使用别名?

这是我的后续问题上一个问题

答案1

别名功能在非交互式 shell 中默认是禁用的。

将以下内容放入您的 .bash_aliases 文件中:

shopt -s expand_aliases

(您可能希望为从 触发的非交互式 shell 创建自定义文件vim。您的 .bashrc 文件中可能有许多您不希望发生的事情。)

答案2

大多数 shell 不会为非交互式 shell 提供 rc 文件(.shrc、.bashrc、.kshrc、.zshrc 等),并且 Vim 不会为 :! 命令调用交互式 shell。如果这样做,就会发生 Bad Things™。

我建议创建一个实际的 shell 脚本,然后从映射中调用它。(您也可以让您的 shell 别名调用该 shell 脚本。)

相关内容