vi命令
1. 移动光标
- k j h l 上下左右
- w 下一个单词开始
- 2w 下下个单词
- e 这个单词末尾
- 3e 第三个单词末尾
- $ 行尾
- ^或0 行首
- Ctrl-g 显示当前位置
- G 文件末尾
- gg 文件开始
- 123G 第123行
- Ctrl-o 回到前一个位置
- ctrl-i 回到后一个位置
2. 插入
- i 在当前字符前插入
- a 在当前字符后插入
- A 在行尾插入
- o 当前行后插入一行
- O 当前行前插入一行
<ESC> 退回普通模式
3. 删除
- x 删除一个字符
- dw 删除到下个单词开始
- d2w 删除两个单词
- de 删除到这个单词末尾
- d$ 删除到行尾
- dd 删除整行
- 2dd 删除2行
4. 修改
- r 替换一个字符
- ce或cw 替换到单词末尾
- c$ 替换到行尾
- c2w 替换2个单词
5. 查找
- / 向后查找
- ? 向前查找
- n 继续查找
- N 反向继续查找
- % 查找匹配的括号
- :s/old/new 将这一行中的一个old字符串替换成new。
- :s/old/new/g 将这一行中所有old字符串替换成new。
- :%s/old/new/g 将文件内所有old字符串替换成new。
- :%s/old/new/gc 将文件内所有old字符串替换成new,每次替换前提示确认。
- :#,#s/old/new/g 将文件中某两行间的old字符串替换成new。
6. 恢复
- u undo
- U 整行修改undo
- Ctrl-R redo
- p 插入删除的内容
- v 选择一部分文本
7. 文件
- :q! 不保存退出
- :wq 保存退出
- :w newfile 另存为newfile文件(或者选择的部分写到新文件)
- :r file 将文件file内容插入到当前位置
- :r !ls 将ls命令的执行结果插入到当前位置
- :!make 执行外部命令make