gpt4 book ai didi

bash - Vim 在交互模式下无法识别别名?

转载 作者:行者123 更新时间:2023-11-29 08:44:27 25 4
gpt4 key购买 nike

this 相同的问题,但是那里的解决方案不起作用。

我在 ~/.vimrc 中设置了这些变量:

set shellcmdflag=-ic
set shell=/bin/bash\ -i

我的 ~/.bash_aliases 中有一个别名:

rgr() { if [ ! -z "$2" ]; then grep -rI --exclude=\*.svn\* "$1" * --include=$2 ; else grep -rI --exclude=*svn* "$1" * ; fi ; }

从命令行执行时有效,但是当我尝试使用 :!rgr test 从 Vim 调用它时,我收到一条错误消息并且 Vim 退出:

bash: rgr: command not found

[4]+ Stopped vi ~/somefile

如果我禁用交互模式,我只会收到“找不到命令”的消息,而 Vim 不会退出。

如何让 Vim 识别我的别名?我已经在 OS X 和 Ubuntu 上重现了这种行为。

最佳答案

如果你想要非交互式 shell(默认)但扩展 bash 别名,请将你的别名定义放在一个文件中,例如.bash_aliases 并在此文件中显式启用别名扩展:

shopt -s expand_aliases
alias la='ls -la'

然后将其添加到您的 .vimrc 中,这样每次您从 vim 中运行 shell 命令时,实际上都会读取别名文件:

let $BASH_ENV = "~/.bash_aliases"

关于bash - Vim 在交互模式下无法识别别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com