それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Ubuntuのvisudoエディタが変nanoになる

ubuntuのvisudo のエディタがnano になってしまう。visudo って書いてあるのにnanoが起動する。viXXXってコマンドでnano起動するの何なの。と思ったりした。
環境変数EDITORで何とかなることもあるんだけど,毎回やるのも面倒だしアップデートかかる度に書き戻されることがある気がする.

ちゃんと解決する

2022-09-26 現在 ubuntu 22.04 で調べたところ、次のコマンドで改善が可能です

/usr/bin/select-editor 

nanoを推されますが、どう考えてもvim のほうが良いので。viを選びます。

Select an editor.  To change later, run 'select-editor'.
  1. /usr/bin/vim.nox
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny
  5. /bin/ed

Choose 1-5 [2]: 1

また、EDITOR環境変数をつかっているプログラムも多いので設定しておきます。

echo export EDITOR=vim >> ~/.bashrc


標準のコマンドエディタは alternativesという機構で管理されている.altenativesは同様のソフトウェアがあるとき、どれを使うかを事前決定しておく機構。たとえばJavaで使われるSun JavaJDKにするか Open JavaJDKにするか。とか。

sudo update-alternatives --config editor #alternativesでeditorを更新するコマンド

じっさいやってみた

エディタを変更してみると複数の候補があるのが分かる.

takuya@atom:~$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                優        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    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3


通常vimに設定。 nano の良さが正直分からない

設定が変わったことを確認
takuya@atom:~$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                優        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    10        manual mode

Press enter to keep the current choice[*], or type selection number:

そのほかの解決方法

visudo する際に,環境変数EDITORを指定して起動する

EDITOR=/usr/bin/vi visudo

または

環境変数EDITORを設定して起動する

export EDITOR=/usr/bin/vim;sudo visudo

但し、環境変数を使う方法は,alternativesが動いてるときはうまく出来なかった

alternativesは/etc/alternativesにあるショートカットで管理されている.詳しくはそのうちエントリに書きます.

2022-09-26 追記

ubuntu がupdate-alternativesを無視するので、/usr/bin/select-editor を追記しました。