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 哲学:保持手指在键盘中央,减少移动,高效编辑!

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式