文章目录
一、vim基本概念
二、vim基本操作
三、vim的配置
一、vim基本概念
vim是一个很强大的全屏幕文本编辑器。
vim和vi一样,是多模式编辑器,vim是vi的升级版本,兼容vi的所有指令。
我们之前写代码用的vs2022软件涵盖所有功能,包括编辑,编译,调试等功能(集成开发环境);而vim是专门写代码的一款编辑器,若要编译则需要用到gcc,g++,调试则需要用到gdb。
vim的模式一共有12种模式,但我们常用的只有三种:命令模式(command mode),插入模式(insert mode),底行模式(last line mode)。
命令模式:控制屏幕光标的移动,,字符,字或行的删除,移动。
插入模式:只有在插入模式下,才可以进行文字输入,按esc键就可以回到命令模式。
底行模式:文件保存或退出,找字符串,列行号等操作。命令模式下,shift+:就可以进入底行模式。
二、vim基本操作
首先,我们先讲讲最基本的操作,不说原理,只看操作。
当我们在终端输入 vim 时,会弹出这个界面:
这个就是我们 vim 的界面,如果要退出,那么就需要按下 : q ,退出。
而 vim 另一个最基本的操作就是以 vim 方式打开文件,指令:vim file ,这里的 file 为文件名,如果文件不存在,当保存并退出 vim 时,会自动创建该文件。如果文件存在,则会直接打开文件。但是此刻,我们是不能进行输入操作的。
我们提出两个问题:
: q 为什么可以退出界面?是和模式有关吗?
之前说到过模式,那么 vim file 进入的界面默认是什么模式?为什么不能输入?
1.模式切换
vim默认打开是命令模式,该模式下无法进行输入操作,但可以实现对各种模式的切换。
命令模式->插入模式:i/a/o
命令模式->底行模式:shift+:,进入该模式后,vim左下角出现:,q直接退出;wq:保存退出。
了解了这些,我们相当于已经学会了 vim 的最小集(能操作但不多),基于这些,我们尝试在 vim 下写一段代码:
2.命令模式
该模式下,使用hjkl进行左下上右移动。
常用指令
复制粘贴剪切 :
yy / nyy :复制光标所在行或者复制包含当前行在内的 n 行
p / np :粘贴一行或多行相同内容到当前光标所在行之下
dd / ndd :对当前行或者当前行在内的 n 行的内容进行剪切,移动光标到目标行进行 p 粘贴(只剪切,不粘贴相当于就是删除)
撤销 :
u :撤销上一步操作
ctrl + r :对撤销进行撤销
撤销只能对于本次操作内,退出保存再次操作时,是无法撤销的。
光标定位:
对全局文档:
shift g :将光标定位到文档结尾
gg :将光标定位到文档开头
n shift g : 将光标定位到文档指定行
对局部长文本行(例如若干行100字符长度,行内快速定位):
shift $ :将光标定位到当前文档行的结尾
shift ^ :将光标定位到当前文档行的开头
w / b :按照单词为单位,进行后 / 前移动(单词定义:对于长串字符组成的非单词也认为是单词)
nw / nb :默认单词数从 0 开始,进行后 / 前移动 n 个单词间距
文本编辑 :
shift ~ :对文本行进行快速大小写切换,小写转大写,大写转小写。按住不动默认一直切换,直到文本行末尾
r 字符 / nr 字符 :替换光标所在的字符或者对于 n 个字符文本行进行批量化替换;如果 n 超过文本行长度,则不会进行替换
shift r :进入替换模式,该模式输入什么则对光标位置完成对等的替换,按退格键删除就是复原
x / nx :对文本行内进行向后删除或者对光标开始 n 个字符进行向后删除,按住不动默认一直删除,简单概括:行内删除,左侧–>右侧
shift x / shift nx :行内删除,右侧–>左侧
3.插入模式
按 i 进入插入模式后,从光标当前位置开始输入
按 a 进入插入模式后,光标往后跳转一个字符,从跳转后位置开始输入
按 o 进入插入模式后,另起新的一行,从行首开始输入
4.底行模式
调出 / 隐藏行号:
set nu :显示行号
set nonu :隐藏行号
搜索 :
: /关键字 :按照关键字搜索数据,并显示高亮
保存和退出 :
w :保存
q :退出
wq :保存并退出
w! :在写保护文件情况下无法保存,强制保存。 ! 代表强制
q! :强制退出
wq! :强制保存并退出
强制的前提是 有权限 ,没权限照样不能强制。 ! 适用于强行修改写保护文件或配置文件等操作。
不退出 vim 执行 shell 命令 :
底行模式中,可以通过 !command 来完成不退出 vim ,执行 shell 指令。
执行命令之后,会跳转到终端,这时按下 Enter 键返回。
批量替换数据:
%s///g,可以对数据进行批量替换,g 代表全局,例如: %s/hello/HELLO/g ,是对全局中,将 hello 替换为 HELLO
分屏 :
在底行模式下使用vs file :创建一个 file 文件,这样就可以分屏。
如果想要知道我们当前处于哪个屏幕,只要明确一点:在 vim 中,光标在哪里,我们就是在编写哪个文件
通过 ctrl + ww 我们就可以切换到不同界面,分屏可以支持多个,但是推荐一般分屏 2 - 3 个就够用了,如果对于退出文件还是常规操作。
三、vim 的配置
vim 配置有两种方案:自定义配置 或 自动化配置 。
自动化配置 :
这种就是博主使用的配置方案。
某神为了解决小白在配置 vim 时十分繁琐的问题,于是在 gitee 中上传了一份自动配置方案。唯一的缺点是:该配置当前只支持 centos 7 版本。
首先打开 gitee 搜索 vimforcpp ,打开后往下划,然后看到安装方法
复制框起来的指令,到 Linux 终端:
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
然后敲击回车,输入 root 账号密码,即可开始安装,安装界面:
输入密码,等待安装成功后,根据提示输入:
source ~/.bashrc
就可以开始使用了~
该配置支持代码高亮,智能补齐、缩进,和语法提示等多种功能,接下来,就由我来演示一下: