首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将'gvim filename‘别名为'gvim filename &’

如何将'gvim filename‘别名为'gvim filename &’
EN

Stack Overflow用户
提问于 2012-11-07 09:46:36
回答 4查看 1.5K关注 0票数 2

我希望gvim总是在一个单独的窗口中打开,并立即返回命令提示符。换句话说,我想

代码语言:javascript
复制
gvim filename

与…相同

代码语言:javascript
复制
gvim filename &

看起来我应该可以用别名来做这件事。别名是否有特殊的通配符?类似于:

代码语言:javascript
复制
alias gvim="gvim <wildcard> &"

其中“通配符”将替换为命令行中gvim后面的任何文本。

我也试过了:

代码语言:javascript
复制
function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" "&" ;
}

但它只会打开gvim,并不会像我希望的那样返回提示。

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

谢谢!

-Derek

更新:我去掉了&两边的引号和末尾的分号,让它正常工作:

代码语言:javascript
复制
function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" &
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-07 12:23:28

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

票数 5
EN

Stack Overflow用户

发布于 2012-11-07 09:53:30

不使用别名,而是使用shell函数。它的工作原理大体上是一样的,而且你有更多的选项可供选择:

代码语言:javascript
复制
function gvim() {
 gvim.bat `cygpath -w $*` &
}

更新另外,在默认的.bashrc中有一些钩子(无论如何在我的盒子上)可以从".bash_functions“文件中自动加载函数,你只需要取消它的注释(对我来说是关于第117行):

代码语言:javascript
复制
# 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
EN

Stack Overflow用户

发布于 2012-11-07 11:06:01

关于.bashrc,首先要了解的可能是,只有在shell启动时才会读取它--对于cygwin,只有在打开命令窗口时才会读取。从你的帖子中不清楚你是否重新启动了你的命令窗口,或者是什么。

您可以在不将别名/函数放入.bashrc中的情况下对其进行试验,只是为了找出哪些是有效的。只需在命令行中直接输入别名或函数定义,然后尝试运行它们。

我认为您提供的函数的问题在于您将&放在双引号内。去掉引号,它应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13262139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档