我希望gvim始终在单独的窗口中打开并立即返回命令提示符。换句话说,我想要
gvim filename
与
相同gvim filename &
似乎我应该能够用别名来做这件事。别名是否有特殊的通配符?类似的东西:
alias gvim="gvim <wildcard> &"
其中“wildcard”将替换为命令行上gvim之后的任何文本。
我也尝试过:
function gvim()
{
"/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" "&" ;
}
但它只打开gvim并且不会像我想要的那样返回提示符。
如果有人能指出我正确的方向,那么这将大大提高我对.bashrc如何运作的理解。
谢谢!
-Derek
更新:我通过摆脱&amp;周围的引号让它发挥作用。和最后的分号:
function gvim()
{
"/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" &
}
答案 0 :(得分:4)
最后几乎是正确的。有什么问题,普通&
告诉 shell 在后台运行进程,"&"
为 gvim 命令行添加参数(即指令) gvim打开名为&
的文件。在这里使用引号你只是指示shell不要特别对待&
,而gvim没有理由做shell的工作。
答案 1 :(得分:0)
而不是使用别名,使用shell函数。它的工作原理相同,您可以选择更多选项:
function gvim() {
gvim.bat `cygpath -w $*` &
}
<强>更新强> 此外,在默认的.bashrc(在我的盒子上)中有一些钩子可以自动加载“.bash_functions”文件中的函数,你只需要取消注释它(关于第117行):
# Functions
#
# Some people use a different file for functions
if [ -f "${HOME}/.bash_functions" ]; then
source "${HOME}/.bash_functions"
fi
然后将函数定义添加到.bash_functions,以便在启动bash shell时自动加载它。
更新2 添加了对cygpath的调用以处理unix形式的完整路径
答案 2 :(得分:0)
关于.bashrc的第一件事可能是它只在shell启动时被读取 - 在cygwin的情况下,当你打开命令窗口时。从您的帖子中不清楚您是否正在重新启动命令窗口,或者是什么。
您可以尝试使用别名/函数而不将它们放在.bashrc中,只是为了找出有效的方法。只需在命令行上直接输入别名或函数定义,然后尝试运行它们。
我认为您提供的功能的问题是您将&
置于双引号内。摘下引号,它应该可以工作。
答案 3 :(得分:0)
我所做的是有一个小的bash脚本,我将其命名为gvim并使用别名。
==> alias vi
alias vi='~/include/bin/dvim'
==> cat ~/include/bin/dvim
#!/bin/bash.exe
/cygdrive/c/Program\ Files/Vim/vim73/gvim.exe $1 &