前回、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の登録などが上手く行ってなかったのかも知れない…