2.vim是什么?
Vim——编辑器之神
Vim的核心设计思想:让手指始终保持在键盘的核心区域,就能完成所有编辑操作
3.3种工作模式
1.命令模式:定位、翻页、复制、粘贴、删除
2.编辑模式
3.命令行模式
命令 |
英文 |
功能 |
---|---|---|
w |
write |
保存 |
q |
quit |
退出,如果没有保存,不允许退出 |
q! |
quit |
强制退出,不保存退出 |
wq |
write & quit |
保存并退出 |
x |
保存并退出 |
4.常用命令
路线图
1.重复次数
在命令模式下,先输入一个数字,在跟上一个命令,可以让命令重复执行指定次数
2.移动和选择
1)vim之所以快,关键在于能够快速定位到要编辑的命令行
2)移动命令能够和编辑操作 组合使用
3.编辑命令
删除、复制、粘贴、替换、缩排
4.撤销和重复
5.查找替换
6.编辑
4.1移动(基本)
熟练使用vim,首先应䧥怎么在命令模式下快速移动光标
编辑操作命令能够和移动命令一起使用
1)上下左右
hjkl
2)行内移动
命令 |
英文 |
功能 |
---|---|---|
w |
word |
向后移动一个单词 |
b |
back |
向前移动一个单词 |
0 |
行首 |
|
^ |
行首,第一个不是空白字符的位置 |
|
$ |
行尾 |
3)行数移动
命令 |
英文 |
功能 |
---|---|---|
gg |
go |
文件顶部 |
G |
go |
文件末尾 |
数字gg |
移动到数字对应行数 |
|
数字G |
移动到数字对应行数 |
|
:数字 |
移动到数字对应行数 |
4)屏幕移动
命令 |
英文 |
功能 |
---|---|---|
Ctrl + b |
back |
向上翻页 |
Ctrl + f |
forward |
向下翻页 |
H |
head |
屏幕顶部 |
M |
middle |
屏幕中间 |
L |
low |
屏幕底部 |
4.2移动(程序员常用)
1)段落移动
命令 |
功能 |
---|---|
{ |
上一段 |
} |
下一段 |
注:vim中使用空行来区分段落
2)括号切换
命令 |
功能 |
---|---|
% |
括号匹配及切换 |
3)标记
命令 |
英文 |
功能 |
---|---|---|
mx |
mark |
添加标记x,x是a-x或者A-Z之间的任意一个字符 |
'x ('是单引号) |
直接定位到标记x所在位置 |
主:添加了标记的行被删除,标记同时被删除;添加相同标记后,之前的标记会被替换掉
4.3选中文本(可视模式)
命令 |
模式 |
功能 |
---|---|---|
v |
可视模式 |
从光标位置开始按正常模式选择文本 |
V |
可视行模式 |
选中光标经过的完整行 |
Ctrl + v |
可视块模式 |
垂直方向选中文本 |
注:可视模式下,可以和移动命令连用,如:ggVG能够选中所有内容
4.4撤销和恢复
命令 |
英文 |
功能 |
---|---|---|
u |
undo |
撤销上次命令 |
Ctrl + r |
redo |
恢复撤销的命令 |
4.5删除文本
命令 |
英文 |
功能 |
---|---|---|
x |
cut |
删除光标所在字符 |
d(移动命令) |
delete |
删除移动命令对应的内容 |
dd |
delete |
删除光标所在行,可以ndd剪切多行 |
D |
delete |
删除至行尾 |
删除命令可以和移动命令连用,以下是常见的组合命令
dw,d0,d},ndd,d代码行G,d'a
4.6复制和粘贴
命令 |
英文 |
功能 |
---|---|---|
y(移动命令) |
copy |
复制 |
yy |
copy |
复制一行,nyy复制多行 |
p |
paste |
粘贴 |
4.7替换
命令 |
英文 |
功能 |
模式 |
---|---|---|---|
r |
replace |
替换当前字符 |
命令模式 |
R |
replace |
替换当前行光标后的字符 |
替换模式 |
R可以进入替换模式,替换完成后,ESC回到命令模式
4.8缩排和重复执行
命令 |
功能 |
---|---|
>> |
向右添加缩进(添加4个空格) |
<< |
向左减少缩进(减少4个空格) |
. |
重复上次命令 |
可视模式下,缩进命令只需要使用>或<
4.9查找
常规查找
命令 |
功能 |
---|---|
/str |
查找str |
n:查找下一个
N:查找上一个
单词快速匹配(光标所在位置为一个单词)
命令 |
功能 |
---|---|
* |
向前查找当前光标所在单词 |
# |
向后查找当前光标所在单词 |
在开发中,通过单词快速匹配,可以快速看到这个单词在其他什么位置使用过
4.10查找并替换
命令格式为(:%s ///g)
1)全局替换
:%s /old/new/g
2)可视区域替换
-
先使用可视模式选中替换文字的范围
-
:s /old/new/g
3)确认替换
:%s /old/new/gc
4.11插入命令
命令 |
英文 |
功能 |
---|---|---|
i |
insert |
在当前字符前插入 |
I |
insert |
在当前行头插入 |
a |
append |
在当前字符后追加 |
A |
append |
在当前行尾追加 |
o |
open a new line |
在当前行下插入空行 |
O |
open a new line |
在当前行上插入空行 |
演练1:编辑命令和数字的连用
如何快速连续输入N个字符?
比如:******************(10个*)
1)输入10,表示重复10次
2)i进入编辑模式
3)输入*,也就是重复的文字
4)ESC回到普通模式,然后vim会将2,3步重复10次。
5.分屏命令
5.1命令行模式扩展
命令 |
英文 |
功能 |
---|---|---|
:e . |
edit |
会打开内置的文件浏览器,浏览当前目录下的文件 |
:n |
new |
新建文件 |
:w |
write |
另存为,仍然编辑当前文件,并不会切换文件 |
5.2分屏命令
命令 |
英文 |
功能 |
---|---|---|
:sp [文件名] |
split |
横向增加分屏 |
:vsp [文件名] |
vertical split |
纵向增加分屏 |
1)切换分屏窗口
分屏命令都是基于CTRL + W这个快捷键的,W即Window。
然后再按下面命令
命令 |
英文 |
功能 |
---|---|---|
w |
window |
切换到下一个窗口 |
r |
reverse |
互换窗口 |
c |
close |
关闭当前窗口,但是不能关闭最后一个窗口 |
q |
quit |
退出当前窗口,如果是最后一个窗口,则关闭vim |
o |
other |
关闭其他窗口 |