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アプリに近いキーバインドのテキストエディタです。マウスによるカーソルの移動や文字列の選択にも対応しています。インストール方法は以下の記事を参照してください。
「デフォルトエディタ」はどうやって決まる?
エディタを起動するプログラムにもよりますが、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」が起動します。もちろん、コマンド名を書き換えて別のエディタを設定することも可能です。
コメント