值此五四运动100周年之际,写篇文章纪念一下。
“要把所有的夜归还给星河,把所有的春光归还给疏疏篱落,把所有的慵慵沉迷与不前,归还给过去的我。明日之我,胸中有丘壑,立马振山河。”看了这两张图,千万别被劝退,我们平时用不了这么多命令,作为日常使用,我觉得掌握以下三点就足够了:
- 三种模式之间的切换
- 熟练使用复制粘贴指令
- 熟练保存和退出
就这些啦,很简单!
I 普通模式
1.1 游标移动
按键 | 说明 |
h | 左 |
j | 下 |
k | 上 |
l | 右 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
1.2 游标行间跳转
命令 | 说明 |
| 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号) |
| 游标移动到到第一行 |
| 到最后一行 |
小技巧:你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o
就可以回到你之前的位置。
1.3 行内跳转
命令 | 说明 |
| 到下一个单词的开头 |
| 到当前单词的结尾 |
| 到前一个单词的开头 |
| 到前一个单词的结尾 |
| 到行头 |
| 到行尾 |
| 向后搜索<字母>并跳转到第一个匹配的位置(非常实用) |
| 向前搜索<字母>并跳转到第一个匹配的位置 |
1.4 删除vim文本信息
命令 | 说明 |
x | 删除游标所在的字符 |
X | 删除游标所在的前一个字符 |
delete | same as x |
dd | 删除整行 |
dw | 删除一个单词(不适合中文) |
D or d$ | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除至文档结尾处 |
d1G | 删至文档首部 |
-
2dd 表示一个删除2行
-
在普通模式下.(小数点)表示重复上一次的命令操作
- 在普通模式下,你还可以使用
dw
或者daw(delete a word)删除一个单词,所以你可以很容易的联想到dnw
(n替换为相应数字) 表示删除n个单词 -
~
将游标所在字母变成大写或小写
1.5 复制粘贴和剪切
- 普通模式中使用
y
复制
- 普通模式中,
yy
复制游标所在的整行(3yy
表示复制3行) - 普通模式中,
y^
复制至行首,或y0
。不含光标所在处字符。 - 普通模式中,
y$
复制至行尾。含光标所在处字符。 - 普通模式中,
yw
复制一个单词。 - 普通模式中,
y2w
复制两个单词。 - 普通模式中,
yG
复制至文本末。 - 普通模式中,
y1G
复制至文本开头。
- 普通模式中使用
p
粘贴
- 普通模式中,
p
(小写)代表粘贴至光标后(下) - 普通模式中,
P
(大写)代表粘贴至光标前(上)
其实前面讲得 dd
删除命令就是剪切,你每次 dd
删除文档内容后,便可以使用 p
来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:
ddp
,就这么简单,即实现了快速交换光标所在行与它下面的行
1.6 快速查找
- 普通模式下输入
/icmp
然后回车即可查找字符串 icmp
- 普通模式下输入
n
查找下一个 icmp
- 普通模式下输入
?tcp
向上查找字符串 tcp
- 普通模式下输入
N
查找上一个出现的 tcp
- 命令行模式下输入
noh
然后回车即可取消搜索
1.7 高级查找
- 普通模式下输入
\*
寻找游标所在处的单词 - 普通模式下输入
\#
同上,但 \#
是向前(上)找,\*
则是向后(下)找 - 普通模式下输入
g\*
同\*
,但部分符合该单词即可 - 普通模式下输入
g\#
同\#
,但部分符合该单词即可
以上查找n
,N
的继续查找命令依然可以用
1.8 缩进
- 普通模式下输入
>>
整行将向右缩进(使用,用于格式化代码超爽) - 普通模式下输入
<<
整行向左回退 - 普通模式下输入
:
进入命令行模式下对shiftwidth
值进行设置可以控制缩进和回退的字符数
shiftwidth命令
:set shiftwidth=10
1.9 替换
- 替换和Undo命令都是针对普通模式下的操作
命令 | 说明 |
| 将游标所在字母替换为指定字母 |
| 连续替换,直到按下 |
| 替换整行,即删除游标所在行,并进入插入模式 |
| 替换一个单词,即删除一个单词,并进入插入模式 |
| 替换游标以后至行末 |
| 反转游标所在字母大小写 |
| 撤销一次或n次操作 |
| 撤销当前行的所有修改 |
| redo,即撤销undo的操作 |
II 插入模式
命令 | 说明 |
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
O | 在当前行后插入一个新行 |
o | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
III 命令行模式
3.1 退出
命令 | 说明 |
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w <文件路径> | 另存为 |
:saveas 文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
普通模式下输入Shift+zz
即可保存退出vim
3.2 调整文本位置
- : ce == center
- : ri == right
- : le == left