
この記事ではupdate-alternativesコマンドのを使用して、デフォルトのエディタを変更する方法について解説しています。
update-alternatives コマンド
update-alternativesコマンドでは、あるコマンドに対して、実行するコマンドのデフォルト値を設定することができます。
例えば、git commitを実行したときにコミットコメントの入力を求められます。その時にLinux側ではeditorコマンドを実行してコミットメッセージを要求してきます。その時にeditorコマンドに対してデフォルトのエディタ(vim, emacs, nanoなど)を設定することができます。
多彩に管理することができるこのコマンドのようですが、マシンの初期設定を行っているときにデフォルトのエディタを変更するときなんかに使われます。
Raspberry Piではeditorコマンドに設定されているコマンドがnanoとなっています。扱いやすいエディタですがいつも使い慣れているエディタのほうがいいですよね!今回はエディタの変更方法に関して例を交えて紹介します。
コマンドを実行
以下のコマンドを実行することで、デフォルトのエディタの設定を進めることができます。
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 15 manual mode Press <enter> to keep the current choice[*], or type selection number: _
出力される内容は書く環境によって異なりますが、上記はRaspberry Piで普通のvimのみインストールされている状態です。
Selection 0の行に*とありますが、これが現在設定されているデフォルトのコマンドとなっています。nanoが指定されていますね。この状態でeditorコマンドを実行するとnanoが代わりに実行されます。
type selection number: _と番号の入力を求められているので、希望のコマンドの行の番号を入力します。やっぱり現在のままでいいや、という場合にはそのままエンターキーを押すかCtrl + Cで終了します。
設定が完了したら、editorコマンドを実行して指定したエディタが起動するかを確認して完了です。git commitを実行したときのエディタもちゃんとこれで変わります。
bin内で自分でシンボリックリンクを作成するよりも対話的でわかりやすいですね!
(補足)ちょっとほかの設定値なんかも見てみる
update-alternatives --configまで入力してタブキーを押すことで設定できるコマンドの一覧を表示することができます。その中で面白いのがviやviewコマンドです。中身を見てみると、
$ sudo update-alternatives --config vi There are 2 choices for the alternative vi (providing /usr/bin/vi). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/vim.basic 30 auto mode 1 /usr/bin/vim.basic 30 manual mode 2 /usr/bin/vim.tiny 15 manual mode
となっており、代わりにvimが実行されるようになっています。おそらくインストールの時点で上書きされてしまっているのでしょう。確かにviを実行してみるとVIM - Vi IMprovedの画面が表示されます。わざわざviコマンドを使用することもないのでこれは知りませんでした。。。
/usr/bin/viを参照してみても実体はただのシンボリックリンクでどうやらRaspberry Piにはviコマンドはインストールされていないようです!代わりに最初からvim.tinyは使用できました。どんなOSでもbashコマンドのように最初からインストールされているものだと思っていたのですがこれは意外でした🤔
参考
以下のサイトの情報を引用・参考にしました。