Bashの「エディタ」コマンドは何ですか?

Bashの「エディタ」コマンドは何ですか?

現在、ユーザーがお気に入りのテキストエディタを開くことができるコマンドを探しています。コマンドを使用してブログにいくつかの手順を書いているからです。私はこのようなコマンドを期待していましたが、editそれを見つけましたeditor。私にとっては、vim-gtkを使っている端末でvimを実行します。私は編集者がvim-gtkを使うようにする方法を見つけ始めました、これ環境変数の問題について説明していますが、$EDITORこれがコマンドに関連しているかどうかはわかりませんeditor。私はそれを試しましたが、man editorvimのマニュアルページが表示されました。

editor選択したテキストエディタをどのように使用しますか、それとも別のコマンドを使用する必要がありますか?

答え1

これはDebian主義です(したがって、Ubuntu、ミントなどに存在します)。彼らはというリンクを設定しましたeditor。次のように逆追跡できます。

$ which editor
/usr/bin/editor

$ ls -l /usr/bin/editor 
lrwxrwxrwx 1 root root 24 Nov 24 19:10 /usr/bin/editor -> /etc/alternatives/editor

$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Nov 24 19:46 /etc/alternatives/editor -> /usr/bin/vim.gnome

$ ls -l /usr/bin/vim.gnome
-rwxr-xr-x 1 root root 2403392 Oct 26  2012 /usr/bin/vim.gnome

editorしたがって、これは実行可能ファイルへのUnixリンクにすぎないことがわかりますvim.gnome

使用editor

editor私はこれを標準と見なすものではないので、ユーザーにこれを設定する意味のある方法を提供する方向に行くとは思いません。

また、$EDITOR必要なものを指すように環境変数を設定vimできますgedit。ただし、この変数は、他のツール、およびこの変数を使用するように特別に設計されたツールemacsでのみ使用できます。sudogitsubversion$EDITOR

実装のアイデア

私はあなたが選択したエイリアスを設定し、ユーザーにファイルを介して$HOME/.bashrcエイリアスXとして使用するか、ファイルのシステム構成/etc/profile.d/our_aliases.sh(エイリアスX)に設定するように指示します。

あるいは、システムがgedit、、、、などを提供するとユーザーに話し、砂糖コーティングを取り除き、gvimこれらのことをすぐに教えることもできます。vimemacs

あるいは、基本的なコマンドとさまざまなタスクの実行方法を提供する/etc/help.txtシェルのコマンドhelp()を介して実行できるテキストファイルを提供できます。このアプローチを使用すると、時間の経過とともに新しい機能やプロンプトでヘルプをカスタマイズでき、簡単な便利なコマンドalias help="less /etc/help.txt"以上の機能を提供できます。editor

答え2

一部のプログラムにファイルの編集を指示すると、編集プログラムが呼び出されます。環境変数は直接設定する必要があります。

csh または tcsh を使用している場合は、シェルプロンプトで次の操作を行います。

setenv EDITOR vim

bash または ksh を使用している場合は、次のように入力します。

EDITOR=vim; export EDITOR

(「vim」を使用したいエディタに置き換えます。)

EDITORこの変数は、一部のアプリケーションでエディタを呼び出すためにデフォルトで必要です。VISUAL画面指向エディタを指定する別の変数があります。通常、EDITOR変数と同じ値に設定しようとします。最初はEDITORed(ラインベースのエディタ)に設定され、VISUALvi(画面ベースのエディタ)に設定されます。

VISUAL="vim"; export VISUAL
VISUAL="$EDITOR"; export VISUAL  #even better

これにより、テキストエディタを使用するほとんどのUnixプログラムは、ユーザーが設定したエディタを使用します。上記のコマンドを実行すると、現在のコンピューティングセッションに対してのみデフォルトエディタが設定されます。これらの変更を永久に適用するには、上記の適切なコマンドをファイル(cshまたはtcshユーザーの場合)またはファイル(bashまたはkshを使用している場合)に入れる必要があります.login.cshrc.profile

Emacsを使用するふりをしている場合は、別の環境変数があります。これはALTERNATE_EDITOR同じ効果を持ちますが、オプションを使用してEmacsを呼び出すときに使用されます--alternate-editor

~からGNU Emacs マニュアル:

このオプションはスクリプト内で実行するときに--alternate-editor=command便利です。emacsclientEmacsに接続できないときに実行するコマンドを指定します。emacsclientたとえば、次の環境変数設定は、 EDITOREmacsが実行されていなくても常にエディタを提供します。

EDITOR="emacsclient --alternate-editor vi +%d %s"

答え3

editor環境変数にこれを指定する必要がありますEDITOR。次のコマンドを次のコマンドに追加します.profile

export EDITOR=editor

vimデフォルトエディタとして必要に応じて追加できます。

export EDITOR=vim

個人的な好み:環境変数でエディタの絶対パス名を使用します。例えば、

export EDITOR=/usr/bin/vim

答え4

これが私がスクリプトで使用するものです:

# Find a suitable text editor
editor="$VISUAL"
[ -z "$editor" ] && editor="$EDITOR"
[ -z "$editor" ] && which editor >/dev/null && editor=editor
[ -z "$editor" ] && which nano   >/dev/null && editor=nano
[ -z "$editor" ] && which vi     >/dev/null && editor=vi
[ -z "$editor" ] && editor=no_editor_found

# Use the editor we found
$editor "$filename"

$editor上記のemacsclientの例が機能していることを確認するために、最後の呼び出しに引用符を付けませんでした。

editorしたがって、常に最後の行にどの値を設定することが重要だと思います。意図せずに実行される可能性があります $ファイル名。私の場合はを選択しましたが、orそこもno_editor_found同じようにお使いいただけます。picoed

関連情報