高效工具实战指南:Vim的安装及使用

本文详细介绍了Linux下Vim编辑器的使用指南,包括Vim的下载安装、三种模式(命令模式、编辑模式、末行模式)及其切换方法。重点讲解了命令模式下的各种操作技巧,如光标移动、文本编辑、复制粘贴、查找替换等,以及末行模式中的文件操作、分屏功能等实用命令。此外还介绍了man文档的使用方法和代码注释技巧。文章基于CentOS系统编写,同时提供了针对不同Linux发行版的适配建议,帮助读者快速掌握这款强大的文本编辑器。

作者
WildPointer
发布
2024.05.30
专栏
高效工具实战指南
阅读
约 7 分钟 / 4,113 次原文浏览
高效工具实战指南:Vim的安装及使用

前言

这篇论文主要对Linux下关于Vim文本编译器进行讲解,一步步从具体的Vim下载,使用进行讲解,废话不多说,期待带来更多的优质文章(PS:作者是在Centos下存在,如果使用Ubuntu的同学,可以针对特定情况进行指令的修改哈!但关于Vim的指令基本没有差异)


Vim的下载

        在使用git命令对Vim进行下载时,我们需要先在终端判断是否存在git命令(PS:因为博主的Centos是重新下载过的,所以不存在git命令)。如果不存在git命令,则可使用以下命令下载git

text
//下载gitsudo yum install git    

下载完git则可以装备下载Vim,其Vim的开源地址如下,可使用git clone把项目克隆至指定的路径下:

cpp
//下载Vim至当前用户Home目录下的.vimplus文件夹中git clone https://github.com/chxuan/vimplus.git ~/.vimplus

Vim开源地址https://github.com/chxuan/vimplus由于GitHub属于外网访问可能比较慢,针对这种情况博主给出以下两种方式(自测):

1.修改/etc/hosts文件,提高对GitHub的访问速度,可参考下图

cpp
#修改Host文件,更改DNS解析140.82.114.4 github.com140.82.114.4 gist.github.com 

图1.修改host文件

2.修改Linux网络连接模式为桥接模式后,在进入clash打开同局域网允许连接,然后修改Linux中的代理(PS:本人五星好市民,不会这个操作,所以就不列出步骤了)

下载完Vim,输入以下命令进入下载好的文件夹,并执行Shell命令:

cpp
//进入下载好的文件夹(如果之前修改了下载的文件夹名称,此处也要修改)cd ~/.vimplus//执行Shell命令,install.sh为Shell文件./install.sh

为防止Vim显示乱码,需设置linux终端字体为Droid Sans Mono Nerd Font,可参考下图进行操作:

图2.设置终端字体为Droid Sans Mono Nerd Font


Vim的模式

        vim中一共有三种模式:命令模式,末行模式,编辑模式。当我们打开Vim默认进入的是命令模式。

1.命令模式:主要是使用各种快捷键来移动光标、查找文本、复制、粘贴、删除文本等操作
2.编辑模式:主要是对文件内容插入,修改和添加等操作
3.末行模式:主要是执行Linux命令,如保存文件、退出Vim、设置选项,窗口分屏等操作

在了解进入Vim后如何进行模式的切换前,我们得先了解模式之间是否可以相互切换,针对命令模式可以切换为编辑模式再切换回命令模式,命令模式也可以切换为末行模式再切换回命令模式,但是编辑模式和末行模式之间不可相互切换,可以参考下图:

图3.Vim中模式的切换

在图中可知道编辑模式和末行模式切换回命令模式都是点击Esc键,而编辑模式只需要点击一次Esc键,末行模式需要点击两次Esc键则可切换回命令模式。

1.命令模式切换至末行模式的操作:

按住Shift键,然后输入":"号即可,如下图:

图4.命令模式切换至末行模式

2.命令模式切换至编辑模式的操作:

切换快捷键实现功能
i从光标前边开始输入
I(大写i)从光标行行首开始输入
o在光标下一行插入行, 并输入
O 在光标上一行插入行, 并输入
a在光标后开始输入
A在光标行行尾开始输入
s删除光标指示的字符, 从删除的字符位置输入
S删除光标当前行, 并在当前行开始输入

表1.命令模式切换至编辑模式的快捷键


Vim中命令模式下的操作

1.使用Vim打开文件,若文件不存在则创建文件:

cpp
//使用Vim打开文件vim 文件名

2.退出命令模式:使用Vim打开文件后,按住键盘Shift键后,连续按两次Z键

3.代码快速缩进:在进入命令模式后,点击两次g键后,点击=键再按住Shift键,最后按G键(必须得连贯操作)

图5.代码快速缩进

4.命令行下的光标移动操作:可以使用字母h,j,k,l进行光标的移动,也可以使用键盘中的方向键进行移动

cpp
//移动光标的方法            光标上移                  ↑光标左移<- h    j    k    l ->光标右移                    ↓                 光标下移    

5.命令模式下的光标跳转:

跳转快捷键实现功能备注
0(数字)将光标移动到当前行的行首无
$将光标移动到当前行的行尾按住shift键后按4
G将光标移动到文件尾部无
gg将光标移动到文件头部无
nG行跳转n 代表要跳转到哪一行
n行+Enter键跳转到当前行的下 n 行组合键,输入行数后按回车

表2.命令模式下的光标跳转

6.剪切命令:剪切命令相当于删除,即删除也可以使用剪切命令

剪切命令快捷键实现功能备注
x剪切光标当前指向的字符相当于剪切光标后的字符
X剪切光标前的字符无
dd剪切光标当前所在的行无
ndd剪切光标所在行开始后n行含当前行
dw剪切光标当前指向的单词要把光标移动到单词的第一个字母上再剪切,否则只会剪切当前光标指向的字母和其后的字母
d0剪切光标前的字符串剪切字符串开头到光标当前位置的字符串
D 剪切光标后的字符串剪切光标当前位置到字符串尾部的字符串

表3.命令模式下的剪切命令   

7.撤销命令和恢复命令:Centos中的撤销命令相当于Windows中的ctrl+z,恢复命令相当于
Windows中的ctrl+y

命令快捷键实现功能备注
u撤销无
ctrl+r恢复组合键,按住ctrl键后点击r键

表4.撤销命令和恢复命令

8.复制命令和粘贴命令:Centos中的删除命令就是剪切命令,所以剪切数据后可以使用粘贴命令再恢复

命令快捷键实现功能备注
yy复制光标所在行 无
nyy复制光标所在行向下数 n 行含当前光标指向的行
p粘贴到光标所在行的下面小写p
P粘贴到光标所在行的上面大写P

表5.复制目录和粘贴命令

9.查找关键字:先点击快捷键,后在键盘中输入查找的字符,以及遍历方式即可,其中遍历方式为n和N,n代表从光标当前位置向下遍历,N代表从光标当前位置向上遍历。快捷键参考下表

查找快捷键实现功能备注
/查找关键字查找输入的关键字
?查找关键字查找输入的个积极
#查找关键字查找光标当前指向的关键字

表6.查找关键字

图6.查找关键字

10.命令模式中的可视模式:可视模式是指光标中选中的范围,一般范围是为一个字符,而在可视模式中可以将范围提升至行或块大小。使用可视模式前,在命令模式输入以下快捷键便可进入可视模式

快捷键实现功能备注
v进入字符可视化模式光标范围以字符为单位
V进入行可视化模式光标范围以行为单位
ctrl+v进入块可视化模式光标范围以块为单位(按住ctrl键后点击v键)
Esc退出可视化模式无

表7.查找关键字

图7.进入可视化模式

11.可视化模式的操作:可视化模式光标操作与命令模式中类似,也可以使用h,j,k,l键进行光标的操作,在此基础上可视化模式还支持剪切,复制和粘贴等操作,具体快捷键如下:

快捷键实现功能备注
p将字符粘贴至光标前粘贴数据块或数据行
P将字符粘贴至光标后粘贴数据块或数据行
d剪切剪切数据块或数据行
y复制复制数据块或数据行

表8.可视化模式的操作

图8.操作光标选中块为单位的数据

12.替换指定关键字:

替换快捷键实现功能备注
r替换光标当前指向后的字符替换光标覆盖的字符
R替换光标当前指向后的多个字符点击Esc键后停止替换,替换字符含光标当前覆盖的字符

表9.替换指定关键字

图9.替换指定关键字


Vim中末行模式

        由命令模式进入末行模式只需要在命令模式中输入":"即可,末行模式支持对文件的保存,文本替换,分屏等操作,以下便对末行模式进行讲解

1.文件的保存操作:

快捷键备注
w保存, 但不退出
wq保存并退出
q退出前提示是否要保存
q!退出, 不保存
x 保存并退出

表10.末行模式中文件的保存操作

2.替换操作:末行模式中的替换相较于命令模式,区别在于可选中被替换的关键字或者多个行中替换指定的关键词,具体操作如下

快捷键备注
s/ + 被替换的关键字/ +新的关键字/ +g 对光标所在行进行关键字替换
行1, 行2s/ + 被替换的关键字/ + 新的关键字/ +g对行1到行2的范围中进行关键字替换
%s/ + 被替换的关键字/ + 新的关键字/ +g%代表对所有行进行替换

表11.末行模式中的替换操作

图10.末行模式中的替换操作

3.分屏操作:在项目编写的过程中,我们往需要对多个文件同时浏览,这个时候就需要对界面进行分屏操作,一下为分屏快捷键:

快捷键实现功能备注
qall退出多个屏幕不保存修改内存
wqall保存退出多个屏幕无
sp水平分屏 多个窗口中显示同一个文件里的内容
vsp垂直分屏 多个窗口中显示同一个文件里的内容
sp文件名水平分屏在新窗口中显示指定的文件的内容
vsp文件名垂直分屏在新窗口中显示指定的文件的内容
ctrl+w+w光标在打开的屏幕之间切换按住ctrl键后按两次w

表12.末行模式中的分屏操作

图11.末行模式中的分屏操作

4.行跳转:将文件中的光标跳转至指定行

cpp
#行跳转格式:行号

5.执行Shell命令:

cpp
#执行Shell命令格式:!Shell命令//执行ll操作:!ll

Vim中man文档

      man文档属于Linux中的自带的帮助文档,用于查询shell指令或者系统配置文件说明等,可以使用以下指令打开man文档和退出man文档

cpp
//打开man文档man man//退出man文档(输入q即可)q

图12.man文档 

在man文档中,其章节共分为9个章节,每一个章节代表意思如下:

章节说明
1Linux提供的所有shell命令
2由内核提供的系统函数
3程序库中的函数
4/dev目录中的文件说明
5系统配置文件格式和约定
6游戏
7杂项,包括宏包和约定
8系统管理命令
9非标准的内核例程

表13.man文档章节讲解 

在man文档中可以使用man命令来查询相关的命令或函数信息

cpp
//查找格式man 章节数 命令或函数man 1 rm     //查询第一章的rm命令man 5 passwd //查询第五章的passwd文件夹

如果在Vim的命令模式下,可以通过以下格式跳转光标所在的命令所处的man文档位置

cpp
//跳转格式章节号(可选)+K

Vim中代码注释

通常我们写代码时,注释的范围都是一行或一块,所以在普通的命令模式下注释代码便显得有些鸡肋,所以在代码注释时我们通常先进入可视化模式,然后选定注释的范围后进入编辑模式,输入注释符后点击Esc键便可完成注释,参考下图:

图13.Vim中代码注释

21次原文点赞;这里的喜欢仅保存在本机
WildPointer

专注系统编程、工程实践与底层技术,记录 C++、Qt、OpenCV 与 VTK 的学习和实践。