Ubuntu/Debianで「デフォルトエディタ」を設定する方法【決定版】

Linuxテクニック

UbuntuやDebianなどのLinuxでは、「端末エミュレータ」や「コンソール」といったコマンドラインインタフェース(CLI)で動作する「コンソールエディタ」が広く使われています。

もちろん、デスクトップ環境ならGUIのテキストエディタ(geditなど)を使うこともできます。しかし、Windowsなどから「SSH」でテキストログインしたり、黒い画面に文字だけが表示される「コンソール」からテキストログインした場合、テキストファイルの編集にはコンソールエディタを用いる必要があります。

コンソールエディタとしては、「Vim」「nano」「Emacs」などが広く使われています。他にも、「ne」や「micro」のように、GUIアプリに近いキーバインドのエディタもあります。

通常は、ユーザーが起動したいエディタのコマンドを入力して起動します。しかし、他のプログラムからエディタが起動する場合、環境変数などから決定される「デフォルトエディタ」が使われます。たとえば、以下のような場合です。

  • lessでファイルを表示中に「v」キーを押した場合
  • sudoeditコマンドでファイルを編集する場合
  • crontab -eコマンドでcrontabを編集する場合

こうしたコマンドから使い慣れないエディタが起動すると、編集に手間取ってしまいます。
そこで、このページではUbuntu/Debian系ディストリビューションで「デフォルトエディタ」を設定する方法を紹介します。

各エディタのインストール

使いたいエディタがインストールされていない場合、以下のコマンドでインストールしておきましょう。

Vim

Ubuntuデスクトップの場合、デフォルトで「Vim Tiny」という最小構成のバージョンがインストールされています。Vimをメインで使うなら、以下のコマンドで標準構成のVimをインストールすると良いでしょう。

sudo apt install -y vim

Emacs

Ubuntu 18.04 LTSの場合、以下のコマンドで「emacs25」がインストールされます。Ubuntu 16.04 LTSやDebian 9の場合は「emacs24」がインストールされます。

sudo apt install -y emacs

nano

UbuntuやDebianでは、初期状態でデフォルトエディタが「nano」に設定されています。そのため、大抵の環境にはインストールされているでしょう。もしインストールされていない場合は、以下のコマンドでインストールします。

sudo apt install -y nano

ne

neは、Ctrl+Cでコピー、Ctrl+Oでファイルを開くなど、GUIアプリに近いキーバインドが使えるテキストエディタです。GUIアプリのようなメニューから各種操作が可能です。

sudo apt install -y ne

micro

microもGUIアプリに近いキーバインドのテキストエディタです。マウスによるカーソルの移動や文字列の選択にも対応しています。インストール方法は以下の記事を参照してください。

Linux初心者の悩みを解消!「micro」を使って簡単ファイル編集
Linux初心者がぶち当たる最初の大きな壁は、なんといってもファイルの編集です。いろんなサイトや書籍に「nano」や「vi」といったスクリーンエディタ(端末ウィンドウ内で動くエディタ)で編集しましょう、なんて載っていますよね。でも、試してみ...

「デフォルトエディタ」はどうやって決まる?

エディタを起動するプログラムにもよりますが、UbuntuやDebianの場合は基本的に以下のルールでエディタを起動するコマンドが決定されます。

  • 環境変数「VISUAL」が設定されていれば、その値をエディタのコマンドとして用いる。
  • 環境変数「EDITOR」が設定されていれば、その値をエディタのコマンドとして用いる。
  • 上記の環境変数が設定されていなければ「/usr/bin/editor」を用いる。

環境変数が設定されていない場合に実行される/usr/bin/editorは、以下のように/etc/alternatives/editorへのシンボリックリンクとなっており、/etc/alternatives/editorは起動するエディタへのシンボリックリンクとなっています。以下の例では、/usr/bin/editorを実行すると/bin/nanoが起動します。

$ ls -l /usr/bin/editor 
lrwxrwxrwx 1 root root 24 Sep 11 17:59 /usr/bin/editor -> /etc/alternatives/editor
$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Sep 11 17:59 /etc/alternatives/editor -> /bin/nano

この/etc/alternatives/editorのリンク先が、「システム全体のデフォルトエディタ」となるわけです。以下に、/etc/alternatives/editorのリンク先を設定する方法を解説します。

「システムのデフォルトエディタ」を変更する方法

/etc/alternatives/ディレクトリには、さまざまな「デフォルトのコマンド」へのシンボリックリンクが置かれています。リンク先の変更は、「update-alternatives」コマンドを用います。デフォルトのエディタへのシンボリックリンクである「/etc/alternatives/editor」のリンク先を変更するには、以下のように実行します。

Vimをデフォルトエディタにする場合

sudo update-alternatives --set editor /usr/bin/vim.basic

nanoをデフォルトエディタにする場合

sudo update-alternatives --set editor /bin/nano

Emacs25をデフォルトエディタにする場合

sudo update-alternatives --set editor /usr/bin/emacs25

Emacs24をデフォルトエディタにする場合

sudo update-alternatives --set editor /usr/bin/emacs24

neをデフォルトエディタにする場合

sudo update-alternatives --set editor /usr/bin/ne

※「sudo update-alternatives –config editor」を実行して対話的にエディタを選択することもできます。

ユーザーごとに「デフォルトエディタ」を設定する方法

システムのデフォルトエディタとは別のエディタをユーザーごとに設定したい場合は、exportコマンドで前述の環境変数「VISUAL」あるいは「EDITOR」を設定します。Bashを使っているなら、「~/.bashrc」に追記すると良いでしょう。以下の各例では、念のために「VISUAL」と「EDITOR」両方を設定しています。

Vimをデフォルトエディタにする場合

export VISUAL=vim
export EDITOR=vim
unset LESSEDIT

nanoをデフォルトエディタにする場合

export VISUAL=nano
export EDITOR=nano
unset LESSEDIT

Emacsをデフォルトエディタにする場合

export VISUAL=emacs
export EDITOR=emacs
unset LESSEDIT

neをデフォルトエディタにする場合

export VISUAL=ne
export EDITOR=ne
unset LESSEDIT

microをデフォルトエディタにする場合

export VISUAL=micro
export EDITOR=micro
export LESSEDIT='%E ?lm-startpos %lm,0. %f'

microは行数を指定して起動するオプションが他のエディタと異なるため、上記のように環境変数「LESSEDIT」を設定しないと、lessコマンドから実行したときに正常に起動しません。

グラフィカルログインとテキストログインで「デフォルトエディタ」を切り替える方法

デスクトップ環境ではGUIのエディタを使い、テキストログイン時にはコンソールエディタを使いたいという人も多いでしょう。そういった場合は、「~/.bashrc」へ以下のように追記します。

if [[ $DISPLAY ]];then
  export VISUAL=gedit
  export EDITOR=gedit
  unset LESSEDIT
else
  export VISUAL=micro
  export EDITOR=micro
  export LESSEDIT='%E ?lm-startpos %lm,0. %f'
fi

グラフィカルログイン時のみ環境変数「DISPLAY」が設定されるので、それを利用して「VISUAL」と「EDITOR」に設定するエディタコマンドを変えることができます。
この例では、グラフィカルログイン時は「gedit」が起動し、テキストログイン時は「micro」が起動します。もちろん、コマンド名を書き換えて別のエディタを設定することも可能です。

コメント

タイトルとURLをコピーしました