vim 编辑器使用详解

一、vim编辑器


1.vim 简述

vivisual 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 –字样,进入了编辑模式,才可以输入内容。

指令作用
iinsert缩写,进入输入模式,进入后显示 – INSTER–
aappend缩写,进入输入模式,光标往后跳一位,进入后显示 ,– 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还有很多高级的用法,如编辑、分屏、排版等、统计等。

  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值