2

gvimを常に別のウィンドウで開き、コマンドプロンプトをすぐに返すようにします。言い換えれば、私は欲しい

gvim filename

と同じになる

gvim filename &

エイリアスを使ってこれを実行できるはずです。エイリアス用の特別なワイルドカード文字はありますか?何かのようなもの:

alias gvim="gvim <wildcard> &"

「ワイルドカード」は、コマンドラインでgvimの後に続くテキストに置き換えられます。

私も試しました:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" "&" ;
}

しかし、それはgvimを開くだけで、私が望むようにプロンプ​​トを返しません。

誰かが私を正しい方向に向けることができれば、.bashrcがどのように機能するかについての私の理解が大幅に向上します。

ありがとう!

-デレク

更新:&と最後のセミコロンの周りの引用符を取り除くことで機能するようになりました:

function gvim() 
{ 
    "/cygdrive/c/program files (x86)/vim/vim72/gvim.exe" "$@" &
}
4

4 に答える 4

5

最後はほぼ正しいです。何が問題なのかというと、plain&シェルにバックグラウンドでプロセスを実行するように指示し、 gvimコマンドライン"&"に引数を追加します(つまり、gvimにという名前のファイルを開くように指示します)。ここで引用符を使用することにより、シェルに特別に扱わないように指示するだけで、gvimはシェルの仕事をする理由がありません。&&

于 2012-11-07T04:23:28.093 に答える
0

私がしているのは、gvim を呼び出す小さな bash スクリプトとそのエイリアスを用意することです。

==> alias vi
alias vi='~/include/bin/dvim'

==> cat ~/include/bin/dvim
#!/bin/bash.exe

/cygdrive/c/Program\ Files/Vim/vim73/gvim.exe $1 &
于 2012-11-07T05:20:19.213 に答える
0

エイリアスを使用する代わりに、シェル関数を使用します。一般的には同じように機能し、さらに多くのオプションを利用できます。

function gvim() {
 gvim.bat `cygpath -w $*` &
}

更新 また、「.bash_functions」ファイルから関数を自動的にロードするためのデフォルトの.bashrc(とにかく私のボックス上)にはいくつかのフックがあります。コメントを外すだけです(私にとっては約117行目):

# Functions
#
# Some people use a different file for functions
if [ -f "${HOME}/.bash_functions" ]; then
  source "${HOME}/.bash_functions"
fi

次に、関数定義を .bash_functions に追加して、bash シェルの起動時に自動ロードされるようにします。

Update 2では、UNIX 形式でフル パスを処理するために cygpath への呼び出しが追加されました。

于 2012-11-07T01:53:30.370 に答える
0

.bashrc について最初に理解しておくべきことは、おそらくシェルの起動時 (cygwin の場合はコマンド ウィンドウを開いたとき) にのみ読み取られるということです。コマンドウィンドウを再起動しているかどうか、または何を再起動しているかは、投稿からは明らかではありません。

エイリアス/関数を.bashrcに入れずに実験して、何が機能するかを調べることができます。コマンドラインにエイリアスまたは関数定義を直接入力して、それらを実行してみてください。

あなたが提供した機能の問題は、&内側に二重引用符を入れることだと思います。引用符を外すと、うまくいくはずです。

于 2012-11-07T03:06:01.373 に答える