vim操作命令指北
2021.04.27 Tue
vim 是从 vi 衍生出来的,兼容 vi 并且拥有一些新的特性。
vim 的三种基本模式
- 普通模式 移动光标,删除文本等,是 vim 启动后的默认模式
- 插入模式 向编辑文件插入文本
- 命令行模式 执行命令(😃(/)(?)(!)
移动
h 左 l 右 j 下 k 上
w 移动到下一个单词 b 移动到上一个单词
进入插入模式
- i 在当前光标处进行编辑
- a 在光标后插入编辑
- I 在行首插入 A 在行末插入
- o 在当前行后插入一个新行
- O 在当前行前插入一个新行
- cw 替换从光标所在位置后到一个单词结尾的字符
命令行模式下退出 vim
- :q! 强制退出,不保存 :q 退出
- :wq! 强制保存并退出
- :w<文件路径> 另存为 :saveas 文件路径 另存为
- :x 保存并退出 :wq保存并退出
普通模式下退出 vim
- Shift + zz
普通模式下删除 vim 文本信息
- x 删除游标所在的字符(Delete 同)
- X 删除游标所在的前一个字符
- dd 删除整行(ndd 删除 n 行)
- dw 删除一个单词
- d$或 D 删除至行尾
- d^ 删除至行首
- dG 删除至文档结尾处
- d1G 删除文档至文档首部
vim 重复命令
在普通模式下,.(小数点)表示重复上一次的命令操作
在命令前面添加数字 N,表示重复命令的次数
- 10x 删除 10 个连续字符
- 3dd 删除 3 行文本
- d5w 删除连续 5 个单词
游标的快速跳转
在命令行里输入set nu以显示行号
- 行间跳转
nG 或 ngg 游标移动到第 n 行
gg 游标移动到第一行
G 或 Shift + g 移动到最后一行
Ctrl + o 快速回到上一次光标位置 - 行内跳转
w 到下一个单词的开头
e 到当前单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0 或^ 到行头 $ 到行尾
f<字母> 向后搜索字母并跳转到第一个匹配的位置
F<字母> 向前搜索字母并跳转到第一个匹配的位置
t<字母> 向后搜索字母并跳转到第一个匹配位置之前的一个字母
T<字母> 向前搜索字母并跳转到第一个匹配位置之后的一个字母
复制及粘贴文本
- yy 复制游标所在的整行
- y^或 y0 复制到行首,不包含光标所在字符
- y$ 复制到行尾,包含包括所在字符
- yw 复制一个单词(ynw 复制 n 个单词)
- yG 复制到文本末 y1G复制到文本开头
- p(小写) 粘贴至光标后 P(大写) 粘贴至光标前
字符的替换及撤销
- r+带替换字符 将游标所在字符替换为指定字母
- R 连续替换,直到按下 Esc
- cc 替换整行,即删除游标所在行,并进入插入模式
- cw 替换一个单词,即删除一个单词,并进入插入模式
- C(大写) 替换游标以后至行末
- ~ 反转游标所在字母大小写
- u 撤销一次操作({n}u 撤销 n 次操作)
- U(大写) 撤销当前行的所有修改
- Ctrl + r 撤销'撤销'的操作
缩进操作
- >> 整行向右缩进
- << 整行向左回退
- 在命令行输入set shiftwidth=n 可以设置缩进长度
- 命令行模式下输入ce 使光标所在行内容居中,同理还有 ri 和 le
快速查找
- 普通模式下输入 / 然后输入要查找的字符串,回车后就会进行查找。
- ? 与 / 功能相同,只不过 ? 是在当前位置向上查找而 / 是在当前位置向下查找
- 进入查找之后,n 是查找下一个内容,N 是查找上一个内容
- 命令行noh 然后回车即可取消搜索
高级查找
- 普通模式下输入 \* 寻找游标所在处的单词
- 普通模式下输入 \# 同上,但 \# 是向前(上)找,\* 则是向后(下)找
- 普通模式下输入 g\* 同 \* ,但部分符合该单词即可
- 普通模式下输入 g\# 同 \# ,但部分符合该单词即可