文章目录
三、vim
vim是一个终端的超强编辑器。无需鼠标就可以实现操作。
1.vim的三个模式
vim有三个模式:一般命令模式、编辑模式、命令行模式。
- 一般命令模式
命令输入方式,按不同的字符实现不同的命令
- 编辑模式
在命令行模式下按i
进入编辑模式,对各种文本、cpp文件、py文件等进行编辑。
- 命令行模式
在一般命令模式下按:?/
中的任意一个进入命令行模式,可以查找、替换、保存、退出编辑器等。
2.常见命令
(1)模式的切换
- 进入编辑模式:一般命令模式下按:
i
- 进入一般命令模式:其他两种模式下
ESC
- 进入命令行模式:在一般命令模式下
:
或?
或/
(2)光标的移动
-
h j k l
分别是对光标进行左、下、上、右的移动。 -
n<space>
:光标向右移动n个空格 -
0
:移动光标到本行开头 -
$
:移动光标到本行末尾 -
G
:光标移动到最后一行 -
:n
或n
+G
:光标移动到第n行
注意:
G
=Shift
+g
gg
:光标移动到第一行n<Enter>
:光标向下移动n行
(3)字符串查找
-
/word
:从光标位置往下找到第一个"word"
-
?word
:从光标位置往上找到第一个"word"
-
n
:重复执行上一个查找操作,即递归操作 -
N
:反向重复执行上一个查找操作
(4)字符替换
- 基本命令为:
:n1,n2s/word1/word2/g
含义为:n1
与n2
为数字,在第n1
行与n2
行之间寻找word1
这个字符串,并将该字符串替换为word2
当然,也可以全文替换,只需要写为::1,$/s/word1/word2/g
即可
$
表示最后一行
- 替换前确认:
:1,$/s/word1/word2/gc
(g改为gc)
(5)去除高亮
- 命令:
:noh
(6)文本命令
-
选中文本:
v
-
取消选中:两次
ESC
-
删除选中的文本:
d
-
删除当前行:
dd
删除当前行时已经复制了该行,可实现剪切。
-
复制选中的文本:
y
-
复制当前行:
yy
-
将复制的数据在光标的下一行/下一个位置粘贴:
p
如果复制的是一行,则在光标的下一行粘贴;否则在下一个位置粘贴。
(7)撤销与取消撤销
- 撤销:
u
- 取消撤销:
Ctrl
+r
(8)文本整体移动
选中以后:
- 整体右移:
Shift
+>
- 整体左移:
Shift
+<
移动一个tab的距离。
(9)文件操作
- 保存:
:w
- 强制保存:
:w!
- 退出:
:q
- 强制退出:
:q!
- 保存并退出:
:wq
(10)自动补全
- 取消自动补全:
:set paste
- 开启自动补全:
:set nopaste
(11)行号设置
- 开启行号:
:set nu
- 隐藏行号:
:set nonu
(12)全文代码格式化
- 命令:
gg=G
(13)异常处理
当vim卡死时候:
- 命令:
Ctrl
+q
可以取消正在执行的命令
[异常处理]
每次用vim编辑文件时,会自动创建一个.filename.swp
的临时文件。
如果打开某个文件时,该文件的swp
文件已存在,则会报错。此时解决办法有两种:
(1) 找到正在打开该文件的程序,并退出
(2) 直接删掉该swp
文件即可