回答:
EDITOR
エディタは、(旧ような「高度な」、端末の機能を使用せずに動作することができる必要がありますed
かex
のモードvi
)。テレタイプ端末で使用されました。
VISUAL
エディタは、としてフルスクリーンエディタことができvi
たりemacs
。
たとえばC-x C-e
、bashを使用して(bashを使用して)エディターを呼び出す場合、bashは最初のVISUAL
エディターを試行し、次にVISUAL
失敗した場合(ターミナルがフルスクリーンエディターをサポートしていないため)、を試行しEDITOR
ます。
現在、EDITOR
未設定のままにするか、に設定することができますvi -e
。
ed
、似たようなものはあまり人気がないので、単に無視VISUAL
して使用しても構いませんEDITOR
。
C-x C-e
bash についてのヒントをありがとう。とても便利な。
EDITOR
たとえばgit
Ubuntu 12.04の場合、設定だけでは不十分です。VISUAL
設定せずにgit
無視EDITOR
して使用するだけnano
です(デフォルトでコンパイルされていると思います)。
ed
。GUIを備えたエディターが登場したとき、つまりGUIによって、デスクトップ環境のGUIではなく、CLI GUI(vim、emacsなど)が意味するようになりました。編集プロセスが劇的に変化したため、別の変数の必要性が生じました。このコンテキストでは、CLI GUIとデスクトップ環境のGUIエディターはほぼ同じであるため、VISUALを次のいずれかに設定できます。ただし、EDITORは根本的に異なるワークフローを対象としています。もちろん、これはすべて歴史的なものです。最近、edを使用している人はいません。
受け入れられた答えはおそらく良い、短い治療ですが、これは、VISUALとEDITORの区別がまだ重要であるかもしれないときに、より深くしようとする試みです(Adam Katzの答えに基づいて構築)。
POSIX仕様では、引き続きビジュアルモードエディターとラインエディターが区別されています。これは、シリアル接続を介したカーソルの位置決めが困難だった時代に特に重要でした(特にシリアル接続の速度のため)。viのためのWikipediaの記事は、 VI(ビジュアル・モード・エディタ)とEX(行エディタ)の区別についていくつかの有用な背景を提供します。調査をさらに深く掘り下げると、「ex」仕様の「RATIONALE」セクションが見つかります。これは、仕様にまだ区別がある理由を示しています。
viの一部は、ブロックモード端末、または任意の形式のカーソルアドレス指定のない端末で満足に実装することは不可能ではないにしても困難であると認識されているため、このような機能がすべての端末で機能することは必須要件ではありません。ただし、viの実装では、それらをサポートできるすべての端末ですべての機能を提供する必要があります。
私は300ボーのモデムをあきらめるので、これを必要としていないが、私は(および/または本当にdicey接続を介して)組み込みシステムに接続するために、低速シリアル回線を使用する人々がいることを想像することができるかもしれません、まだ優先ラインモードを持つことができることに感謝しますviのような「ビジュアル」エディターとは異なるエディター。損失の多い、遅延のある狭い接続上のVT100スタイルの端末コードは、限られたアプリケーションでは「肥大化」する可能性があります。
残りの人にとっては、「正しい」答えは「両方をあなたの好みの編集者に設定する」ように思われます。ローカル/グラフィカルエディター(Sublimeやgvimなど)とターミナルウィンドウエディター(viやemacsなど)でこの区別を採用しても構いませんが、おそらく期待どおりに動作しないというレガシーな理由が山ほどあります。 。
私はそれ$VISUAL
がグラフィカルで$EDITOR
あり、コマンドラインであると結論付けました。定義されていない場合、シーク$VISUAL
するものはすべて次に試行する必要があり$EDITOR
ます。
(引用が必要:適切なドキュメント、おそらくmanページまたはPOSIX仕様を入手したいですか?)
現時点では、次のものにこのようなものが~/.bashrc
あり~/.zshrc
ます:
EDITOR="$(command -v vim)"
# we have gvim, not in an SSH term, and the X11 display number is under 10
if command -v gvim >/dev/null 2>&1 \
&& [ "$SSH_TTY$DISPLAY" = "${DISPLAY#*:[1-9][0-9]}" ]; then
export VISUAL="$(command -v gvim) -f"
SUDO_EDITOR="$VISUAL"
else
SUDO_EDITOR="$EDITOR"
fi
gvim
なしの-f
編集内容に基づいて行動することを期待プログラムで動作しません。これには間違いなくsudoeditor
(sudo -e
)が含まれます。
vimへのパスに空白がある場合、これは壊れる可能性があります。問題がある場合は、適切にインストールするか、次のようなシンボリックリンクを検討してください。/usr/local/bin/gvim
$VISUAL
するかどうかは、使用可能なウィンドウシステムがあるかどうかではなく、カーソルを配置できる端末があるかどうかによって決まります。
$DISPLAY
知っておくと良いでしょう。
viなどが失敗する環境はないようですので、X DISPLAYとEDITORを必要とする何かにVISUALを設定することにしました。
ほとんどの場合、一部のプログラムがVISUALを使用していないときに問題が発生するようです。
$VISUAL
は、(シェル引用符で囲まれた)ファイル名を追加するシェルスニペットとして扱いますが、一部のアプリケーションは、検索する場合としない場合がある実行可能ファイルの名前として扱い$PATH
ます。したがって、実行可能ファイル(オプションなどが必要な場合はラッパースクリプトになります)へのフルパスを設定VISUAL
(およびEDITOR
)するのが最善です。