Red Hat Enterprise Linux(RHEL)やCentOSなどのLinuxでは、「端末エミュレータ」や「コンソール」といったコマンドラインインタフェース(CLI)で動作する「コンソールエディタ」が広く使われています。
もちろん、デスクトップ環境ならGUIのテキストエディタ(geditなど)を使うこともできます。しかし、Windowsなどから「SSH」でテキストログインしたり、黒い画面に文字だけが表示される「コンソール」からテキストログインした場合、テキストファイルの編集にはコンソールエディタを用いる必要があります。
コンソールエディタとしては、「Vim」「nano」「Emacs」などが広く使われています。他にも、「micro」のように、GUIアプリに近いキーバインドのエディタもあります。
通常は、ユーザーが起動したいエディタのコマンドを入力して起動します。しかし、他のプログラムからエディタが起動する場合、環境変数などから決定される「デフォルトエディタ」が使われます。たとえば、以下のような場合です。
- lessでファイルを表示中に「v」キーを押した場合
- sudoeditコマンドでファイルを編集する場合
- crontab -eコマンドでcrontabを編集する場合
こうしたコマンドから使い慣れないエディタが起動すると、編集に手間取ってしまいます。
そこで、このページではRed Hat系ディストリビューションで「デフォルトエディタ」を設定する方法を紹介します。
各エディタのインストール
使いたいエディタがインストールされていない場合、以下のコマンドでインストールしておきましょう。
Vim
RHEL/CentOS/Fedoraでは、初期状態で「vim」がインストールされています。もしインストールされていない場合は、以下のコマンドでインストールします。
# RHEL/CentOSの場合
sudo yum install -y vim
# Fedoraの場合
sudo dnf install -y vim
Emacs
# RHEL/CentOSの場合
sudo yum install -y emacs
# Fedoraの場合
sudo dnf install -y emacs
nano
# RHEL/CentOSの場合
sudo yum install -y nano
# Fedoraの場合
sudo dnf install -y nano
micro
microはGUIアプリに近いキーバインドのテキストエディタです。マウスによるカーソルの移動や文字列の選択にも対応しています。インストール方法は以下の記事を参照してください。
「デフォルトエディタ」はどうやって決まる?
RedHat系OSの場合、多くのプログラムはエディタの起動コマンドを以下のルールで決定します。
- 環境変数「VISUAL」が設定されていれば、その値をエディタのコマンドとして用いる。
- 環境変数「EDITOR」が設定されていれば、その値をエディタのコマンドとして用いる。
- どちらも設定されていない場合、「vi」コマンドを用いる(Vimが起動する)。
「システムのデフォルトエディタ」を設定する方法
全ユーザー共通の設定ファイルでexportコマンドを実行し、環境変数「VISUAL」や「EDITOR」にエディタを起動するコマンドを設定すれば、好みのエディタをデフォルトにできます。以下は、「/etc/profile.d/editor.sh」に設定を書き込む例です。
Vimをデフォルトエディタにする場合
$ sudo tee /etc/profile.d/editor.sh <<EOF
export VISUAL=vim
export EDITOR=vim
EOF
$ source /etc/profile.d/editor.sh # 現在のシェルに反映する場合に実行
nanoをデフォルトエディタにする場合
$ sudo tee /etc/profile.d/editor.sh <<EOF
export VISUAL=nano
export EDITOR=nano
EOF
$ source /etc/profile.d/editor.sh # 現在のシェルに反映する場合に実行
Emacsをデフォルトエディタにする場合
$ sudo tee /etc/profile.d/editor.sh <<EOF
export VISUAL=emacs
export EDITOR=emacs
EOF
$ source /etc/profile.d/editor.sh # 現在のシェルに反映する場合に実行
microをデフォルトエディタにする場合
$ sudo tee /etc/profile.d/editor.sh <<EOF
export VISUAL=micro
export EDITOR=micro
export LESSEDIT='%E ?lm-startpos %lm,0. %f'
EOF
$ source /etc/profile.d/editor.sh # 現在のシェルに反映する場合に実行
microは行数を指定して起動するオプションが他のエディタと異なるため、上記のように環境変数「LESSEDIT」を設定しないと、lessコマンドから実行したときに正常に起動しません。
ユーザーごとに「デフォルトエディタ」を設定する方法
システムのデフォルトエディタとは別のエディタをユーザーごとに設定したい場合は、デフォルトで配置される「~/.bashrc」に以下の設定を追記すると良いでしょう。
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
microをデフォルトエディタにする場合
export VISUAL=micro
export EDITOR=micro
export LESSEDIT='%E ?lm-startpos %lm,0. %f'
グラフィカルログインとテキストログインで「デフォルトエディタ」を切り替える方法
デスクトップ環境では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」が起動します。もちろん、コマンド名を書き換えて別のエディタを設定することも可能です。
コメント