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小技巧
显示行号 | 命令模式下输入: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,实现自动补齐功能。 |