目录
- vim三种模式
- vim一般模式
- vim编辑模式
- vim命令模式
- 多文件编辑
- 异常处理
- 其他参考
1,vim三种模式
2.1 一般模式(Normal Mode)
- 打开文档后的默认模式
- 只能从一般模式切换到其他模式
- 从其他模式按 Esc 返回一般模式
1.2 编辑模式(Insert Mode)
- 从一般模式按 i、I、o、O、a、A、r、R 进入
- 可直接编辑文本
- 按 Esc 返回一般模式
1.3 命令模式(Command Mode)
- 从一般模式按 :、/、? 进入
- 可搜索、保存、退出等
- 按 Esc 返回一般模式
2, vim一般模式
2.1 移动光标
基本移动
- k / ↑:向上
- j / ↓:向下
- h / ←:向左
- l / →:向右
- 30k 或 30↑:向上移动 30 行
翻页
- Ctrl + f:向下翻页
- Ctrl + b:向上翻页
- Ctrl + d:向下半页
- Ctrl + u:向上半页
行内移动
- +:下一行行首
- -:上一行行首
- 0 / Home:行首
- $ / End:行尾
- n + 空格:向后移动 n 个字符(如 20 + 空格)
屏幕位置
- H:屏幕顶部
- M:屏幕中间
- L:屏幕底部
文档位置
- G:文档最后一行
- nG:跳转到第 n 行
- gg:第一行
- n + Enter:向下移动 n 行
2.2 搜索和替换
搜索
- /word:向下搜索关键字
- ?word:向上搜索
- n:重复上一个搜索(同方向)
- N:反向重复搜索
替换
- :n1,n2s/word1/word2/g:将第 n1 到 n2 行的 word1 替换为 word2
- :1,$s/word1/word2/gc:从第一行到最后一行替换 word1 为 word2,并确认
- :%s/oldword/newword/g:全文替换
2.3 删除、复制和粘贴
删除
- x:删除当前字符(相当于 Del)
- X:删除前一个字符(相当于 Backspace)
- nx:删除 n 个字符
- dd:删除当前行
- ndd:删除 n 行
- d1G:删除从光标到第一行
- dG:删除从光标到最后一行
- d$:删除从光标到行尾
- d0:删除从光标到行首
复制
- yy:复制当前行
- nyy:复制 n 行
- y1G:复制从光标到第一行
- yG:复制从光标到最后一行
- y0:复制从光标到行首
- y$:复制从光标到行尾
粘贴
- p:在光标下一行/下一个字符后粘贴
- P:在光标上一行/上一个字符前粘贴
其他操作
- J:将下一行合并到当前行
- u:撤销
- Ctrl + r:重做
- .:重复上一个动作
2.4 选择区块
选择模式
- v:字符选择模式(移动光标选择)
- V:行选择模式
- Ctrl + v:块选择模式(矩形选择)
选择后操作
- y:复制选中内容
- d:删除选中内容
- p:粘贴选中内容
3,vim编辑模式
进入编辑模式
从一般模式进入
- i:在光标处插入
- I:在行首(非空格处)插入
- a:在光标下一个字符处插入
- A:在行尾插入
- o:在下一行插入新行
- O:在上一行插入新行
- r:替换一个字符
- R:进入替换模式(替换多个字符)
退出编辑模式
- Esc:返回一般模式
4,vim命令模式
4.1 文件操作
保存和退出
需从一般模式进入
- :w:保存
- :w!:强制保存
- :q:退出
- :q!:强制退出(不保存)
- :wq:保存并退出
- ZZ:保存并退出(有修改才保存)
- :w [filename]:另存为
- :r [filename]:读取文件内容插入到当前位置
部分保存
- :n1,n2 w [filename]:将第 n1 到 n2 行保存到文件
系统命令
- :! command:执行系统命令(如 :! ls)
5,多文件编辑
切换文件
- :n:编辑下一个文件
- :N:编辑上一个文件
- :files:列出当前 vim 打开的所有文件
6,异常处理
非正常关闭后的处理
当 vim 非正常关闭后重新打开文件时,会出现暂存文件提示,选项如下:
- Open Read-Only:只读模式打开,不修改原文件
- Edit anyway:正常编辑,不加载临时文件
- Recover:加载临时文件内容
- Delete it:删除临时文件
- Quit:退出
- Abort:忽略并退出
7,其他参考
模式切换
- 一般模式 ←→ 编辑模式:i/I/o/O/a/A/r/R(进入),Esc(退出)
- 一般模式 → 命令模式:: / ?
- 命令模式 → 一般模式:Esc
常用组合
- gg=G:格式化整个文档
- :%s/\s+$//g:删除行尾空格
- :set paste:粘贴模式(避免自动缩进)
- :set nopaste:取消粘贴模式
提示
- 模式切换:记住 Esc 可返回一般模式
- 数字前缀:大多数命令前可加数字(如 5dd 删除 5 行)
- 撤销:u 可多次撤销
- 搜索:使用 / 和 ? 搜索,n 和 N 跳转
- 保存:编辑后记得 :w 或 :wq
网图参考