Linux Vim 文本编辑器基础指南

Linux Vim 文本编辑器基础指南

日期:2026-03-25

标签:Linux, Vim, 编辑器, 命令


一、Vim 三种模式

复制代码
┌─────────────┐     i      ┌─────────────┐     Esc    ┌─────────────┐
│   命令模式   │ ─────────→ │   编辑模式   │ ─────────→ │   命令模式   │
│   (Normal)  │            │   (Insert)  │            │   (Normal)  │
└─────────────┘            └─────────────┘            └──────┬──────┘
       ↑                                                      │
       └──────────────────────────────────────────────────────┘
                            :
                      ┌─────────────┐
                      │   底行模式   │
                      │   (Command) │
                      └─────────────┘

二、模式切换

shift+字符或字母键(最终结果)

操作 命令 说明

命令模式 → 编辑模式 i 在光标前插入(insert) shift+i(I)首行插入

编辑模式 → 命令模式 Esc 退出编辑

命令模式 → 底行模式 shift+;(:) 输入命令

底行模式 → 命令模式 Esc 或 执行完自动返回 -


三、命令模式操作

3.1 光标定位(快速移动)

命令 功能 记忆技巧
gg 定位到文件第一行 good game,回到开头
G (Shift+g) 定位到文件最后一行 大G = 大结尾
nG 跳转到第 n 行 如 46G 跳到46行
$ (Shift+4) 定位到当前行尾 像绳子末端
^ (Shift+6) 定位到当前行首 ^ 像小帽子在行首
w 按单词向后移动 word,下一个单词
b 按单词向前移动 back,回退
hjkl 左下上右移动 h左l右,j跳向下,k王在上

hjkl 记忆法:h 在最左边,l 在最右边;j 像 jump 向下跳;k 像 king(国王)高高在上

3.2 复制粘贴

命令 功能
yy 复制光标所在行
nyy 复制光标所在行及下方 n-1 行(如 5yy 复制5行)
p 粘贴到光标下一行
np 粘贴 n 次

3.3 剪切删除

命令 功能 说明
dd 剪切(删除)当前行 不粘贴就是删除
ndd 剪切 n 行 如 3dd 删除3行
dd + p 真正的剪切 先删再贴,实现剪切
x 删除光标后一个字符
nx 删除光标后 n 个字符

3.4 撤销与恢复

命令 功能
u 撤销(undo)
Ctrl + r 恢复撤销(redo)

3.5 其他实用操作

命令 功能 说明
~ (Shift+) 大小写转换 间断按:单个字符转换;按住不动:整行快速转换 R(Shift+r) 批量化替换 进入替换模式,直接覆盖原有字符 .` 重复上一步操作 非常高效!


四、编辑模式

进入方式:在命令模式按 i

就是正常的文本输入,按 Esc 回到命令模式


五、底行模式(:)

5.1 常用命令

命令 功能
:w 保存(write)
:q 退出(quit)
:wq:x 保存并退出
:q! 强制退出不保存
:set nu 显示行号
:set nonu 关闭行号
:n 跳转到第 n 行(如 :46
:/关键字 搜索关键字(如 :/hello

5.2 多文件编辑

命令 功能
:vs 文件名 垂直分屏打开文件(vertical split)
:sp 文件名 水平分屏打开文件(split)
Ctrl + w + w 在窗口间切换
Ctrl + w + h/j/k/l 向左右上下切换窗口

多文件操作:光标在哪个窗口,就操作哪个文件,可以跨文件复制粘贴


六、Vim 配置文件

6.1 配置文件位置

用户 配置文件路径 说明

普通用户 ~/.vimrc 每个用户独立配置

root 用户 /etc/vimrc~/.vimrc 系统级或用户级

注意:一个用户一个配置,相互不会影响!

6.2 快速创建配置

bash 复制代码
# 普通用户
vim ~/.vimrc

# root 用户
sudo vim /etc/vimrc
# 或
vim ~/.vimrc

6.3 推荐基础配置

vim 复制代码
" 显示行号
set nu

" 语法高亮
syntax on

" 自动缩进
set autoindent
set tabstop=4
set shiftwidth=4

" 启用鼠标
set mouse=a

" 显示当前行
set cursorline

" 搜索高亮
set hlsearch

七、速查表

复制代码
┌─────────────────────────────────────────┐
│              光标移动                    │
├─────────────────────────────────────────┤
│  gg      →  文件开头                     │
│  G       →  文件结尾                     │
│  nG      →  第 n 行                      │
│  $       →  行尾                         │
│  ^       →  行首                         │
│  w/b     →  按单词移动                   │
│  hjkl    →  左下上右                     │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│              编辑操作                    │
├─────────────────────────────────────────┤
│  i       →  进入编辑模式                 │
│  yy      →  复制行                       │
│  p       →  粘贴                         │
│  dd      →  剪切/删除行                  │
│  u       →  撤销                         │
│  Ctrl+r  →  恢复                         │
│  .       →  重复上一步                   │
└─────────────────────────────────────────┘

┌─────────────────────────────────────────┐
│              底行命令                    │
├─────────────────────────────────────────┤
│  :w      →  保存                         │
│  :q      →  退出                         │
│  :wq     →  保存退出                     │
│  :q!     →  强制退出                     │
│  :set nu →  显示行号                     │
│  :vs     →  垂直分屏                     │
└─────────────────────────────────────────┘

八、学习建议

  1. 先记住 iEsc:wq 三个命令 ------ 能编辑能保存
  2. 熟练 hjkl 移动 ------ 不用方向键是 vim 的灵魂
  3. 掌握 yypdd ------ 高效编辑的核心
  4. 多用 . 重复操作 ------ 提升效率的秘诀

Vim 哲学:保持手指在键盘中央,减少移动,高效编辑!

相关推荐
无忧智库2 小时前
制造业的中枢神经:MES系统如何驱动智慧工厂从“自动化”迈向“自主化”(PPT)
运维·自动化
子木HAPPY阳VIP2 小时前
Ubuntu 22.04 换源+Docker安装+镜像加速
linux·ubuntu·docker
Johnstons2 小时前
多节点网络流量对比分析:优化网络性能的关键策略
运维·网络·网络流量监控·网络流量分析
Elastic 中国社区官方博客2 小时前
Observabilty:自动化错误分诊 - 从被动到自主
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
ShineWinsu2 小时前
对于Linux:基础开发工具(vim、gcc/g++)的介绍
linux·运维·服务器·c++·面试·编辑器·vim
袖手蹲2 小时前
Arduino UNO Q 板载 Nanobot 自动化编程指南之四
运维·自动化
AI-小柒2 小时前
DataEyes聚合平台新API接入实战指南:从0到1打通实时数据链路
大数据·运维·开发语言·人工智能·python·自动化·lua
桌面运维家2 小时前
DNS负载均衡:架构、优化与故障排查指南
运维·架构·负载均衡
feng68_2 小时前
MySQL集群高可用-MHA
linux·运维·数据库·mysql·集群技术