bashの `editor`コマンドとは何ですか?

ブログでコマンドを使用していくつかの手順を書いているので、現在のユーザーのお気に入りのテキストエディターを開くことができるコマンドを探していました。 editのようなコマンドを期待していたのですが、editorが見つかりました。私にとっては、ターミナルでvimが起動しました。欲しかったのですが、vim-gtkを使用しています。エディターでvim-gtkを使用する方法を探し始め、このの質問で環境変数ですが、それがeditorコマンドに関連しているかどうかもわかりません。man editorを試しました、しかしそれはvimのマンページを引き上げただけです。

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

回答

これはDebian-ismです(したがって、Ubuntu、Mintなどに表示されます)。リンクコールed 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を使用しますか?

「私は思いません」 d editorをユーザーにとって意味のある方法で設定するという方向に進みます。これは、私が標準と考えるものではないためです。

さらに、 $EDITOR必要なものを指す環境変数、vimgeditemacsなど。ただし、この変数は、sudogit、およびsubversionは、変数$EDITORを使用するように特別に設計されています。

実装のアイデア

自分で選択したエイリアスを設定し、それが利用可能であることをユーザーに指示するだけです。 $HOME/.bashrcファイルをエイリアスXとして使用するか、ファイル/etc/profile.d/our_aliases.shのシステム構成としてエイリアスXとして設定します。

または、システムがgeditgvimvimemacsなどを使用して、砂糖のコーティングを切り取り、すぐにこれらのことを教えます。

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

コメント

  • そうです、ユーザーはエディターの名前がわかります。コード例を示す代わりに、特定のファイルを編集するように指示します。私はコード例に夢中になっていて、'少し衒学者になっていることに気づいていませんでした。 '残念ながらUbuntuが'変数を設定していません$EDITOR 'それまたはeditorシンボリックリンクに依存することはできません。
  • s/Ubuntu/Debian/g
  • 標準、ため息…

回答

ファイルを編集するように指示したときに一部のプログラムによって呼び出されるエディタープログラム。環境変数を自分で設定する必要があります。

cshまたはtcshを使用する場合は、シェルプロンプトで次のようにします。

setenv EDITOR vim 

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

EDITOR=vim; export EDITOR 

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

EDITOR変数は、一部のアプリケーションがエディターを呼び出すためにデフォルトで必要な変数です。画面指向のエディターを指定するために使用されるVISUALという別の変数があります。通常は、EDITOR変数と同じ値に設定する必要があります。元々、EDITORはed(行ベースのエディター)に設定され、VISUALはvi(画面-ベースのエディター)。

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

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

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

GNU Emacsマニュアルから

オプション--alternate-editor=commandは、スクリプトでemacsclientを実行するときに役立ちます。 emacsclientがEmacsへの接続に失敗した場合に実行するコマンドを指定します。たとえば、EDITOR環境変数の次の設定は、Emacsが実行されていない場合でも、常にエディターを提供します。

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

コメント

  • shと言っても'意味がありません。 shは通常、システムの'シェルです。以前はThomsonシェル、次にBourneシェル、そして現在ではほとんどのシステムで、POSIX sh仕様を実装するシェルがあります。 export EDITOR=vim構文はPOSIXですが、BourneやThomsonではありません。 export VISUAL=$EDITORbashおよびkshの一部の実装で機能します。他のほとんどのシェルではexport VISUAL="$EDITOR"が必要です。 VISUAL=$EDITOR export VISUALは、Bourneシェルを含むすべてのBourneのようなシェルで機能します。
  • EDITORそのようなマルチワード値に?その場合、which "$EDITOR"またはwhich $EDITORを安全に使用して存在するかどうかを確認できません。

回答

環境変数EDITOR

を指定する必要があります

.profileに次のコマンドを追加します。

export EDITOR=editor 

vimをデフォルトのエディターとして、代わりに追加します

export EDITOR=vim

個人設定:エディターの絶対パス名を使用します環境変数で。例:

export EDITOR=/usr/bin/vim

回答

editorコマンドはubuntu固有です。ポータブルではなく、一般的でもありません(ubuntu以外)。このコマンドは、ユーザーごとではなく、システム全体にも設定されます。それが機能する方法は、/usr/bin/editorがシステム上のエディターへの単なるシンボリックリンクであるということです。そのため、すべてのユーザーで同じです。

$EDITOR環境変数はかなり標準的です。これは、ユーザーが何かを編集する必要がある多くのプログラムで使用されます。そのため、ユーザーのエディターを呼び出すときに使用する必要があるのはこの変数です。

コメント

  • Ubuntu固有ではありません。これはDebianに由来し、Debian 'の代替メカニズムを使用します。'はすべてのDebian派生物で利用できます。 Ubuntuだけではありません。

回答

これは、スクリプトで使用しているものです:

# 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" 

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

そのため、editorには常に何らかの値を設定することが重要だと思います。そうでない場合は、最後の行 意図せずに実行される可能性があります $ filename 。私の場合、no_editor_foundを選択しましたが、同様に実行できます。そこでpicoまたはedを使用します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です