文章目录
一、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还有很多高级的用法,如编辑、分屏、排版等、统计等。