文章目录
一、vim编辑器
1.vim 简述
vi(visual editor)编辑器通常被简称为vi,它是Linux和Unix系统上最基本的文本编辑器,类似于Windows 系统下的notepad(记事本)编辑器。
vim(Vi improved)是vi编辑器的加强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用,全兼容vi,最明显的区别是vim可以语法加亮。
通常情况下已经默认安装好了 vi 或 Vim 文本编辑器,只需要通过vim命令就可以直接打开vim编辑器。
如下图所示:

2.语法格式
vim [arguments] [file ..]
vim [参数] [文件]
使用
vim打开文件时,使用Tab键补全文件名.
如果文件名不存在,则会创建一个新的文件。
3.参数描述
不常用
DESCRIPTION
-- Only file names after this
-v Vi mode (like "vi")
-e Ex mode (like "ex")
-E Improved Ex mode
-s Silent (batch) mode (only for "ex")
-d Diff mode (like "vimdiff")
-y Easy mode (like "evim", modeless)
-R Readonly mode (like "view")
-Z Restricted mode (like "rvim")
-m Modifications (writing files) not allowed
-M Modifications in text not allowed
-b Binary mode
-l Lisp mode
-C Compatible with Vi: 'compatible'
-N Not fully Vi compatible: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D Debugging mode
-n No swap file, use memory only
-r List swap files and exit
-r (with file name) Recover crashed session
-L Same as -r
-A start in Arabic mode
-H Start in Hebrew mode
-F Start in Farsi mode
-T <terminal> Set terminal type to <terminal>
-u <vimrc> Use <vimrc> instead of any .vimrc
--noplugin Don't load plugin scripts
-p[N] Open N tab pages (default: one for each file)
-o[N] Open N windows (default: one for each file)
-O[N] Like -o but split vertically
+ Start at end of file
+<lnum> Start at line <lnum>
--cmd <command> Execute <command> before loading any vimrc file
-c <command> Execute <command> after loading the first file
-S <session> Source file <session> after loading the first file
-s <scriptin> Read Normal mode commands from file <scriptin>
-w <scriptout> Append all typed commands to file <scriptout>
-W <scriptout> Write all typed commands to file <scriptout>
-x Edit encrypted files
--startuptime <file> Write startup timing messages to <file>
-i <viminfo> Use <viminfo> instead of .viminfo
-h or --help Print Help (this message) and exit
--version Print version information and exit
二、vim的四种模式关系
vim编辑器有四种模式:命令模式、编辑模式、可视化模式、末行模式。
「命令模式」:可以进行删除、复制、粘贴等快捷操作。
「编辑模式」:可以编辑文件内容。
「可视化模式」:可以做一些列选操作。
「末行模式」:可以通过命令操作文件,比如搜索、保存、退出等。
关系图如下:

输入vm -----→命令模式
按i进入 —→ 编辑模式-- INSERT –
按v进入 —→可视化模式-- VISUAL –
按两下ESC,输入: —→末行模式
注意:
不同模式之间需要按ESC切换
1.命令模式
使用VIM编辑器时,输入vim 文件名后,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制、粘贴、删除等操作。

2.编辑模式
在命令模式下输入小写字母i或者a或者o即可进入编辑模式,在该模式下可以对文件的内容进行编辑。
如下图:

3.可视化模式
在命令模式下输入小写字母v(行)或者ctrl+v(块)即可进入可视化模式,在该模式下可以做一些列选操作,通过方向键选择某些列的内容,类似于Windows鼠标选中。
如下图:

4.末行模式
在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作。
如下图:

三、vim的常规使用
提示:
使用vim打开文件时,使用Tab键补全文件名,更方便。
1.打开指定文件
vim 文件路径
[root@centos7 app]#vim history.log
① 如果文件已存在,则直接打开。
② 如果文件不存在,vim编辑器会自动在内存中创建一个新文件
编辑完成后,按两下ESC,输入:wq 退出文件。
2.打开文件指定光标所在行
命令如下:
vim +行数 文件
[root@centos7 app]#vim +4 passwd
可以看见,打开文件后,光标停在了第4行。
(默认是停在首行)

3.打开文件时高亮显示关键字
命令如下:
vim +/关键字 文件路径
[root@centos7 app]#vim +/lib passwd
打开文件时,字符串lib 已高亮显示

退出高亮
:noh或:nohlsearch

4.保存并退出 :wq
在任何模式下,连续按两次ESC键,即可返回到命令模式。然后按冒号:,进入到末行模式,输入wq,保存并退出。

5.强制退出(不保存)q!
在任何模式下,连续按两次ESC键,即可返回到命令模式。然后按冒号:,进入到末行模式,输入q!,强制退出但是不保存文件。

改错文件后,可以使用不保存强制退出
q!
6.设置行号 set nu
正常打开是不具有行号的,在实际使用过程中,增加行号更方便。
nu = number
#增加行号
:set nu

#取消行号
:set nonu
四、命令模式下的使用
vim打开文件后,默认命令模式。如果处于其他模式(编辑模式、可视化模式或者末行模式)可以连续按两次ESC键也可以返回命令模式
可以进行以下操作。
- 移动光标
- 剪切、复制、粘贴
- 撤销与恢复
- 搜索和替换字符
注意:
命令模式下,敲击的键盘会被识别为命令,而不是输入内容。
1.移动光标
| 指令 | 作用 |
|---|---|
| h 或 左方向键(←) | 光标向左移动一个字符 |
| l 或 右方向键(→) | 光标向右移动一个字符 |
| k 或 上方向键(↑) | 光标向上移动一个字符 |
| j 或 下方向键(↓) | 光标向下移动一个字符 |
| Ctrl + f (after) | 【屏幕】向下移动一页 |
| Ctrl + b (before) | 【屏幕】向上移动一页 |
| Ctrl + u (up) | 【屏幕】向上翻半屏 |
| Ctrl + d (down) | 【屏幕】向下翻半屏 |
| 0或者Fn+home键 | 光标移动到行首 |
| Fn+end键或者end键盘 | 光标移动到行尾 |
| gg | 移动到文件的第一行 |
| G | 移动到文件的最后一行 |
| n G | 移动到文件的第n行 |
vim中的数字键表示重复次数,配合其他指令简化操作,可以快速定位。
①定位光标到指定行
行号 + G,例如10G代表直接移动光标到第10行。
②快速下移指定行
10↓或10j可一次向下移动10行。
③快速上移指定行
10↑或10k可一次向上移动10行。
④快速左移指定字符
5←或5h可一次向上移动5行。
⑤快速右移指定字符
5→或5h可一次向上移动5行。
2.编辑操作
| 指令 | 作用 |
|---|---|
| x | 从光标开始往后删除一个字符 |
| X | 从光标开始往前删除一个字符 |
| dd | 剪切一行,继续则删除下一行 |
| D | 剪切一行,此行空白,下行不上移 |
| n(数字) dd | 光标往下剪切n行 |
| yy | 复制当前一行 |
| n(数字) dd | 光标往下复制n行 |
| p | 粘贴到下一行 |
| P | 粘贴到上一行 |
| u | 撤回 |
| Ctrl + r | 撤回刚才u的撤回操作 |
| .(小数点) | 重复刚才的操作 |
vim中的数字键代表重复次数,可以配合其他指令简化操作。
① 5 yy 可以一次粘贴 5行
② 5 dd可以一次剪切 5行
vim中,剪切与删除都是dd
① 如果剪切了文件,没有使用p进行粘贴,就是删除操作。
② 如果剪切了文件,然后使用p进行粘贴,就是剪切操作。
粘贴:在想要粘贴的地方按下
p键(将粘贴在光标所在行的下一行),如果想粘贴在光标所在行之前,则使用P键。
注意:
dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。
撤销:
u(undo)
恢复:
ctrl + r 恢复(取消)之前的撤销(u)操作
3.搜索替换字符
| 指令 | 作用 |
|---|---|
/字符串+ 回车 | 向下搜索指定字符串,常用 |
?字符串 + 回车 | 向上搜索指定字符串 |
| n | 跳到已搜索的下一个字符串 |
| N | 跳到已搜索的上一个字符串 |
| : s/string1/string2/g | 将光标所在行的string1替换为string2 |
| :%s/string1/string2g | 将全文的string1替换为string2 |
| :%s/string1/string2/gc | 将文件中的string1替换为string2,但替换前需要用户确认 |
| :1,10s/string1/string2/g | 将第1行到第10行的string1替换为string2 |
查找/搜索
命令模式下,然后输入斜杠/(也是进入末行模式的方式),输入要查找或搜索的关键词,然后回车。
如果存在多个满足条件的结果,可以上下切换结果。
小写n代表下一个字符串,大写N代表上一个字符串。
取消高亮,则输入
:noh【no highlight】
示例如下:

文件内容替换
命令模式下,然后输入斜杠
:,根据需求替换内容。
① 只替换光标所在行的第一个满足条件的结果(只能替换1次)
:s/要替换关键词/替换后关键词
:s/root/991
②替换光标所在行中的所有满足条件的结果(替换多次,只能替换一行)。
g=global全局
:s/要替换关键词/替换后关键词/g
:s/root/991/g
③ 针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果
:%s/要替换关键词/替换后关键词
:%s/root/991
④ 针对整个文档中的所有关键词进行替换(只要满足条件就进行替换操作)
:%s/要替换的关键词/替换后的关键词/g
:%s/root/991/g
⑤针对指定行数进行替换。
:1到10行/要替换关键词/替换后的关键词
:1,10s/string1/word2/g

五、编辑模式
编辑模式,主要是实现对文件的内容进行编辑模式。
输入模式和替换模式都是编辑模式,屏幕左下角出现 – INSTER – 或 – REPLACE –字样,进入了编辑模式,才可以输入内容。
| 指令 | 作用 |
|---|---|
| i | insert缩写,进入输入模式,进入后显示 – INSTER– |
| a | append缩写,进入输入模式,光标往后跳一位,进入后显示 ,– INSTER– |
| o | 进入输入模式,在光标下一行插入新行,进入后显示 – INSTER – |
| R | 进入替换模式,输入的值会取代光标所在的内容,进入后显示 – REPLACE – |
| esc键 | 退出编辑模式(输入模式) |


退出编辑模式,按下
esc键,确认下左下角 – INSTER – 或 – REPLACE – 字样消失后,再进行其他操作,以免误操。
六、末行模式
按两下ESC,英文状态的 :键 进入末行模式,左下角出现 :时,即表示末行模式。
| 指令 | 作用 |
|---|---|
| :w | 保存 |
| :q | 退出 |
| :wq | 保存后退出 |
| :q! | 不保存,强制退出 |
| :set nu | 显示行号 |
| :set nonu | 取消 显示行号 |
| :w [文件名] | 将编辑后的内容保存到另一个文件中(另存为) |
| :2,5 w [文件名] | 将第2到5行的内容保存到另一个文件中(指定行另存为) |
| :r [文件名] | 输入另一个文件的内容,到光标的下一行 |
:X 也能保存,但是需要输入密码,很少用。
如果文件没有被修改,但是使用wq 进行退出的话,则文件的修改时间会被更新;
但是如果文件没有被修改,使用x 进行退出的话,则文件修改时间不会被更新的;主要是会混淆用户对文件的修改时间的认定。
七、可视化模式
1.进入到可视化模式的三种方式
①在命令模式中,按
v键进入到可视模式。
此模式左右可选择单个字符,上下可选行。

②在命令模式中,按
V(大写V)键进入到可视行模式。此模式可以上下可选行。

③在命令模式中,按
Ctrl+v键进入到可视列模式。此模式可以对文本整块选择。

常用:
按v(可视)或者ctrl + v(可视列)或V(可视行),然后按下↑ ↓ ← →方向键来选中需要复制的文本,按下y 键进行复制,最后按下p 键粘贴,退出可视模式按下Esc
2.可视化的灵活操作
① 为配置文件添加#多行注释
第一步:按
ESC退出到命令模式,按gg切换到第1行。
第二步:然后按
Ctrl+v进入到可视化区块模式(列模式)。
第三步:在行首使用上下键选择需要注释的多行。
第四步:按下键盘(大写)
I键,进入插入模式(Shift + i)。
第五步:输入#号注释符。(此时只显示第一行有#号,不必惊慌,继续)。
第六步:输入完成后,连续按两次Esc即可完成添加多行注释的过程。
②为配置文件去除#多行注释
第一步:按Esc退出到命令模式,按gg切换到第1行。
第二步:然后按Ctrl+v进入可视化区块模式(列模式)。
第三步:使用键盘上的方向键的上下选中需要移除的#号注释。
第四步:直接按
d键即可完成删除注释#的操作。
八、意外断开临时文件
意外断开vim,没有保存,再打开会报错。
此时已生成了临时文件 .xxx.swap,用ls -a 找到文件,并用rm -rf 删掉此临时文件,就可以正常打开原有文件了。
vim的命令繁多,用法复杂,此处只是vim的基本用法,vim还有很多高级的用法,如编辑、分屏、排版等、统计等。
本文详细介绍了Vim编辑器的基础知识,包括vim的四种模式:命令模式、编辑模式、可视化模式和末行模式,以及如何在这些模式间切换。在命令模式下,可以进行光标移动、删除、复制、粘贴等操作;编辑模式用于输入文本;可视化模式允许选取文本块进行操作;末行模式则支持文件保存、退出等命令。此外,还讲解了vim的常规使用技巧,如打开文件、高亮显示关键字、撤销与恢复、搜索替换等。
9335





