3 min read

crontab 默认编辑器改成 vim,告别 Nano 的烦恼

很多 Linux 用户都有过这样的经历:当你兴冲冲地输入 crontab -e 想编辑定时任务时,系统却弹出了一个让人抓狂的 Nano 编辑器。对于习惯了 Vim 的我们来说,这简直是一种折磨。今天就来聊聊如何把 crontab 的默认编辑器改成我们心爱的 Vim。

为什么会这样?

其实 crontab 会读取 EDITORVISUAL 环境变量来决定使用哪个编辑器。如果这两个变量都没设置,系统就会用默认的编辑器,在 Ubuntu 上通常是 Nano。所以我们只需要设置一下环境变量就行啦。

临时方案:快速测试

如果你只是想临时改一下,或者先试试效果,可以在终端里执行:

export EDITOR=vim

或者:

export VISUAL=vim

设置完之后,马上运行 crontab -e,你就会发现熟悉的 Vim 界面出现了。不过这个设置只在当前终端会话有效,关掉终端就没了。

永久方案:一劳永逸

针对当前用户

如果你想每次打开终端都能用 Vim,就得把环境变量写到 shell 配置文件里。最简单的方法是:

echo 'export EDITOR=vim' >> ~/.bashrc
source ~/.bashrc

这样就把设置加到了你的 ~/.bashrc 文件里。如果你用的是 zsh,那就改成 ~/.zshrc

当然,你也可以直接用编辑器打开配置文件,手动添加这行代码:

export EDITOR=vim

针对所有用户(需要 sudo 权限)

如果你是系统管理员,想让所有用户都默认用 Vim,可以编辑 /etc/environment 文件:

sudo sh -c 'echo "EDITOR=vim" >> /etc/environment'

Debian/Ubuntu 用户的福利

如果你用的是 Debian 或 Ubuntu 系统,还有一个更方便的命令:

sudo select-editor

运行后会出现一个交互式菜单,选择你想要的编辑器编号(比如选 vim.basic)就行。这个命令会自动帮你配置好一切,非常省心。

一次性指定

有时候你可能不想改全局设置,只想这一次用 Vim,那可以这样:

EDITOR=vim crontab -e

这样在执行 crontab -e 的过程中就会临时使用 Vim,不会影响其他操作。

验证是否生效

设置完之后,怎么确认有没有成功呢?很简单:

echo $EDITOR

如果输出是 vim,那就说明设置成功了。如果输出是空的,说明环境变量没设置上,检查一下配置文件有没有问题。

一个小坑要注意

这里有个容易踩的坑:如果你同时设置了 EDITORVISUAL 两个环境变量,crontab 会优先使用 VISUAL。所以如果你发现设置了 EDITOR 却没生效,可能是 VISUAL 把它覆盖了。建议两个变量都设置成一样的值,避免混乱。

总结一下

把 crontab 的默认编辑器改成 Vim 真的不是什么难事,本质上就是设置一个环境变量。临时用就 export 一下,永久用就写进配置文件。对于 Debian/Ubuntu 用户,select-editor 是最简单的选择。设置好后,再也不用忍受 Nano 了,编辑定时任务也变得更顺手了。

希望这篇分享对你有帮助!如果你有其他 Linux 小技巧,欢迎在评论区交流~