vim
🌴vim的概念
vim的前身是vi,vim是vi的升级版本,vim兼容vi中大多数指令集,并且vim还有一些新的特性在里面。
例如:语法高亮,可以在多种操作系统下运行的编辑器。
vi和vim是多模式编辑器,在这里主要介绍vim。
vim就是单纯的编辑器,它功能强大在于它多模式下方便我们更好的编写代码。
vim模式有12种之多,常见的模式差不多有五种,分别是:命令模式、插入模式、底行模式、替换模式、视图模式
其中前三种模式是我们最常使用的,也是接下来重点介绍。
- 命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
- 插入模式
该模式是我们后面用的最频繁的编辑模式,只有在Insert mode下,才可以对文本进行任意文字输入编辑。
- 底行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作,该模式下输入:
help vim-modes
查看vim的所有模式
在使用vim前当然要检查你的Linux中是否下载了vim。
在Linux命令行输入vim,映入眼帘是下面这样子的话证明我们是安装了vim的
想要退出输入
:q
即可
若是没有进入这个界面,说明vim没有安装,我们需要在Linux中手动下载vim
yum -y install vim*
🌴用vim创建文件
通常情况下,我们是先在当前目录下用
touch
命令先创建一个文件,然后再用编辑器打开这个文件进行编辑文本。
有了vim之后,可以不用提前创建一个文件,当前目录下若是没有这个文件,vim后面直接加这个文件名称,视为创建该文件
例如:我们要创建一个Test.cpp的文件,我们可以直接在Linux当前目录命令行输入下面操作:
vim Test.cpp
这样的方式可以省略
touch
创建文件步骤,但是这样的方式创建也是直接用vim打开了该文件,在里面我们没有编写内容的话,直接退出vim,该文件不会得到保存。
🌴vim不同模式下的操作
万事具备,我们终于可以编辑代码了,但是我们进入vim后,在键盘中输入想要的内容时却在屏幕面前没有任何反应。
脑袋不由浮出大大问号???我们便开始了胡乱输入…
混乱的输入,按倒莫名的字母后在屏幕中又有了字符输入的结果,这是为什么呢?
接下来就一一道来:
🌳vim模式转换
用vim打开一个文件时,默认所处的模式就是命令模式。该模式下,我们只有输入特定的指令集,才能在屏幕中有所反馈。
🌲命令模式切换至插入模式
上面说到我们胡乱输入后,按到某个字符可以进行编写,这是因为我们在命令模式下进入到了插入模式。
命令模式进入插入模式有三种方法:在命令模式下直接输入字母
a、o、i / A、O、I
- 按「 i / I 」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
- 按「a / A」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
- 按「o / O」进入插入模式后,是插入新的一行,从行首开始输入文字
怎么判断自己是否进入插入模式呢?
在vim中的左下方看到如图,INSERT即是进入了插入模式
插入模式退回命令模式输入
Esc
键即可。
🌲命令模式切换至底行模式
上面还提到了底行模式,在vim中插入模式下我们是不能进入底行模式的,我们得先退回命令模式才能进入底行模式。
那么怎么在命令模式下进入底行模式呢?
在命令模式下键盘输入:
shift + ;
其实就是冒号
[ : ]
;即是进入底行模式
判断是否进入底行模式依据就是:在vim中的左下角是否有冒号等待用户输入标志
这也就引出了三种模式下的关系:
vim中的模式很多,当使用者不知道当前所处的模式是处于一种什么样的状态,万能的
Esc
键,可以将使用者带回命令模式,该模式也可以认为其他任意模式的入口。
🌳命令模式下的指令集
声明:n是指在输入指令集前要输入的数字
🌲光标移动
在命令模式下,对光标进行上下左右移动,这里指代都是小写:上移
k
,下移
j
,左移
h
,右移
l
,都是移动一格。
当然我们也可以使用键盘右侧的上下左右,但是键盘离手就慢了,字母移动的光标可能对我们操作更加方便。
其他方式的光标移动:
按 [shift+g],也就是「G」:移动到文章的最后
按 [n shift+g ], 也就是「nG」:[ 100G ]表示光标移动到文章的第100行
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按[gg]:进入到文本开头
🌲删除文字
命令模式下常见的删除方式:
「x」:每按一次,删除光标所在位置的一个字符
「nx」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「nX」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「ndd」:从光标所在行开始删除#行
🌲复制粘贴
命令模式下的复制粘贴:
「yy」:复制光标所在行到缓冲区。
「nyy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「dd」:剪切光标所在的行到缓冲区,若是不进行粘贴,该指令集的作用就相当于删除改行
「ndd」:例如,「10dd」表示剪切从光标所在的该行“往下数”10行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
🌲其他操作
命令模式下光标所在字符替换:
「r」:替换光标所在处的字符。
「nr」:替换光标所在位置乃至后面n个字母
[shift + r] 也就是「R」:替换光标所到之处的字符,直到按下「ESC」键为止 (这个操作也被称为进入替换模式)
[shift + `] 也就是「~」:在光标所在处的字母转换成对应大小写字母(大写字母变成小写字母,小写字母变成大写字母)
命令模式下撤销操作:
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复(撤销的撤销)
注意:在没有退出vim的时候不管是否保存,撤销都是有用的。若是退出了vim,再次进入vim进行撤销操作无效
🌳底行模式下的指令集
🌲保存并退出vim
vim我们会基本操作了,但是内容写完后怎么退出vim呢?
其他模式下不能退出vim,只有底行模式下我们才可以退出vim编辑器。
当我们在命令模式下进行
shift + ;
进入底行模式后,输入以下指令:
: w (保存当前文件)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!,不存盘强制退出vim)
: wq!(输入wq!,强行写入保存并退出)
🌲进行多文本编辑
在VS2019或是VS2022中,我们创建的项目工程可以进行多个源文件或是头文件进行编辑。
那么在vim中能否实现相同操作呢?答案是可以的。
进入底行模式
shift + ;
,输入
vs
后面加想要打开的文件名称
注意:
vs
后跟的文件名在该目录下不存在,vim会默认帮你创建该文件,该文件若是没有进行内容编写保存,文件会销毁
如果你的电脑屏幕足够大,可以创建多个文件进行编辑。
在vim进行多个文件编辑的时候,底行模式退回命令模式输入
Ctrl + ww
可以进行文件之间进行切换,通过光标所在的位置来判断你所在文件的位置。
保存退出的时候,退出的是光标所在的文件,并不会说一下子退出vim,直到退出最后一个文件才会真正退出vim
🌲搜索相关字符关键字
在vim中支持查找功能,进入底行模式
shift+;
,输入
/
,再输入你想寻找的字符(
/
后面不需要空格直接加字符)
回车后,光标不会直接到第一个字符关键字所在处,会出现在原本输入搜索指令前的当前位置的下一行
vim会将文本中所有关于该字符关键字都用敞亮的语法显示出来
将字符关键字搜索到了后,如何将光标在关键字中进行切换呢?
**接下来我们直接在键盘输入
n
即可向下切换字符关键字,一直往下找的过程总得有个底,到最后一个关键字我们再输入
n
会直接到开头第一个关键字**
可以往下找文本字符关键字,那么是否可以往回找呢?例如
n
输入的太快,一不小心略过了,就很闹心
底行模式
shift+;
,输入
?
,后面接字符关键字,这个方法跟上面输入的
/
用法一样,但是体现的效果不一样
回车后,光标不会直接到最后一个字符关键字所在处,会出现在原本输入搜索指令前的当前位置的上一行
相关关键字也会用敞亮的语法显示出来
**此时,我们输入
n
会发现光标会往上查找关键字,当然到了第一个关键字后,我们再输入
n
会直接到文章最后一个字符关键字中**
🌲批量化修改字符内容
就上面的例子
假设我想将printf函数内部的字符hello world全部都修改成hello Linux,一行一行的修改真的让人头大。
就想到有没有一种方式可以将world直接修改成Linux大大减少繁杂的工作量。
进入底行模式
shift+;
我们输入
:%s/world/Linux/g
回车即可完成修改。
在这里输入指令需要注意的是:
%s///g
第一个
/
后面输入的是想要修改的字符,第二个
/
后面输入的是新的字符
🌴vim配置
我们刚下载好的vim就是一个普普通通的文本编辑器,给我们提供基本操作只有的文本编辑、代码编写等等;
vim自身虽然有多种模式可以给我们操作指令集方便我们进行编写,但是编写代码过程中vim是不带有语法或是语言识别的,在进行文本编写还是不够方便的。
例如:缩进、行号显示、语法高亮基本设置都没有
我们可以将vim配置成专属私人的专属编辑器。在进行vim配置的时候,我们得了解两个问题:
- 在哪里进行vim配置?
- 配置的vim是所有用户都可以用?还是单个用户设置单个用户自己使用?
🌳vim配置文件的位置
若是个人在配置自己vim的时候,需要在当前用户的主目录下
touch
创建一个名字为
.vimrc
的文件。
在
.vimrc
这个文件下配置vim,只适用于当前用户,其他用户vim是不会有所改变的
想要所有用户都能使用到同一个vim配置模板的话,我们需要在
/etc
目录下找到名字为
vimrc
文件,进行配置。
/etc
下的
vimrc
是系统中公共的vim配置文件,对该文件进行配置的vim是对所有用户都能生效
在了解了在哪里可以进行vim配置的时候,不妨上手试试设置一些简单的vim基础设置
当然在设置的时候需要在插入模式下进行:
- 设置语法高亮:syntax on
- 显示行号:set nu
- 设置缩进的空格数为4:set shiftwidth=4
- 自动缩进:set autoindent
- 在右下角显示光标位置的状态行:set ruler
vim的基本操作就讲到这里了,感谢大家支持!!!!!
版权归原作者 深夜吞食 所有, 如有侵权,请联系我们删除。