vim基础
vim牛逼
1. vim的几种模式
- 正常模式:也就是常说的命令模式,此时键盘上所有键皆为命令
- 插入模式:可以输入文本
- 可视化模式:正常模式下按v可进入,用来选择文本,V进入可视行模式,ctrl+v进入可视块模式
- 替换模式:正常模式下按R进入
2. 文件操作
3. 移动操作
1. 上下左右移动
命令 | 功能 |
---|---|
h或退格 | 将光标向左移动一个字符 |
l或空格 | 将光标向右移动一个字符 |
j | 将光标下移一行 |
k | 将光标上移一行 |
+或enter | 将光标移动到下一行第一个非空白字符 |
- | 将光标移动到上一行第一个非空白字符 |
w | 前移一个单词,将光标停在下一个单词的开头 |
W | 前移一个单词,但忽略一些标点 |
e | 前移一个单词,将光标停在下一个单词的结尾 |
E | 前移一个单词到结尾,如果结尾有标点,则移动到标点 |
b | 后退一个单词,光标停在上一个单词的开头 |
B | 后退一个单词到开头,但忽略一些标点 |
ge | 后退一个单词,将光标停在上一个单词结尾 |
gE | 后退一个单词到结尾,忽略标点 |
以上命令都可以配合n使用,比如上移3行用:3k
2. 大范围移动
命令 | 功能 |
---|---|
0 | 移动到行首 |
g0 | 移动到当前行行首 |
^ | 移动到行首第一个非空白字符处 |
g^ | 同^ |
nG | 移动到第n行 |
:n | 移动到第n行 |
$ | 移动到行尾 |
H | 移动到当前屏幕最顶一行 |
M | 移动到当前屏幕中间一行 |
L | 移动到当前屏幕最低一行 |
gg | 移动到文件头部 |
G | 移动到文件尾部 |
3. 屏幕滚动
命令 | 功能 |
---|---|
ctrl + y | 向上移动一行 |
ctrl + e | 向下移动一行 |
ctrl + u | 向上移动半屏 |
ctrl + d | 向下移动半屏 |
ctrl + b | 向上移动一屏 |
ctrl + f | 向下移动一屏 |
n% | 移动到文件n%位置 |
zz | 将当前行移动到屏幕中央 |
zt | 将当前行移动到屏幕顶端 |
Zb | 将当前行移动到屏幕底端 |
4. 插入文本
1. 基本插入
命令 | 功能 |
---|---|
i | 在光标前插入; 一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。 这在插入分割线时非常有用,如30i+ |
I | 在当前行第一个非空字符前插入 |
gI | 在当前行第一列插入 |
a | 在光标后插入 |
A | 在当前行最后插入 |
o | 在下面新建一行插入 |
O | 在上面新建一行插入 |
:r filename | 在当前位置插入另一个文件的内容 |
:[n]r filename | 在第n行插入另一个文件的内容 |
:r !date | 在光标处插入当前日期与时间(或者是normal模式下输入!!date) |
2. 改写插入
命令 | 功能 |
---|---|
c[n]w | 改写光标后1(n)个词 |
c[n]l | 改写光标后n个字母 |
c[n]h | 改写光标前n个字母 |
[n]cc | 修改当前[n]行 |
[n]s | 以输入的文本替代光标之后1(n)个字符,相当于c[n]l |
[n]S | 删除指定数目的行,并以所输入文本代替之 |