#Normal模式
Normal模式通称一般模式,是切换到其他两个模式的唯一入口
##退出vim
一般模式下,键入ZZ
,注意是大写。
如果文件未改动,则直接退出
如果文件被改动,则保存退出
##模式切换 ###进入编辑模式
描述 | |
---|---|
A | 在光标所在行的行尾开始插入文本(Append) |
a | 在光标的下一位开始插入文本 |
i | 在光标处开始插入文本(Instert) |
O | 在光标所在行的上一行,插入新行开始编辑文本 |
o | 在光标所在行的下一行,插入新行开始编辑文本 |
R | 替换模式,从光标所指处开始替换文本,不是逐字符 |
r | 也具有替换功能,不同之处是只能替换光标所指处的那一个字符 |
###回到一般模式
按一下ESC即可
###撤销恢复
undo和redo命令分别为u
和Ctrl+r
大写字母U
可以一次性撤销该行的所有变动
因为
r
具有替换的功能,所以redo要加一个Ctrl。
##光标移动 重点操作
左 | 下 | 上 | 右 |
---|---|---|---|
h | j | k | j |
这四个方向键都支持和数字组合使用,比如: |
30 j
可向下移动30行,30是相对行数。不是移动到第30行。 ###向下移动n行 除了使用数字+j,还有快捷的方式是数字+回车,比如
30 <Enter>
###向右移动n个字符 除了使用数字+l,还有快捷的方式是数字+空格,比如
10 <Space>
###移动到第n行
- nG
n为要移动的行号 ###移至首行:
- gg
- 1G
###移至尾行 G ###移动到行首
- 功能键
<Home>
- 数字键0
###移动到行尾
- 功能键
<End>
$
按键为Shift-4
###%跳转到配对括号 ###跳回到上一次光标位置
- ``(反引号两次,可来回切换)
<Ctrl>-o
:跳回上一次光标位置<Ctril>-i
:在<Ctrl>-o
之后使用,撤销跳回
比如我在第5行,敲下gg来到首行,此时按下
<ctrl>
+o可以回到第5行,再次按下<Ctrl>+i
可再次回到首行。
而敲两次**``**,则可代替这两个组合键,在首行和第5行直接来回跳跃。
###跳转到编辑过的位置
- g, 顺序跳转回编辑过的位置
- g; 逆序跳转回编辑过的位置
###跳转到段落首、段落尾
- { 段落首,如果段落上面有空行则跳到空行开头
- } 段落尾最后一个字符处,如果段落后面有空行,则跳到空行开头
##文本处理 ###剪切与删除 vim中所有的删除其实都是剪切,命令为:
- x
- d
- c
####x 删除单个字符,右边的文本左移一个字符 ####d d命令可以理解为d+一个移动命令。移动命令能移到哪里,就能删到哪里!!
常用命令 | 描述 |
---|---|
dd | 剪切当前行,下一行向上移动 |
de | !剪切光标之后单词的剩余部分 |
dw | 剪切光标之后单词的剩余部分 |
d$ | 剪切光标之后该行的剩余部分 |
dH | 剪切光标所在行到屏幕顶行之间全部行 |
dL | 剪切光标所在行到屏幕底行之间全部行 |
D | 同d$ |
dw和de的区别是:dw会把两个单词间的空格也删掉,而de不会
数字n+dd可以剪切n行,从光标所在行向下算起
####c c功能和d相同,区别在于完成剪切后进入INSERT模式 cc功能同dd,区别在于完成剪切后进入INSERT模式
每行删除第一个字符
:%s/^.//g
###复制 yy
同理可以使用数字n+yy表示复制n行 ###粘贴 粘贴都是在新行粘贴,不是覆盖粘贴
- p 粘贴到光标所在行下一行
- P 粘贴到光标所在行上一行
##重复上一次对文本进行的操作
用.