vim简介、配置方案、常用模式的基本操作
本章思维导图:
注:本章思维导图对应的xmind
和.png
文件都已同步导入至资源
1. vim简介
vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器
本篇我们介绍vim
最常用的三种模式:命令模式(command mode)、底行模式(last line mode)、插入模式(insert mode)
1.1 命令模式
- 每次打开
vim
编辑器,默认进入的就是命令行模式
在这里插入图片描述 - 命令行模式下无法在打开的文件里插入任何数据,只能执行对应的指令
1.2 底行模式
- 底行模式由命令模式进入
进入方法:命令模式下输入:冒号
:
,即shift + ;
- 底行模式下同样不能向打开的文件进行写操作,只能执行对应的底行命令
- 如果要从底行模式退出,按
Esc
键即可。且退出到命令模式
1.3 插入模式
- 插入模式由命令模式进入
进入方法:命令模式下输入:
i
或者s
或者a
i
:表示从光标所在位置进行插入a
:表示从光标的下一个位置进行插入s
:表示,删除光标所在字符,再从光标位置进行插入
- 只有在插入模式下才可以对打开的文件进行写操作,即编写程序
- 如果要从插入模式退出,按
Esc
键即可。且退出到命令模式
1.4 命令模式、底行模式和插入模式的进出关系
- 可以看出,命令模式是核心模式,它既可以进入插入模式,也可以进入底行模式
- 插入模式和底行模式都可以退出到命令模式
- 插入模式和底行模式不可以直接转换,必须先进入命令模式,再执行对应的命令进入
2. vim的配置
我们先用上面展示的vim
编辑器写一段简单的展示代码:
可以看到,默认的Linuxvim
编辑器有两大致命缺陷:
- 界面太过简单,可以说是简陋
- 编写程序时没有基本的自动缩进、高亮、自动补齐等许多
Windos
编译器都有的功能,使得用起来极度不方便
2.1 .vimrc 隐藏文件
针对上述问题,Linux允许我们修改vim
的配置信息,是其具有更加丰富的功能。而对vim
编辑器进行修改的信息,就会放在.vimrc
这个隐藏文件中。
- 在
root
账户中,.vimrc
这个隐藏文件默认就在root
账户的家目录下: - 而在普通账户中,
.vimrc
文件不会被默认创建,需要自己手动创建:
2.2 配置vim
编辑器的方法
一种方法是下载插件,但这种方法较为复杂,这里不做介绍,感兴趣的小伙伴可以上网查阅
还有一种方法就是直接向.vimrc
文件写入指定内容,从而让vim
编辑器具备某种指定的功能
- 例如,我们现象
.vimrc
文件中输入
set number 显示行号
- 再次打开
vim
编辑器,其页面就会变为:
- 这样,如果想要让自己的
vim
编辑器具有某种功能,只需要在.vimrc
文件中输入对应的指令就可以了
当然了,如果想要一条条的向.vimrc
文件输入各种指令最终实现自己预想的美观的vim
编辑器,这个过程肯定是费时且费力的。因此,博主已经为大家准备好了一个较为美观的.vimrc
配置文件。先来看看效果:
如果大家想要使用这个配置方案,直接执行下面的命令即可:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
注:
- 如果所在的普通账户无法使用
sudo
指令,请移步Linux——手把手教你解决sudo指令无法使用的问题查看具体解决方案 - 本配置方案只适用于
CentOs 7
系统 - 最好不要在
root
账号下下载
3. vim常用模式的基本操作
3.1 命令模式
3.1.1 快速移动光标
$
即shift + 4
:将光标快速移动到所在行的最右侧^
即shift + 6
:将光标快速移动到所在行的最左侧G
即shift + g
:将光标快速移动到文本的结束位置(最后一个字符)gg
:将光标快速移动到文本的开始位置(第一个字符)
3.1.2 移动光标
可以用小键盘的⬆、⬇、⬅、➡
将光标移动到对应的位置。
但是在Linux中,更推荐用
h, j, k, l
这四个字母来移动光标
h
:即将光标向左移动一个字符j
:即将光标向下移动一个字符k
:即将光标向上移用一个字符l
:即将光标向右移动一个字符
实际上还有其他移动光标的方式,例如:
w
:以字母为单位,将光标向右移动b
:以字母为单位,将光标向左移动
3.1.3 复制与粘贴
可以用相关命令对文本的一行或者多行执行复制粘贴操作:
(n)yy
:赋值当前(n)行(n)p
:在光标所在行的下面粘贴(n行)
3.1.4 撤回与取消撤回
u
:取消上一步执行的操作Ctrl + r
:取消上一次的撤回操作
3.1.5 删除行
ndd
:删除当前所在的(n)行
3.1.6 字符处理
替换字符:
(n)~
:将光标后面的(n个)字符,大小变小写,小写变大写(n)r 输入
:将光标后面的(n个)字符全部替换为输入的字符shift + r
:进入替换模式,此时光标所在的字符被替换为输入的字符
删除字符:
(n)x
:删除光标所在(n个)字符(向后删除)(n) + shift + x
:删除光标所在(n个)字符(向前删除)
3.1.7 批量化注释和去注释
批量化注释:
- 第一步:
Ctrl + v
- 第二步:
h, j, k, l
选择要被注释的区域- 第三步:
shift + i
- 第四步:
//
- 第五步:
Esc
批量化去注释:
- 第一步:
Ctrl + v
- 第二步:
h, j, k, l
选择要被去注释的区域- 第三步:
d
3.1.8 多窗口之间的切换
Ctrl + ww
3.2 底行模式
保存与退出:
q(!)
:(强制)退出w(!)
:(强制)保存wq(!)
:(强制)保存并推出
在不退出vim
编辑器的情况下使用shell
命令:
! 命令
新建或者打开文件,并新开一个窗口:
vs filename
3.3 处理vim打开文件报错的情况
如果我们在用vim
编辑器处理文件时错误的退出当前的编辑(例如直接关闭云服务器或者虚拟机),那么再次用vim
打开相同的文件时,就会出现如下报错信息:
我们按如下的步骤解决:
- 第一步:选择
R(ecover)
选项,即输入字符e
,之后会进入vim编辑器,直接进入底行模式正常退出即可 - 第二步:继续用
vim
打开该文件,此时同样会弹出相同的报错信息,这次选择(D)elele it
选项,即输入字符d
,之后就会进入vim
编辑器,此时问题已经得到解决,可以正常进行编写代码了。