回答:
これはあなたの質問への回答ではありませんが、X *を実行している1つのワークステーションから別のワークステーションにsshしている場合、sshを使用してX転送を設定すれば、実際には gvim を使用できることを指摘すると役立つと思います。ウィンドウ情報はネットワーク経由で送信され、gvimはローカルで実行する場合と同様にポップアップします。
〜/ .ssh / configに以下を追加します
Host *
ForwardX11 yes
これで、gvimを実行できるようになります。
元のワークステーションがWindowsでXを実行していない場合、実際にはCygwinを使用してローカルでXサーバーを起動できます。セットアップが完了すると、X11転送を行うようにPuTTyなどの一般的なsshクライアントを構成できます。その後、gvimがネイティブのウィンドウ装飾ウィンドウのように表示されます。
不正ではあるが空ではないDISPLAY変数については賢いので、RunningXを使用したgaryjohnの回答が好きでした。
しかし..私はもっと良くしたいと思います。私はスクリーンセッションをよく使用します。自宅でスクリーンセッションを開始する場合があります。DISPLAYが定義されています。次に、他の場所からsshを実行しますが、DISPLAYはまだ定義されていて、実際に表示されます。ですから、「$ DISPLAY =」をエクスポートします。これは問題ありませんが、その答えはすでにチェックされており、最初に.bashrcを実行したときに有効なDISPLAY変数が見つかったため、EDITORは引き続きgvimに設定されます。
私は同様の問題の解決策を探してここに来ました、X-GUIマンページの閲覧にyelpを使用したかったのですが、Xを使用していないときは従来のmanコマンドに自動的にドロップダウンしました。
man () {
if RunningX
then
yelp "man:$@";
else
/usr/bin/man "$@";
fi
}
EDITOR問題の場合、次のようなことができると思います。
EDITOR=vim
vim () {
if RunningX
then
gvim "$@";
else
vim "$@";
fi
}
私はそれを長いストーリーなしで投稿しただけですが、テストしていません。私は自分をbash初心者だと思っています。私は「manコマンド」をテストしました、それはうまくいきます!私はエディターにemacsを使用していますが、それはXの独自のチェックを行います。gvimもインストールしていません。
if [[ $DISPLAY ]]
以下のためのダブルブラケット愛好家 ...