我正在尝试设置 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
。
当我使用 编译任何内容时F6,gcc
别名不会被使用。我怎样才能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 脚本。)