• Linux之vim的使用详细解析


    个人主页点我进入主页

    专栏分类:C语言初阶  C语言进阶  数据结构初阶    Linux    C++初阶    算法

    欢迎大家点赞,评论,收藏。

    一起努力,一起奔赴大厂

    目录

    一.vim简介

    二.vim的基本概念

     三.vim的基本操作

    3.1准备

    3.2光标在普通模式和插入模式中的移动

    3.3普通模式

    3.3.1复制粘贴

    3.3.2剪切粘贴

    3.3.3多行复制

    3.3.4光标的移动

    3.3.5撤销和撤销上一次撤销

    3.3.6批量注释和批量取消注释

    3.4底行模式

    3.4.1退出保存

    3.4.2强制执行

    3.4.3多窗口打开文本

    四.vim一键配置

    一.vim简介

            vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

    二.vim的基本概念

            vim包含很多种模式,但是最重要的是底行模式,普通模式,插入模式,普通模式是我们控制光标对字符的删除以及切换到我们的底行模式和插入模式,底行模式是进行文本的保存以及一些操作,插入模式是我们对文本进行修改底行模式和插入模式我们都可以按esc进行返回普通模式,普通模式中我们想进入插入模式我们需要按i才可以进入,我们普通模式想进入底行模式需要输入:才能进入,我们可以画图为:

    其中底行模式和插入模式不可以进行直接互换。

     三.vim的基本操作

    3.1准备

            在进行vim的基本操作前我们需要先下载vim,我们输入下面的指令进行vim的下载

    sudo yum install -y vim

    下载完成后我们创建一个文件然后使用vim打开,具体操作可以参考下面的指令第一行是创建文本,第二行是使用vim进行打开

    1. >>test.c
    2. vim test.c

    输入完成后我们可以看到出现了我们的vim编译器

    由于我是配置完成的vim,所以下显示的可能和大家的有些不同。此时我们就在我们的普通模式,我们输入i然后进行对文本的初始编写。

    1. 1 #include
    2. 2
    3. 3 int main()
    4. 4 {
    5. 5 printf("Hello Linux\n");
    6. 6 return 0;
    7. 7 }

    我们此时可以看到:

    3.2光标在普通模式和插入模式中的移动

            在普通模式和插入模式中我们想和以前一样使用鼠标是不可能的,这时候需要我们的键盘出手了,在普通模式中我们有两种方法进行光标的移动,一种是我们的上下左右移动键,第二种就是我们的

    HJKL

    这四个键,其中H是向左移动一个字符,L是向右移动一格字符,J是向下移动一个字符,K是向上移动一个字符。例如我们的光标在第7行的}哪里我们输入K可以看到:

    插入模式中我们需要通过上下左右键进行移动,不能通过HJKL进行移动。

    3.3普通模式

    3.3.1复制粘贴

            在这里复制粘贴包括两种复制粘贴一种是复制一行然后粘贴一种是复制n行然后粘贴,我们先说第一种复制一行然后粘贴,我们在普通模式下输入

    yy

    这时候我们光标在的那一行就被复制了我们再输入

    p

    就会在下一行进行复制

    接下来是复制n行然后复制,我们先输入n的值然后输入yy例如我们想复制3行,我们把光标移动到想复制的位置,然后输入

    3yy

    我们再输入

    p

     

    3.3.2剪切粘贴

            同样我们的剪切粘贴也分为两种一种是剪切一行然后复制一行,另一种是剪切n行然后复制n行,我们先看第一种我们把光标移动到想要剪切的位置输入

    dd

    我们再输入

    p

    我们再看另一种剪切n行然后粘贴例如我们想剪切3行,我们输入

    3dd

    然后输入

    p

    3.3.3多行复制

            我们的复制也可以进行多行复制例如我们想复制10000次第8行我们先复制第8行然后输入

    10000p

    3.3.4光标的移动

            在上面我们说了光标的上下左右移动如果我我们想将光标移动到开始位置呢?我们可以输入

    gg

    如果我们想让光标移动到结尾位置我们可以输入(必须大写)

    G

    如果我们想让光标移动到n位置,例如我们想让光标移动到5000的位置我们输入

    5000gg

    我们还可以让光标在一行中进行移动,移动到这一行的开始和结尾,例如我们想移动到这一行的结尾我们输入

    $

    我们想移动到这一行的开始我们输入

    ^

    我们还有逐个单词的移动例如我们想向后移动一个单词,我们输入

    w

    向前移动一个单词,我们输入

    3.3.5撤销和撤销上一次撤销

            我们有时候会遇到这种情况,我们不小心多写一段或者少些一段内容,或者不小心删除一段内容,这时候我们需要用到我们的撤销功能,撤销的指令就是

    u

    例如我们不小心多复制了10000行如下:

    这时候我们输入u就可以把那1000行进行撤销

    假如我们不小心多撤销了例如:

    我们就需要对撤销进行撤销,这时候我们需要输入指令

    ctrl r

    3.3.6批量注释和批量取消注释

            我们写代码时经常会遇到需要注释的地方,我们应该怎样批量注释呢?例如我们想将500行到510行进行注释,我们先将光标移动到500行

    我们先输入

    ctrl v

    然后进行移动进行选中(HJKL)

    然后输入

    I

    然后输入

    //

    然后输入两次esc

    这样我们的批量注释就完成了。

    对于我们的批量取消注释,我们先输入

    ctrl v

    然后进行选中

    然后输入、

    d

    这样批量取消数组就完成了。

    3.4底行模式

    3.4.1退出保存

            我们先进入底行模式,也就是先进入普通模式然后输入:就会进入到我们的底行模式

    我们输入

    wq

    就可以完成保存退出。

    3.4.2强制执行

            有时候我们会遇到不能执行的指令,例如某一个文本我们不能wq进行保存退出我们就可以输入

    !wq

    完成强制保存退出。
    利用!我们还可以完成一些操作,即使不退出vim我们也可以执行指令

    我们现在在底行模式中我们想创建一个test2.c的文件我们输入

    ! touch test2.c

    我们退出来就可以看到

    3.4.3多窗口打开文本

            我们想要打开多个文本,例如我们想将test.c和test2.c同时打开,我们先用vim打开test.c

    然后我们进入底行模式输入

    vs test2.c
    

    此时的光标在哪我们就是控制哪一个文本,这样我们就可以完成多文本的编写,我们关闭文本就是关闭此时的文本,我们看下边

    此时对test2.c进行编写我们想关闭test2.c在底行模式中输入

    wq

    我们重新打开,如果我们想进行编写test.c但是光标在test2.c我们输入

    ctrl w

    四.vim一键配置

            注意这个配置需要Centos7,并且必须不能在root账号中进行,我们直接输入指令

    curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

    卸载方法是输入指令

    bash ~/.VimForCpp/uninstall.sh

  • 相关阅读:
    【数据结构】P1 线性表+顺序表
    5+非肿瘤+WGCNA+PPI+实验,简单WGCNA分析思路,干湿结合
    Kubernetes 之 StatefulSet基本原理
    继承和组合
    面试官:Zookeeper集群怎么搭建?
    计算数组中每个元素的立方根numpy.cbrt()
    kernelbase.dll故障怎么处理的几种常见方法,有效的解决kernelbase.dll故障
    B-3:Web安全之综合渗透测试
    小程序源码:纯头像微信小程序源码下载,多分类头像自动采集
    NestJS——基于Node.js 服务器端应用程序的开发框架
  • 原文地址:https://blog.csdn.net/Infernal_Puppet/article/details/136285336