【Linux】vim工具篇

目录

  • 一、vim的多模式
    • [1.1 命令模式](#1.1 命令模式)
      • [1.1.1 光标移动](#1.1.1 光标移动)
      • [1.1.2 复制及撤销](#1.1.2 复制及撤销)
      • [1.1.3 剪切及删除](#1.1.3 剪切及删除)
      • [1.1.4 替换](#1.1.4 替换)
      • [1.1.5 批量化注释/去注释](#1.1.5 批量化注释/去注释)
    • [1.2 底行模式](#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+ddp

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默认会在用户的家目录下找一个隐藏的配置文件.vimrcvim的那些自动缩进等功能是通过这个文件配置的,而这个文件是默认是没有的。

如何验证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账号,我们一同成长!
(~ ̄▽ ̄)~

相关推荐
码农hbk5 小时前
Linux signal 图文详解(三)信号处理
linux·信号处理
bug攻城狮6 小时前
Skopeo 工具介绍与 CentOS 7 安装指南
linux·运维·centos
宇宙第一小趴菜6 小时前
08 修改自己的Centos的软件源
linux·运维·centos
bug攻城狮6 小时前
彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声
linux·运维·服务器·centos·vim
XMYX-06 小时前
Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例
linux·运维
轻松Ai享生活6 小时前
5 天学习 Linux Kernel 主要原理 | Day 3:内存管理与Swap机制
linux
轻松Ai享生活6 小时前
QAT 与 GPU 在SHA-1 运算中的优劣
linux
行思理7 小时前
linux 安全与防护,全方向讲解
linux·安全·github
tan180°7 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎