vim编辑器的三种工作模式及快捷键

时间:2024-04-02 08:58:20

vim编辑器

vim简介: Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 就是编辑文本写代码的

一、vim的三种工作模式

1 命令模式

控制光标移动,对文本进行复制、粘贴、删除等工作

用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符

例如:当用户输入 vim test 后进入命令模式,

按下字母i,此字母会被解释为命令,进入编辑模式(insert i)

类比word文档中,设置文章段落格式等命令,只不过vim中没有鼠标可以点,只好用命令代替了。

命令模式下常用的快捷键
(1)移动光标
gg 光标移动到文件开头
G 光标移动到文件末尾(怀疑G 是不是 game over 的缩写)
^ 光标移动到当前行的开头(^在正则表达式中匹配行首)
$ 光标移动到当前行的末尾(^在正则表达式中匹配行尾)
(2)删除
dd 删除当前行
ndd 删除n行
d$ 删除光标至行尾的位置
(3)复制粘贴
yy 复制当前行
p 将之前删除(dd)或复制(yy)过的数据粘贴到光标后面。
P 粘贴至当前行之前
(4)撤销
u 撤销一步
uu 撤销一步

强调一哈:这些快捷键必须在命令模式下使用

2 编辑模式

在命令模式下输入以下命令(aio)可以进入编辑模式

i 在当前光标前面插入数据(insert)
a 在当前光标后面插入数据(append attach)
o 在当前行后面插入空白行

3 末行模式(底线命令模式)

在命令模式下输入 : 即可进入末行模式,在冒号后面输入指令,即可实现特定的功能

(1)查找与替换
/ 在上往下的查找(n跳转至下一个匹配的关键词,N跳转至上一个匹配的关键词)
在下往上的查找(n跳转至上一个匹配的关键词,N跳转至下一个匹配的关键词(感觉像物理里面的,n是与命令同向的)

假如当前在编辑模式下,实现查早与替换功能:

注意:光标当前的位置,:和 s 之间有一个空格。

g代表替换一行的全部

%代表搜索整个文本

????/root/admin 光标当前行第一个出现的root替换为admin,没有则不替换
????/root/admin/g 光标当前行中的所有root替换为admin
:3,5 s/sbin/bin/g 将3到5行的所有sbin 换为bin
:% s/nologin/fault/g 所有行的nologin都替换为fault
(2)保存与退出

假如当前在编辑模式下,实现保存与退出功能:

:q! 强制退出,不保存并退出q(quit)
:wq 保存并退出(w:write)
:x 保存并退出
:w 保存
:w b.txt 另存为 b.txt

在命令模式下输入ZZ,也可以实现保存并退出文档

二、三种模式的切换

vim编辑器的三种工作模式及快捷键

三、vim小技巧

显示行号 命令模式下输入:set number 或者简写 :set nu
忽略大小写 vim默认是区分大小写的,:set ignorecase
多窗口编辑 在命令模式下输入:split,窗口切换control + w + h/j/k/l(键盘上四个字母连一块呢)h代表左边,l代表右边,J代表上边,K代表下边
执行shell命令 使用vim的时候,想执行一条shell命令,但是又不想退出vim编辑器,可以在命令模式下,输入 :!ls即可(:!{命令}
自动补齐 vim可以根据上文内容自动补齐输入。假如在文件中定义一个变量,FIRST_TIME=09,以后再输入这个变量名时,可输入F1,然后使用快捷键control+N,实现自动补齐功能。

} |
| 自动补齐 | vim可以根据上文内容自动补齐输入。假如在文件中定义一个变量,FIRST_TIME=09,以后再输入这个变量名时,可输入F1,然后使用快捷键control+N,实现自动补齐功能。 |