2012-11-07 41 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 &