crontabのエディタを変える
概要
sudo crontab -e
するとき,vim を使いたいのに vi が起動するときのメモ
原因
- 環境変数が正しく設定されていない
- crontab では VISUAL もしくは EDITOR という変数を利用してエディタを選択す
manより抜粋
-e Edits the current crontab using the editor specified by the VISUAL or EDITOR envi‐ ronment variables. After you exit from the editor, the modified crontab will be installed automatically.
sudo
したときにcrontabのエディタ変数を環境変数として引き継がない設定になってる
$sudo env | grep EDITOR $ $sudo sudo -V | grep EDITOR visudo が EDITOR 環境変数を尊重して使用します
対策
.bashrc
で環境変数を設定する
$ grep EDITOR ~/.bashrc export EDITOR='/bin/vim'
sudoers
に環境変数を引き継ぐ設定を追記する
$ sudo grep -2 EDITOR /etc/sudoers Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY" Defaults env_keep += "EDITOR" ## ここを追記した # $ sudo sudo -V | grep EDITOR visudo が EDITOR 環境変数を尊重して使用します EDITOR