常用Vim命令
退出和保存
-
:q 退出
-
:w 保存
-
ZZ 或 :wq 或者 :x 退出保存
-
ZQ 或 q! 不保存退出
-
:w 文件名 另存为
编辑字符
-
x 删除当前光标下的字符
-
X 删除当前光标左边的字符
-
s 修改一个字符
-
i 在光标之前插入
-
a 在光标之后插入
编辑单词
- diw 删除光标所在单词,不包括空白字符
- daw 删除光标所在的单词,包括空白字符
- dw 从当前位置删除到下一个单词的词首
编辑行
- D 删除到行尾的内容
- C 修改到行尾的内容
- S 删除一整行,并进入插入模式
- dd 删除一行
- yy 复制一行
- o当前行下插入一空行
- O当前行上插入一空行
- A 在当前行尾插入
- I 在当前行首插入
撤销及重复
- u 撤销上一次行为
- Ctrl-r 重做(消除u的撤销操作)
编辑
- P 粘贴到光标之前
- p 粘贴到光标之后
- d 剪切
状态
- Ctrl-g 当前行消息
- g ctrl-g 字数统计
单词移动
- w 下一个单词的第一字符
- W 下一个长单词的第一个字符
- e 这一个单词最后字符
- E 这一个长单词最后字符
- b 这一个单词第一个字符
- B 这一个长单词第一个字符
- ge 前一个单词的最后一个字符
行移动
- 0 或 ^ 或 <Home> 到行首
- $ 或 <End> 到行尾
- gg 第一行
- G 最后一行
- XG 到第X行(X代表数字)
句移动
- ( 到句首
- ) 到句尾
段移动
- { 到段首
- } 到段尾
屏幕移动
- Ctrl-y 向上滚屏
- Ctrl-e 向下滚屏
- Ctrl-u 向上滚半屏
- Ctrl-d 向下滚动半屏
- Ctrl-b 向上滚动整个屏幕
- Ctrl-f 向下滚动整屏
跳转移动
- Ctrl-] 跳转到下一个主题
- Ctrl-o 跳回原来的位置
- f 跳到下一个字母x出现的位置
拆行
- zfap 折一段文本
- zf 创建折行
- zo 打开折行
- zc 关闭折叠
程序代码块操作
- [# 或者 ]# 用于#if-#ifdef结构跳转
- [[移动到代码块的开头
- ][ 移动到代码块的末尾
- [{ 跳到代码块的开头, 跳过平级代码块
- ]} 跳转带代码块末尾
- [/ 到注释开始的地方
- ]/ 到注释的末尾
- [| 查找标识符
- 退出并丢弃修改—>q!
- 删除当前光标所在字符—>x
- 进入插入模式—>i
- 当前光标所在位子添加字符–>a
- 保存并退出---->wq
- 输入 dw 可以从光标处删除至一个单词的末尾
- 输入 d$ 从当前光标删除到行末
- 许多改变文本的命令都由一个操作符和一个动作构成。
- w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。 - 在动作前输入数字会使它重复那么多次
- 输入 dd 可以删除整一个当前行
- 输入 u 来撤消最后执行的命令,输入 U 来撤消对整行的修改
- 输入 p 将最后一次删除的内容置入光标之后
- 输入 r 和一个字符替换光标所在位置的字符。
- 要改变文本直到一个单词的末尾,请输入 ce
- c [number] motion 更改类操作符可以与删除中使用的同样的动作配合使用
- 输入大写 G 可以使得当前光标直接跳转到文件最后一行
- 输入 gg 可以使得当前光标直接跳转到文件第一行。
- 输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。
- 输入 o 将在光标的下方打开新的一行并进入插入模式
- 输入大写的 R 可连续替换多个字符
- 使用操作符 y 复制文本,使用 p 粘贴文本
- b 移动光标到上一个单词
- 0 移动光标到本行最开头.
- ^ 移动光标到本行最开头的字符处.
- $ 移动光标到本行结尾处.
- H 移动光标到屏幕的首行.
- M 移动光标到屏幕的中间一行.
- L 移动光标到屏幕的尾行.