目录
- 一、vim的多模式
- 1.1 命令模式
- 1.1.1 光标移动
- 1.1.2 复制及撤销
- 1.1.3 剪切及删除
- 1.1.4 替换
- 1.1.5 批量化注释/去注释
- 1.2 底行模式
- 二、vim的配置
个人主页<—请点击
Linux专栏<—请点击
一、vim的多模式
vim
是一款功能强大的文本编辑器,它编辑代码主要围绕命令展开,vim
下常见的模式有命令模式、插入模式和底行模式。
如上图,vim
就是所安装的一款软件,没有什么神秘的地方。
现在我想写一段代码,我们就可以使用vim
了。
使用vim
打开之后,默认是在命令模式下,你会发现你按电脑的按键屏幕没有反应,有时候你触碰到某个按键会有反应。如果你要写代码就要切换到插入模式,按i
键就可以切换,插入模式按Esc
键就能切换到命令模式。
此时关注左下角的图标,会发现命令模式切换到插入模式是这样的:
切换到插入模式就可以写代码了,你会发现vim
使用起来像记事本一样,没有自动空行以及代码提醒功能,这些功能是可以配置的,稍后会讲解。
我现在写了一份代码,可我该怎么退出呀?
想要退出就需要切换到底行模式,此时插入模式是无法直接切换成底行模式的,需要回退到命令模式,再按Shift + ;
键也就是:
切换到底行模式,底行模式按Esc
切换到命令模式。
在底行模式下输入wq保存并退出
按回车就退出了。
1.1 命令模式
为了详细讲解,我们需要给代码加上行号,即切换到底行模式输入set nu
,去除行号输入set nonu
。
1.1.1 光标移动
在命令模式下对光标做快速移动:Shift+g:移动到最后一行,gg:移动到第一行,n+Shift+g:快速移动到第n行
。
现在我要快速移动到文本的第666
行,即666+Shift+g
:
Shift+6=^
:快速移动到当前行开始,Shift+4=$
:快速移动到当前行结尾。
光标的控制h:左、j:下、k:上、l:右
,当然使用键盘上的方向键也是可以的,但为什么会有这四个键呢?因为早些时候键盘上没有方向键。
n+h/j/k/l
:进行光标的快速移动。
w
:按照单词为单位向右移动,b
:按照单词为单位向左移动。n+w/b
:按照n
个单词为单位快速右/左移动。
1.1.2 复制及撤销
yy
:复制光标所在的行,p
:将复制内容粘贴到当前行的下一行。
n+yy
:拷贝从当前光标所在行往下的n
行文字,n+p
:将复制的内容重复粘贴n
次。
u
:撤销操作。Ctrl+r
:对u
的撤销进行撤销。假设你对上次的撤销操作后悔了,你可以撤销上次的撤销操作。
注意:只要没有退出vim
,随时可以进行撤销操作,一旦退出,u/Ctrl+r
就不起作用了。
1.1.3 剪切及删除
dd
:删除当前行,n+dd
:删除从当前行开始向下的n
行。如果后续没有进行p
操作,那就是删除,如果后面进行p
操作,那就叫剪切。
对文件进行100+dd
和p
:
x
:删除光标所在字符,连续x
会向右删除。Shift+x=X
:向左删除。n+x/n+Shift+x
:连续删n
个。
1.1.4 替换
~
:快速进行大小写转换。
r
:替换光标所在位置的一个字符。例如对光标所在位置进行r+2
:
n+r
:替换光标所在位置及之后的n-1
个位置的字符。例如6+r+1
:
Shift + r
:进入替换模式,批量化的内容替换。Esc
再切换成命令模式。
会直接对之前的内容进行替换。
1.1.5 批量化注释/去注释
想要选择区域,我们需要进入到视图模式,即Ctrl+v
进入视图模式,Esc
切换成命令模式。
- 批量化注释
Ctrl+v
进入视图模式,hjkl
进行区域选择,Shift+i=I
进入插入模式输入//
,按Esc
切换成命令模式完成注释。
- 批量化去注释
Ctrl+v
进入视图模式,hjkl
进行区域选择,按d
删除注释。
1.2 底行模式
w!
:强制保存,q!
:强制退出,wq!
:强制保存并退出。
底行模式输入set nu
增添行号,去除行号输入set nonu
。
/XXX
:匹配搜索,按n
匹配到下一个最近的XXX
。
!cmd
:不退出vim
,可以直接执行cmd
命令。例如在vim
中对正在写的文件进行编译运行。
%s/src/dst/g
:将文本中的src
替换成dst
。例如将打印信息换掉。
vim
本身就有创建新文件的作用,了解这个之后,我们继续了解。我们平常写代码有时候会分成多文件管理,如头文件的声明,头文件的定义及源文件,在vim
下我们也可以这样管理。
在底行模式下,输入vs
即可进行分屏操作,Ctrl+ww
即可实现光标在多个分屏之间的移动。
在编译时总会有错误的时候,这时系统会直接报出错误的地方,此时我们使用vim
打开源文件时光标可能并不在错误附近,一下一下挪太麻烦了,我们可以在打开时光标直接定位到错误的位置:vim 文件名 +行号
。
扩充:从命令模式进入插入模式,按a
或按i
或按o
。从命令模式退出vim
,按Shift+zz
,等同于wq
。
二、vim的配置
当前的vim
没有自动缩进功能,什么功能都没有,我们使用vim
时,vim
默认会在用户的家目录下找一个隐藏的配置文件.vimrc
,vim
的那些自动缩进等功能是通过这个文件配置的,而这个文件是默认是没有的。
如何验证vim
会默认打开.vimrc
这个文件呢? 我准备了一个写入以下代码的文件。
我们创建.vimrc
,并在其中写入一行set nu
。
接下来,我们再次使用vim
打开code.c
:
它就默认加上行号了!所以,对vim
做配置,本质是将配置项写入到/home/XXX/.vimrc
配置文件中。
所以进行vim
的配置就转化成了我们需要写入哪些配置项。
即使是将功能齐全的配置项全部添加到.vimrc
中,vim
依旧会很难用,想更好用此时你就需要安装vim
插件,你会发现配置vim
比较麻烦。
有没有一键安装vim
的呢? 诶,有的。 这个命令不要在root
用户下运行,在普通用户下运行即可,curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
。接下来你就有了一个功能强大的vim
。
注意:配置好vim
后只会在当前用户账号下有效。
配置好后,有什么极个别命令不符合你的要求可以配合大模型搜索相应的配置项,并在.vimrc
中自主搜索修改即可。
总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~