三种常用模式的切换
- vim启动属于普通模式,按ESC或Ctrl+[即可进入普通模式,
- 普通模式中按i(插入)或a(附加)进入插入模式,编辑结束后
进入vim
- 如果直接输入vim也可以打开vim编辑器,但是不会打开任何内容
- 输入如下命令,可以打开用vim模式打开后门指定的文件,如果该文件不存在会自动创建为new file
vim test.txt
- 输入如下命令,同样可以打开相应的文件
:e<filepath>
插入模式
在ESC之后进入普通模式,该模式下,可以通过如下按键控制光标的移动插入
命令 | 说明 |
---|---|
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
o | 在当前行后插入一个新行 |
O | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
重复命令
- 在普通模式下,.(小数点)表示重复上一次的命令操作
- 普通模式下输入x,删除第一个字符,输入.会再次删除一个字符,除此之外也可以重复dd的删除操作
- 执行指定次数相同的命令:
N<command>
练习:
10x//删除10个连续字符
3dd//删除3行文本
复制与粘贴
以下命令在普通模式中使用
y //复制
yy //复制游标所在的行,3yy表示复制3行
y^/y0 //复制到行首,y0不含光标所在字符
y$ //复制到行尾,含光标位置
yw //复制一个单词
y2w //复制两个单词
yG //复制至文本末
y1G //复制至文本开头
p //粘贴(后)
P //粘贴到光标前
ddp //交换上下行
退出
命令模式下退出 vim
命令 | 说明 |
---|---|
:q! | 强制退出,不保存 |
:q | 退出 |
:wq! | 强制保存并退出 |
:w <文件路径> | 另存为 |
:saveas 文件路径 | 另存为 |
:x | 保存并退出 |
:wq | 保存并退出 |
普通模式下的退出
普通模式下按下 Shift+zz
即可保存退出 vim。
删除
命令 | 说明 |
---|---|
x | 删除游标所在的字符 |
X | 删除游标所在前一个字符 |
Delete | 同 x |
dd | 删除整行 |
dw | 删除一个单词(不适用中文) |
d$ 或D | 删除至行尾 |
d^ | 删除至行首 |
dG | 删除到文档结尾处 |
d1G | 删至文档首部 |
- 除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:
2dd
表示一次删除 2 行。
替换与撤销
替换和撤销
替换和 Undo 命令都是针对普通模式下的操作:
命令 | 说明 |
---|---|
r +<待替换字母> | 将游标所在字母替换为指定字母 |
R | 连续替换,直到按下 Esc |
cc | 替换整行,即删除游标所在行,并进入插入模式 |
cw | 替换一个单词,即删除一个单词,并进入插入模式 |
C (大写) | 替换游标以后至行末 |
~ | 反转游标所在字母大小写 |
{n}u | 撤销一次或 n 次操作 |
U (大写) | 撤销当前行的所有修改 |
Ctrl+r | redo,即撤销 undo 的操作 |
缩进
- 普通模式下输入
15G
,跳转到 15 行 - 普通模式下输入
>>
整行将向右缩进(使用,用于格式化代码超爽) - 普通模式下输入
<<
整行向左回退 - 普通模式下输入
:
进入命令行模式下对shiftwidth
值进行设置可以控制缩进和回退的字符数
shiftwidth 命令
shiftwidth
命令是指上一节 >>
命令产生的缩进(可以简写成sw
),普通模式下输入 :
进入命令行模式下对 shiftwidth
值进行设置可以控制缩进和回退的字符数。
:set shiftwidth?
:set shiftwidth=10
调整文本位置
命令行模式下输入 :ce
(center)命令使本行内容居中:
:ce
命令行模式下输入 :ri
(right)命令使本行文本靠右:
:ri
命令行模式下输入 le
(left)命令使本行内容靠左:
:le
查找
快速查找
普通模式下输入 /
然后键入需要查找的字符串,按回车后就会进行查找。?
与/
功能相同,只不过 ?
是向上而 /
是向下查找。
进入查找之后,输入 n
和 N
可以继续查找。n
是查找下一个内容,N
查找上一个内容。
高级查找
- 普通模式下输入
\*
寻找游标所在处的单词 - 普通模式下输入
\#
同上,但\#
是向前(上)找,\*
则是向后(下)找 - 普通模式下输入
g\*
同\*
,但部分符合该单词即可 - 普通模式下输入
g\#
同\#
,但部分符合该单词即可
以上查找 n
,N
的继续查找命令依然可以用。