この記事では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
コマンドのように最初からインストールされているものだと思っていたのですがこれは意外でした🤔
参考
以下のサイトの情報を引用・参考にしました。