如何在Linux中修改终端的默认编辑器 Linux将vi改为nano或vim的方法

夏强小哥_1753

夏强小哥_1753

2026-05-30

285人浏览

原创

linux默认编辑器分三层:editor环境变量(用户级、最常用)、update-alternatives系统级配置、工具专属逻辑(如crontab依赖~/.selected_editor);改错一层,其他仍可能沿用旧设置。

如何在linux中修改终端的默认编辑器 linux将vi改为nano或vim的方法

Linux 终端里“默认编辑器”不是单一设置,而是分三层生效:环境变量 EDITOR、系统级替代链 update-alternatives、以及特定工具(如 crontab、git)自己的逻辑。改错一层,其他地方可能还是用原来的编辑器。

设置 EDITOR 环境变量(最常用、影响范围广)

多数命令行工具(crontab -e、git commit、sudovisudo 配合某些策略时)会优先读取 EDITOR。它只作用于当前用户,且对交互式 shell 有效。

  • 临时生效(当前终端):export EDITOR=nano 或 export EDITOR=/usr/bin/vim.basic
  • 永久生效:把上面那行加到 ~/.bashrc(bash 用户)或 ~/.zshrc(zsh 用户)末尾,然后运行 source ~/.bashrc
  • 注意路径:用 which vim 或 ls /usr/bin/vim* 确认实际路径;vim.tiny 不支持语法高亮和部分快捷键,vim.basic 或 vim.gtk 更完整
  • 别漏掉 visudo:它默认忽略 EDITOR,但如果你用 sudoedit 替代 visudo,就会尊重该变量

用 update-alternatives --config editor 切换系统级默认

这个命令修改的是 Debian/Ubuntu 系统中由 update-alternatives 管理的 editor 符号链接(比如 /usr/bin/editor),影响调用该链接的程序,例如某些脚本或桌面环境下的“编辑配置文件”动作。

Linux Distros
Linux Distros

Linux发行版游乐场,适用于需要临时Linux沙箱、基于浏览器的Linux虚拟机、一次性终端环境、桌面Linux会话等场景

下载
  • 执行 sudo update-alternatives --config editor,会出现编号列表,选对应 /usr/bin/nano 或 /usr/bin/vim.basic 的序号
  • 该设置是系统级的,所有用户都会看到相同结果(除非被个人 EDITOR 覆盖)
  • 如果列表里没有 vim,说明没注册进 alternatives:先运行 sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim.basic 60
  • 这个方式对 crontab -e 有时无效——它更信任 EDITOR,而不是 /usr/bin/editor

为什么 vi 还在弹出来?检查这些地方

即使设了 EDITOR 和 update-alternatives,有些场景仍固执地调用 vi,原因很具体:

  • crontab -e 第一次运行时会强制让你选编辑器(通过 select-editor),之后就记在 ~/.selected_editor 里,EDITOR 反而被忽略
  • git 默认不看 EDITOR,得单独配:git config --global core.editor "nano -w"(-w 避免换行符问题)
  • 某些发行版(如 CentOS Stream)默认没装完整 vim,vi 实际指向 vim.tiny,此时改 EDITOR 指向 vim.tiny 也没用——得先 sudo dnf install vim-enhanced 或 sudo apt install vim
  • 终端复用会话(如 tmux、screen)可能继承旧环境变量,新设的 EDITOR 不自动同步,需重新 attach 或手动 export

验证是否真生效了

别只信 echo $EDITOR,要实测关键命令:

  • 运行 echo $EDITOR 看输出是否符合预期
  • 执行 crontab -e,观察打开的是哪个编辑器(首次运行后会记住 ~/.selected_editor)
  • 运行 git commit(先改一个文件),看弹出的是否是你设的编辑器
  • 检查 ~/.selected_editor 文件内容,它可能覆盖你的环境变量设置

真正麻烦的从来不是改哪一行,而是不同工具各自维护一套“默认”逻辑,且不互相通知。动手前先确认你要改的是哪个具体命令的行为,再选对应层级的方案。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.01

329

3

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3950

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2553

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6150

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5802

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3393

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2885

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3119

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习