VIM文本编辑器

《Vim中文用户手册》百度云:
链接:https://pan.baidu.com/s/1ahbb7IEkT9p0biqAVxfEOw
提取码:love
在这里插入图片描述

1 Vim 简要介绍

通过前面的学习,我们知道,Linux系统中一切皆是文件,因此,当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
作为一名Linux初学者,必须熟练掌握Linux中至少一款文本编辑器的用法。对文本编辑器的功能(查找、剪切、粘贴等)了解越多,对自身越有帮助。
Vim文本编辑器,是由Vi发展演变过来的文本编辑器,因其具有使用简单、功能强大、是Linux众多发行版的默认文本编辑器等特点,成功圈住了很多人成为其死忠粉。
【Vim安装】
众多Linux发行版系统,通常已经默认安装好了Vi或Vim文本编辑器,Centos也不例外。

如果在命令行模式下输入vim,输出结果为Command not found,则表示此系统中未安装Vim。

在 Centos系统中,使用yum install vim命令,即可安装Vim;需要注意的是,此命令运行时,有时需要手动确认[y/N],遇到这种情况,选择y即可。

如果在命令行模式下输入vim,输出结果为下图,则表示此系统中安装了Vim。

在这里插入图片描述

想要退出Vim时,先按一下“esc”键,然后输入,这时候就会在最下面显示出一行,Vim进入底线命令模式,输入q,回车退出。

2 Vim 工作模式

在Linux系统中,所有的内容都会以文件的形式进行存储,在当命令行下更改文件内容时,常会用到文本编辑器。
Vim编辑器具有3种工作模式:

  • 命令模式 command mode
  • 输入模式(编辑模式) insert mode
  • 底线命令模式 last line mode

这3种模式可以随意切换,如下图所示:
在这里插入图片描述
1) 命令模式
用户刚刚启动 vi/vim时,便进入了命令模式。
该状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下 i 键,并不会输入字符i,而是当做一个命令。
以下是常用的几个按键命令:

  • i 键 切换到输入模式,以输入字符。输入模式也叫编辑模式,可编辑文档(最常用)。
  • x 键 删除当前光标所在处的字符。
  • :键:切换到底线命令模式,以在最后一行输入命令。
  • 方向键:kjhl,以移动光标。

2) 输入模式(编辑模式)
在命令模式下按 i 键 就进入了 输入模式;
按ESC可退出输入模式;
3)底线命令模式
在命令模式下按 Esc 键就进入了底线命令模式;
ESC可退出底线命令模式;
以下是常用的几个命令:

  • :q 退出程序
  • :w 保存文件

对于新手来说,经常不知道自己处于了什么模式。不论是自己忘了,还是不小心切换了模式,都可以按一次Esc键返回命令模式。如果多按几次Esc键后听到“滴— —”的声音,则代表你已经处于命令模式。

3 Vim 基本操作

3.1 Vim打开文件

使用Vim打开文件很简单,例如在命令行模式下打开一个自己编写的文件/home/chen/my/test.txt。打开方法如下:

[chen@localhost ~]$ vim /home/chen/my/test.txt

刚打开文件时,Vim处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数和总字符数,以及当前光标所在的位置等,此时可以使用插入命令进入输入模式对文件进行编辑。由于这是一个新建的文件,所以你会得到一个空的窗口,屏幕看起来会像下面一样:
在这里插入图片描述
在这里插入图片描述

以波浪线(~)开头的行表示该行在文件中不存在。最底下所显示的文件信息是临时的,新的信息可以覆盖掉它。
除此之外,我们还可以利用下表中打开文件的命令格式,针对特定情形使用适当的打开方式,可以极大提高效率。

Vim命令使用的选项说明
vim filename打开或新建一个文件,光标置于第一行的行首
vim -r filename恢复上次vim打开时崩溃的文件
vim -R filename把指定的文件以只读方式放入Vim编辑器中
vim -n filename打开文件,并将光标置于第n行的行首

在这里插入图片描述
[O]pen Read-Only:打开此档案成为只读档, 可以用在你只是想要查阅该档案内容并不想要进行编辑行为时。
[E] dit anyway:还是用正常的方式打开你要编辑的那个档案, 并不会载入暂存盘的内容。不过很容易出现两个使用者互相改变对方的档案等问题!
[R] ecover:就是加载暂存盘的内容,用在你要救回之前未储存的工作。 不过当你救回来并且储存离开 vim 后,还是要手动自行删除那个暂存档喔!
[D] eletc it:你确定那个暂存档是无用的!那么开启档案前会先将这个暂存盘删除! 这个动作其实是比较常做的!因为你可能不确定这个暂存档是怎么来的,所以就删除掉他吧!
[Q] uit:按下 q 就离开 vim ,不会进行任何动作回到命令提示字符。
[A] bort:忽略这个编辑行为,感觉上与 quit 非常类似! 也会送你回到命令提示字符就是啰!

3.2 Vim 编辑文件

3.2.1 Vim 插入文本

从命令模式进入输入模式进行编辑,可以按下 IiOoAa等键来完成,可以使用不同的键,光标所处的位置不同,如下表所示:决定光标的位置以及原有文本的移动方向。

快捷键功能
i在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I在光标搜在行的行首插入随后输入的文本,行首的该行的第一个非空白字符,相当于光标移动到行首执行i命令
o在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O在光标所在行的上面插入新的一行。光标停在空行首,等待输入文本
a在当前光标所在位置之后插入随后输入的文本
A在光标所在行的行尾插入随后输入的文本

3.2.2 Vim 查找文本

快捷键功能
/abc从光标位置向下查找字符串abc
?abc从光标位置向上查找字符串abc
n显示下一个所匹配的字符串abc
N显示上一个所匹配的字符串abc

在命令模式下,按键 / 或 ?后,会在底线出现输入命令提示,此时输入待查找字符串,按下Enter键后即可以实现相应查找功能。

按键/后
在这里插入图片描述
【用 / 键和用**?**键的区别】

  • / 键后跟查找的字符串。vim会显示文本中第一个出现的字符串(光标所处位置)
  • ? 键后跟查找的字符串。vim会显示文本中最后一个出现的字符串(光标所处位置)

3.2.3 Vim 替换文本

Vim替换命令基本格式:

[range]s/from/to/[flags]

1)range:作用范围

  • :默认光标所在行
  • .:指定光标所在行
  • n:指定第 n
  • $:指定最后一行
  • n,m:指定第n行到第m
  • %:指定所有行

上面的所有 range 都可以组合起来使用;表示方法都可以通过 +- 操作来设置相对偏移量;且都可以套入 n,m 格式来设置范围,如:
.+1:当前行所在的下一行
.+1,$-1:表示当前行所在的下一行 到 倒数第二行

在这里插入图片描述

在这里插入图片描述
2)flags:替换标记

  • :替换第一个匹配项
  • c:confirm,每次替换前询问
  • g:不询问,整个替换
  • i:大小写不敏感查找
  • I:大小写敏感查找(默认)

上面的所有 flags 都可以组合起来使用,如:
gc:匹配范围内全部替换,且询问
gi:匹配范围内全部替换,且不区分大小写

在这里插入图片描述

3.2.4 Vim 选择文本

文本的选择对编辑器来说是很基本的东西。

按键功能
v从光标当前字符开始,光标所经过的地方会被选中。再按一下 v 键结束
V从光标当前行开始,光标经过的行都会被选中。再按一下 V键结束
ctrl v从光标当前位置开始,选中光标起点和终点的矩形区域。再按一下 ctrl v 键结束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

选中后就可以用编辑命令对其进行编辑,如
d 键 删除; y 键 复制 ; p键 粘贴。

3.2.5 Vim 删除文本

快捷键功能
d删除所选部分
x删除光标所在字符
d d删除光标所在行

注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 “p” 键,就可以将刚才删除的内容又粘贴到此处。

3.2.6 Vim 复制粘贴文本

快捷键功能
y复制内容到剪切板
p粘贴内容到光标后
P粘贴内容到光标前

一般,大写键表示向上,小写键表示向下。如 fxFxpP
行首 ^;行尾 $
文首gg;文尾G

3.2.7 Vim保存退出文本

VIm的保存和退出上在底线命令模式进行的

命令功能
:wq保存并退出Vim编辑器
:wq!保存并强制退出Vim编辑器
:q不保存就退出Vim编辑器
:q!保存出且强制退出Vim编辑器
:w保存但不退出Vim编辑器
:w!强制保存文本
:w filename另存到filename文件
:x!保存文本并退出Vim编辑器
:ZZ直接退出Vim编辑器

4 Vim 移动光标

Vim文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方法的效率太低,更高效的方式是使用快捷键。
Vim移动光标最常用的快捷键及功能如下表所示,需要注意的是,表中所有的快捷键都是在命令模式下直接使用。

4.1 Vim快捷方向键

快捷键功能
h光标向左移动一位
l光标向右移动一位
j光标向下移动一位
k光标向上移动一位

最初使用,大家可能觉得比较别扭,但熟能生巧,使用此方式移动光标同样能够提高编辑速度。

4.2 光标以“词”为单位移动

某些情况下,可能需要光标迅速移动至一行中的某个位置,将光标以词为单位移动就会很方便。

快捷键功能
w 键或 W光标向右移动一词(词首)
b 键或 B光标向左移动一词(词首)
nw 键或 nW光标向右移动n词(词首)
nb 键或 nB光标向左移动n词(词首)
e 键或 E光标向右移动一词(词尾)

4.3 光标移动到行首或行尾

快捷键功能
数字 0 键 或 ^光标移动到当前行的行首
$光标移动到当前行的行尾
n$光标移动到当前行只有n行的行尾

4.4 光标移动至指定字符(当前行)

快捷键功能
fx光标移动至当前行中的下一个字符x
Fx光标移动至当前行中的上一个字符x

4.5 光标移动到指定行

快捷键功能
gg光标移动到第一行行首
G光标移动到最后一行行首
nG光标移动到第n行行首
:n底线命令模式,移动到第n行的行首

4.6 光标移动到匹配的括号处

程序员在编辑程序时,经常会为将光标移动到与一个(所匹配的)处(对于{}、[]一样)处而感到头疼。Vim提供了一个非常方便地查找匹配括号的快捷键,这就是 % 键。
首先将光标定位到{处,按下快捷键 %,就可以将光标移动到}处。

5 Vim 撤销和恢复撤销

使用Vim编辑文件内容时,经常会有如下2种需求:

  • 对文件内容作出了修改之后,却发现整个修改过程是错误的或没有必要的,想将文件恢复到修改前的样子。
  • 将文件内容恢复之后,经过仔细考虑,又感觉还是刚才修改过的内容更好,想撤销之前做的恢复操作。
快捷键功能
u撤销最近一次对文本的操作
ctrl R恢复最近一次对文本的操作
U第一次会撤销对一行文本的全部操作,第二次会恢复对一行文本的全部操作

6 Vim 可视化模式

相信大家都使用过带图形界面的操作系统的文字编辑器,用户可以直接使用鼠标来选择要操作的文本,非常方便。在Vim编辑器中也有类似的功能,但不是通过鼠标,而是通过键盘来选择要操作的文本。

快捷键功能
v字符可视化模式,此模式下目标文本的选择是以字符为单位的
V行可视化模式,此模式下对文本的选择是以行为单位的
ctrl v块可视化模式

值得一提的是,之前所学的在Vim命令模式下的很多命令,在可视化模式下仍然可用。

快捷键功能
d删除选中的部分文本
D删除选中部分所在的行
y将选中部分复制到剪切板中
p将剪切板中的内容粘贴到光标之后
P将剪切板中的内容粘贴到光标之前
u将选中部分文本 大写字符全部改为小写字符
U将选中部分文本 小写字符全部改为大写字符
>将选中部分文本右缩进table
<将选中部分文本左缩进table

7 Vim 多窗口编辑模式

7.1 在开始编辑时创建多个窗口

Vim的多窗口是动态的,可以开始编辑时就打开多个窗口,也可以工作时随时增加和删除新窗口。
【Vim 上下层次窗口分布】
打开 /home/chen/my/test1.txt文件和/home/chen/my/test.txt文件。

[chen@loaclhost~]$ vim -o ./my/test1.txt ./my/test.txt

在这里插入图片描述
【Vim左右层次窗口分布】
打开 /home/chen/my/test1.txt文件和/home/chen/my/test.txt文件。

[chen@loaclhost~]$ vim -O ./my/test1.txt ./my/test.txt

在这里插入图片描述

7.2 在窗口间游走

快捷键功能
ctrl w h向左游走
ctrl w j向下游走
ctrl w k向上游走
ctrl w l向右 游走

8 Vim 批量注释

8.1 块注释法

【注释】
Ctrl + v 键进入块选择模式,然后移动光标选中你要注释的行,再按大写的 I 键进入行首插入模式输入注释符号如 //#,输入完毕之后,按两下 ESC键,Vim 会自动将你选中的所有行首都加上注释,保存退出完成注释。
【取消注释】
Ctrl + v 键进入块选择模式,选中你要删除的行首的注释符号,注意 // 要选中两个,选好之后按 x键(或d键) 即可删除注释,ESC 键保存退出。
在这里插入图片描述

8.2 替换注释法

【注释】

:[range]s/^/注释符/[flags]

【取消注释】

:[range]s/^注释符/ /[flags]

在这里插入图片描述
在这里插入图片描述

9 Vim行号显示

行号显示底线命令:set nu
行号不显示底线命令::set nonu
在这里插入图片描述
附:Vim配置文件vimrc的介绍链接
https://blog.csdn.net/rudy_yuan/article/details/81055649

10 在Vim中执行Linux命令

  • :!cmd
    不退出vim 执行命令 cmd
  • :r !cmd
    不退出vim执行命令cmd,并将cmd的输出内容插入当前文本中。
  • :shell
    切换到shell里(此时并没有退出vim,可以理解成vim转入后台),你可以在shell中做任何操作,退出shell(比如用exit)后,会切换回原来的vim中
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值