目录
1.前言
2.Vim的下载
3.Vim的模式
5.Vim中末行模式
7.Vim中代码注释
前言
这篇论文主要对Linux下关于Vim文本编译器进行讲解,一步步从具体的Vim下载,使用进行讲解,废话不多说,期待带来更多的优质文章(PS:作者是在Centos下存在,如果使用Ubuntu的同学,可以针对特定情况进行指令的修改哈!但关于Vim的指令基本没有差异)
Vim的下载
在使用git命令对Vim进行下载时,我们需要先在终端判断是否存在git命令(PS:因为博主的Centos是重新下载过的,所以不存在git命令)。如果不存在git命令,则可使用以下命令下载git
//下载git
sudo yum install git
下载完git则可以装备下载Vim,其Vim的开源地址如下,可使用git clone把项目克隆至指定的路径下:
//下载Vim至当前用户Home目录下的.vimplus文件夹中
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
Vim开源地址https://github.com/chxuan/vimplus 由于GitHub属于外网访问可能比较慢,针对这种情况博主给出以下两种方式(自测):
1.修改/etc/hosts文件,提高对GitHub的访问速度,可参考下图
#修改Host文件,更改DNS解析
140.82.114.4 github.com
140.82.114.4 gist.github.com
图1.修改host文件
2.修改Linux网络连接模式为桥接模式后,在进入clash打开同局域网允许连接,然后修改Linux中的代理(PS:本人五星好市民,不会这个操作,所以就不列出步骤了)
下载完Vim,输入以下命令进入下载好的文件夹,并执行Shell命令:
//进入下载好的文件夹(如果之前修改了下载的文件夹名称,此处也要修改)
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打开指定文件
vim 文件名
辑模式的快捷键
Vim中命令模式下的操作
1.使用Vim打开文件,若文件不存在则创建文件:
//使用Vim打开文件
vim 文件名
2.退出命令模式:使用Vim打开文件后,按住键盘Shift键后,连续按两次Z键
3.代码快速缩进:在进入命令模式后,点击两次g键后,点击=键再按住Shift键,最后按G键(必须得连贯操作)
图5.代码快速缩进
4.命令行下的光标移动操作:可以使用字母h,j,k,l进行光标的移动,也可以使用键盘中的方向键进行移动
//移动光标的方法
光标上移
↑
光标左移<- 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.行跳转:将文件中的光标跳转至指定行
#行跳转格式
:行号
5.执行Shell命令:
#执行Shell命令格式
:!Shell命令
//执行ll操作
:!ll
Vim中man文档
man文档属于Linux中的自带的帮助文档,用于查询shell指令或者系统配置文件说明等,可以使用以下指令打开man文档和退出man文档
//打开man文档
man man
//退出man文档(输入q即可)
q
图12.man文档
在man文档中,其章节共分为9个章节,每一个章节代表意思如下:
章节 | 说明 |
1 | Linux提供的所有shell命令 |
2 | 由内核提供的系统函数 |
3 | 程序库中的函数 |
4 | /dev目录中的文件说明 |
5 | 系统配置文件格式和约定 |
6 | 游戏 |
7 | 杂项,包括宏包和约定 |
8 | 系统管理命令 |
9 | 非标准的内核例程 |
表13.man文档章节讲解
在man文档中可以使用man命令来查询相关的命令或函数信息
//查找格式
man 章节数 命令或函数
man 1 rm //查询第一章的rm命令
man 5 passwd //查询第五章的passwd文件夹
如果在Vim的命令模式下,可以通过以下格式跳转光标所在的命令所处的man文档位置
//跳转格式
章节号(可选)+K
Vim中代码注释
通常我们写代码时,注释的范围都是一行或一块,所以在普通的命令模式下注释代码便显得有些鸡肋,所以在代码注释时我们通常先进入可视化模式,然后选定注释的范围后进入编辑模式,输入注释符后点击Esc键便可完成注释,参考下图:
图13.Vim中代码注释