2012-11-07 40 views
1

我希望gvim在一个单独的窗口中总是打开并立即返回命令提示符。换句话说,我想我如何将'gvim filename'别名改为'gvim filename''

gvim filename 

是一样

gvim filename & 

好像我应该能够用别名来做到这一点。是否有别名的特殊通配符?例如:

alias gvim="gvim <wildcard> &" 

其中“通配符”将被替换为gvim在命令行中出现的任何文本。

我也试过:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "[email protected]" "&" ; 
} 

,但只打开GVIM就像我希望它不会返回的提示。

如果有人能指出我正确的方向,这将大大提高我对.bashrc的工作原理的理解。

谢谢!

-Derek

更新:我得到了它通过摆脱&周围引号,并在最后的分号的工作:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "[email protected]" & 
} 

回答

4

最后几乎是正确的。什么是错的是普通&告诉在后台运行的进程和"&"加个参数GVIM命令行(即指示gvim作为打开名为&文件)。通过在这里使用引号,您只需指示shell不要特别对待&,并且gvim没有理由执行shell的工作。

+0

谢谢,我通过删除&里面的引号并删除了它来完成工作。现在它完美地工作。 – derekswanson08

+0

你能指教我为什么使用终止分号是一个语法错误,当我不在和号周围使用引号时,但是当我使用引号时可以吗? – derekswanson08

+0

@ derekswanson08你没有什么可以在这里终止的。命令已经由&&终止。 – ZyX

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形式

+0

我的答案取决于你已经回答“是”的GVIM安装问题,问,如果你想它来创建用于命令行访问的批处理文件... – Gus

0

首先要了解有关的.bashrc可能是,它仅被阅读完整的路径时,外壳启动 - 在Cygwin中的情况下,当你打开命令窗口。从你的文章中不清楚你是重新启动你的命令窗口还是什么。

您可以尝试别名/函数,而不必将它们放在.bashrc中,只是为了找出有效的方法。只需在命令行上直接输入别名或函数定义,然后尝试运行它们。

我认为你提供的功能的问题是你把&放在双引号内。摘下引号,它应该工作。

+0

可以在命令行上也可手动源文件。 '。 .bashrc'会为.bashrc('.'是'source'的别名)。 –

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 &