首页 > 要闻简讯 > 宝藏问答 >

问 linux 的 vim 命令 文本编辑器操作

2026-11-08 22:36:04
最佳答案

答

vim 是 linux 系统里面最经典的全屏文本编辑器,全称是 vi improved,也就是 vi 编辑器的增强版本,几乎所有主流 linux 发行版默认都预装,是运维人员修改配置文件最核心的工具,vim 最大特点就是多模式操作,分为正常模式 插入模式 命令行模式 可视模式,新手最容易卡住的地方就是不清楚当前处在哪个模式,不知道怎么进入编辑,也不知道怎么保存退出,vim 不只是简单打开文件写字,它还支持查找替换 多窗口 复制粘贴 撤销重做 语法高亮 宏录制,很多服务器最小化安装版本只保留 vi,vim 需要单独安装软件包,执行 vim 提示 command not found 的时候,就需要通过包管理器安装 vim,vim 可以打开已有文件,也可以直接打开一个不存在的文件,保存的时候自动新建文件,在修改 nginx sshd 系统配置这类场景,vim 是首选编辑器,它纯键盘操作,不需要鼠标,远程 ssh 终端环境下优势非常明显。

一 vim 核心模式说明

模式名称进入方式主要作用
正常模式打开 vim 默认就是这个模式,任何模式按 esc 回到这个模式移动光标 删除 复制 撤销 切换其他模式
插入模式正常模式按 i a o I A O 进入可以正常输入文字编辑内容
命令行模式正常模式输入冒号:进入保存 退出 查找替换 行号设置
可视模式正常模式按 v V ctrl 加 v 进入选中文本块,批量复制删除

重点说明,正常模式是 vim 的基础核心,所有快捷键操作都必须在正常模式下执行,如果现在可以直接打字,说明已经在插入模式,这个时候按 i 这类快捷键不会生效,必须先按 esc 退回正常模式。

二 基础使用步骤

第一步 终端输入 vim 文件名,比如 vim /etc/ssh/sshd_config,回车之后打开文件,默认进入正常模式

第二步 按 i 键进入插入模式,此时就可以修改文件里面的文字内容

第三步 修改完成之后按 esc 键,退出插入模式,回到正常模式

第四步 输入冒号,进入命令行模式,输入 wq 回车,w 代表保存,q 代表退出,文件修改就完成

第五步 如果修改之后不想保存,输入 q! 回车,强制放弃修改退出 vim

三 常用快捷键清单

光标移动(正常模式)

快捷键功能
h j k l左 下 上 右移动光标
gg光标跳转到文件第一行
G光标跳转到文件最后一行
数字加 G跳转到指定行,比如 100G 跳到 100 行
w b按单词向前 向后跳转

编辑操作(正常模式)

快捷键功能
x删除光标所在单个字符
dd删除当前整行,同时相当于剪切
ndd删除 n 行,比如 3dd 删除当前往下 3 行
yy复制当前整行
nyy复制 n 行
p粘贴复制或者剪切的内容
u撤销上一步操作
ctrl 加 r重做撤销的内容

查找替换(命令行模式)

命令功能
/ 关键词向下查找关键词,n 查找下一个,N 上一个
? 关键词向上查找关键词
% s / 旧内容 / 新内容 /g全文替换,g 代表本行全部匹配项
set nu显示行号
set nonu关闭行号

四 深度原理与关键特性

vim 缓冲区原理

vim 打开文件的时候,不会直接修改磁盘原文件,而是把文件内容加载到内存缓冲区,所有编辑操作都是修改缓冲区里面的数据,只有执行 w 保存命令的时候,才会把缓冲区内容写入磁盘文件,这个机制就解释了为什么没有执行 w 之前,就算修改了内容,原文件磁盘上的数据没有变化,如果异常断开 ssh 会话,缓冲区内容会丢失,不会自动保存,这个是很多新手踩坑点,修改完配置忘记 w 保存,重启服务发现配置没有改动。

临时文件交换文件

vim 打开文件的时候会生成一个隐藏交换文件,文件名类似.file.swp,如果 vim 非正常退出,比如 ssh 断线 强制关闭终端,再次打开同一个文件的时候,vim 会提示交换文件存在,提示恢复或者删除交换文件,这个机制是 vim 用来防止意外丢失编辑内容,但是多人同时编辑同一个文件的时候,这个 swp 文件会反复提示,需要判断是恢复之前未保存内容,还是删除旧交换文件。

vi 和 vim 的差别

vi 是原始版本,功能非常基础,没有语法高亮,不支持复杂宏和多窗口,vim 是增强版,增加语法高亮 多级撤销 正则替换 插件系统,很多精简系统只预装 vi,执行 vim 找不到,redhat 系 dnf install vim,debian 系 apt install vim,安装之后就可以使用完整 vim 命令。

配置文件 vimrc

vim 的永久配置写在 vimrc,全局配置文件是 etc/vimrc,用户个人配置是家目录.vimrc,可以在里面永久开启行号,设置缩进,语法高亮,不需要每次打开 vim 手动输入 set nu,适合长期运维使用。

五 常见踩坑场景

1 卡在插入模式,按 u 想撤销但是直接打出字母 u,忘记按 esc 退回正常模式

2 修改完文件只按 q 退出,没有加 w,提示文件已经修改,需要加!强制退出,修改内容不会保存

3 不知道怎么退出 vim,一直按按键,这个是新手最经典问题,正确方式 esc 之后输入 wq 或者 q!

4 打开文件提示权限不足,普通用户修改 etc 下配置,需要 sudo vim 文件名提权打开

5 交换文件报错,反复打开都提示 swp,没有删除旧交换文件,导致每次启动都弹出提示

6 批量替换忘记加 g 参数,一行里面多个匹配项只替换第一个

六 进阶功能介绍

vim 支持多窗口拆分,正常模式输入:sp 水平拆分窗口,:vsp 垂直拆分窗口,可以同时对比两个配置文件,还支持宏录制,按 q 加字母开始录制,重复执行批量操作,再按 q 结束录制,按 @字母回放宏,适合大批量重复编辑操作,还可以安装插件实现代码补全,适合开发人员使用,服务器运维一般不需要复杂插件,掌握基础模式和快捷键就可以满足配置修改需求。

总结,linux 的 vim 命令核心就是多模式编辑器,默认打开是正常模式,i 进入插入编辑,esc 返回正常模式,冒号进入命令行模式执行保存退出,理解缓冲区和 swp 交换文件原理,熟练掌握移动 删除 复制 查找替换快捷键,遇到 command not found 就安装 vim 软件包,就可以熟练使用 vim 修改各类配置文件。

【常见问题】

问题 1 linux 的 vim 命令打开文件之后怎么保存退出

回答 1 linux 的 vim 命令编辑完成之后,先按 esc 回到正常模式,输入冒号进入命令行模式,输入 wq 回车就可以保存并且退出 vim,如果不需要保存修改,输入 q! 强制退出。

问题 2 linux 的 vim 命令提示 command not found 是什么原因

回答 1 linux 的 vim 命令提示 command not found,一般是最小化安装系统只预装了基础 vi,没有安装完整 vim 包,redhat 系执行 dnf install vim,debian 系执行 apt install vim,安装完成之后就可以正常调用 vim 命令。

问题 3 linux 的 vim 命令里面 u 键为什么不能撤销

回答 1 linux 的 vim 命令撤销快捷键 u 必须在正常模式下生效,如果当前处在插入模式,按 u 只会输入字母 u,需要先按 esc 退回正常模式,再按 u 执行撤销操作。

问题 4 linux 的 vim 命令打开文件提示交换文件 swp 是什么意思

回答 1 linux 的 vim 命令打开文件出现 swp 交换文件提示,是上一次 vim 非正常退出留下的临时缓冲文件,可以选择恢复未保存内容,或者删除旧 swp 交换文件,之后再次使用 vim 命令打开文件就不会弹出该提示。

【免责申明】

本文内容基于主流 linux 发行版 vim 通用功能整理,vim 不同版本参数和插件能力存在差异,修改系统配置文件前建议备份原文件,错误保存覆盖配置可能造成服务异常,本文不对错误使用 linux 的 vim 命令修改配置造成系统故障承担责任。