1 模式
Vim具有6种基本模式和5种派生模式。
1.1 6种基本模式
- 普通模式(Normal mode) - 默认模式
- 插入模式(Insert mode)
- 可视模式(Visual mode)
- 选择模式(Select mode)
- 命令行模式(Command line mode)
- Ex模式(Ex mode) - 一次执行多条命令。
1.2 普通-插入
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符
Esc 或 Ctrl+[ 退出
2 操作
通过 vim <filename> 命令直接打开文件,或 vim 后,在命令行模式输入 :e <filename> 打开文件。
2.1 普通模式下
2.1.1 移动游标
- h 左
- l 右(小写L)
- j 下
- k 上
- w 移动到下一个单词
- b 移动到上一个单词
nG(n Shift+g) 游标移动到第 n 行
gg 游标移动到到第一行
G(Shift+g) 到最后一行
Ctrl+o 快速回到上一次(跳转前)光标所在位置
w 到下一个单词的开头
e 到下一个单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0或^ 到行头
$ 到行尾
2.1.2 删除
- x 删除游标所在的字符
- X 删除游标所在前一个字符
- Delete 同x
- dd 删除整行
- dw 删除一个单词(不适用中文)
- d$或D 删除至行尾
- d^ 删除至行首
- dG 删除到文档结尾处
- d1G 删至文档首部
2.1.3 搜索
- f<字母> 向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
- F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
- t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
- T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)
- \*寻找游标所在处的单词
- \#同上,但 \* 是向前(上)找,#则是向后(下)找
- g\*同\* ,但部分符合该单词即可
- g\#同\# ,但部分符合该单词即可
2.1.4 编辑
y复制
- yy复制游标所在的整行(3yy表示复制3行)
- y^ 复制至行首,或y0。不含光标所在处字符。
- y$ 复制至行尾。含光所在处字符。
- yw 复制一个单词。
- y2w 复制两个单词。
- yG 复制至文本末。
- y1G 复制至文本开头。
p粘贴
- p(小写)代表粘贴至光标后(下)
- P(大写)代表粘贴至光标前(上)
剪切
- dd删除命令就是剪切,你每次dd删除文档内容后,便可以使用p来粘贴
ddp,就这么简单,即实现了快速交换光标所在行与它下面的行
替换
- r+<待替换字母> 将游标所在字母替换为指定字母
- R 连续替换,直到按下Esc
- cc 替换整行,即删除游标所在行,并进入插入模式
- cw 替换一个单词,即删除一个单词,并进入插入模式
- C(大写) 替换游标以后至行末
缩进
- >> 整行将向右缩进(使用,用于格式化代码超爽)
- << 整行向左回退
- :set shiftwidth=10 - 设置缩进和回退的字符数(:set shiftwidth? 获取当前值)
查找
- ?与/ - 查找,?是向上而/是向下查找。
进入查找之后,输入n和N可以继续查找 n表示继续查找,N反向查找
2.1.3 杂
- 输入.(小数点) - 重复执行上一次命令
- N<command> - N表示重复后面的次数
- 使用dw或者daw(delete a word)删除一个单词,dnw(n替换为相应数字)表示删除n个单词
- :set nu 显示行号
- ~ 反转游标所在字母大小写
- u{n} 撤销一次或n次操作
- U(大写) 撤销当前行的所有修改
- Ctrl+r redo,即撤销undo的操作
命令模式下
2.2 命令模式下
2.2.1 退出
- :q! 强制退出,不保存
- :q 退出
- :wq! 强制保存并退出
- :w <filename> 另存为
- :saveas <filename> 另存为
- :x 保存并退出
- :wq 保存并退出
2.2.2 布局
- :ce(center) 命令使本行内容居中
- :ri(right) 命令使本行文本靠右
- :ri(right) 命令使本行文本靠右