前回、sudo visudo
をしてパスワード入力時にアスタリスクが表示されるようにしたけど、そのvisudo
で起動されるのがnano
だった。おいおい冠に付いてるvi
はハッタリかよ。
よく分からないのはSUDO_EDITOR
やEDITOR
はnvim
を指定していたにも拘わらずだ。
$ echo $SUDO_EDITOR
/usr/local/nvim-linux64/bin/nvim
$ echo $EDITOR
/usr/local/nvim-linux64/bin/nvim
解決方法は
Ubuntuのvisudoエディタが変nanoになる - それマグで!に書いてある。/usr/bin/select-editor
を実行して選択すれば良いだけらしい。しかし…
$ /usr/bin/select-editor
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/mcedit
3. /usr/bin/vim.tiny
Choose 1-3 [1]: ^C
nvim
が選択肢として表示されない。だから、変数でnvim
を設定しているのに、駄目だったのだろうか?
ということで
update-alternativesの使い方(vimをeditorグループに登録する) - やってみるを参照に選択肢に追加させようとする。sudo update-alternatives --install /usr/bin/editor editor /usr/local/nvim-linux64/bin/nvim 50
を実行。優先度によっては、これによってエディタのデフォルトがnvim
になっている。
一応、確認する。
$ sudo update-alternatives --install /usr/bin/editor editor /usr/local/nvim-linux64/bin/nvim 50
update-alternatives: /usr/bin/editor (editor) を提供するために自動モードで /usr/local/nvim-linux64/bin/nvim を使います
$ /usr/bin/select-editor
Select an editor. To change later, run 'select-editor'.
1. /usr/local/nvim-linux64/bin/nvim
2. /bin/nano <---- easiest
3. /usr/bin/mcedit
4. /usr/bin/vim.tiny
Choose 1-4 [2]: 1
/etc/alternatives/
配下のeditor
がnvim
にリンクされている。
$ ls -l /etc/alternatives/editor
lrwxrwxrwx 1 root root 32 12月 10 01:28 /etc/alternatives/editor -> /usr/local/nvim-linux64/bin/nvim
失敗例
上で参考にしたサイトにあるとおり、以下のような引数で登録する。
–install <リンク> <名前> <パス> <優先度>
<リンク> は /etc/alternatives/<名前> を指すシンボリックリンクです。 (例: /usr/bin/pager)
当初、リンクを何処にすれば良いのか分からなくて、sudo update-alternatives --install /etc/alternatives/nvim nvim /usr/local/nvim-linux64/bin/nvim 50
なんてやっちゃったんだよね。
これだと、突っ込みたいところ満載だし、当然エラーになる上に中途半端にリンクが残る。editor
グループじゃなくて、nvim
グループが登録/etc/alternatives/nvim
されて、/etc/alternatives/nvim
が更に/etc/alternatives/nvim
にリンクしようとする変なリンクが残存してしまう。なのでsudo update-alternatives --remove-all nvim
で削除できなくて、sudo rm /etc/alternatives/nvim
で削除した。
もし、本当にnvim
のバージョンを幾つもインストールしてそれを管理するためにnvim
グループを登録するとしたら、sudo update-alternatives --install /usr/local/bin/nvim nvim /usr/local/nvim-v9.0.0-dev/bin/nvim 50
という形で登録することになる。
これで、/usr/local/bin/nvim
に/usr/local/nvim-v9.0.0-dev/bin/nvim
へのリンクが貼られて、更に/etc/alternatives/nvim
にも、登録しているのが一つ、もしくは再優先度なので/usr/local/nvim-v9.0.0-dev/bin/nvim
がリンクが貼られることなる。
正しく登録できている場合は、sudo update-alternatives --remove-all nvim
で両方のリンクを削除することが出来る。
何か、それまでエディタ、ターミナルの設定が上手く行かなかったりしたのは、変数だけでなく、ここらへん/etc/alternatives
の登録などが上手く行ってなかったのかも知れない…