Linux教程

Linux学习---Vim入门

本文主要是介绍Linux学习---Vim入门,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Linux学习—Vim入门

Author:qyan.li

Date:2022.2.22


文章目录

      • ``Linux``学习---``Vim``入门
        • 一、``Vim``简介
        • 二、``Vim``文本编辑
        • 三、``Vim``程序编译:


一、Vim简介

Vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

简单而讲:VimUnix及类Unix系统中一种文本编辑器

二、Vim文本编辑

  • Vim工作模式

    Vim中总共包含三种工作模式,分别为1. 命令模式 2. 文本输入模式 3. 末行模式

    Vim可以在上述三种模式之间进行切换:

    1. 借助于vi test.txt命令,可以创建名为test.txt的文件,并以Vim的形式打开,此时进入vim的命令模式,此时键入的所有代码均为命令

    2. 在命令模式下,键入字母i可以进入文本编辑模式,此时用户可以在此界面任意输入文字或者代码进行文本编辑

    3. 文本编辑完成后,按下esc键可以由文本编辑模式回退至命令模式

      Tips:

      文本编辑模式无法直接转换至末行模式,必须以命令模式为中间的媒介

    4. 命令模式下输入:即可由命令模式转换为末行模式,在末行模式下,所有用户输入均视作末行命令

  • Vim常用命令:

    • 命令模式命令:

      1. 命令模式切换至文本输入模式:

        i:在光标前插入一个字符

        a:在光标后插入一个字符

        o:在下一行插入一个字符

        shift + i:在行首插入一个字符

        shift + a:在行末插入一个字符

        shift + o:在上一行插入一个字符

        s:删除一个字符并插入一个字符

        shift + s:删除一行内容并插入一个字符

      2. 命令模式下光标移动:

        h:向前移动

        j:向下移动

        k:向上移动

        l:向右移动

        小Tips:

        上述命令,个人感觉较为鸡肋,模式转换,大部分情况下仅需记忆i:insert即可,其余可作为了解。

        光标移动,经过自己电脑测试,完全可以有小键盘上的上下左右键代替

      3. 命令模式下光标跳转:

        • 借助于number + G可以跳转至指定number
        • 借助于gg可以跳转至文件首部
        • 借助于G可以跳转至文件尾部
        • 借助于0可以将光标移至行首
        • 借助于$可以将光标移至行尾
      4. 命令模式下内容删除:

        • x删除光标选中的字符,但不改变工作模式
        • s删除光标选中的字符,并切换至文本编辑模
        • dw一次性删除整个单词(光标放置在单词的首字母上进行操作)
        • shift + d或者d$完成删除一段内容,从选中字母开始,删除后面所有内容
        • d0从选中字母开始,删除前面的所有内容
        • dd删除整行内容
        • number + dd删除多行内容,删除从本行开始的number行的内容
        • v + d删除选中的内容,光标放置在首字母上,按下v先后移动选中待删除的文本,然后通过d删除
        • r替换单个字符,按下r后,输入想要替换的单词
      5. 命令模式下复制粘贴:

        • yy实现整行内容的复制

        • dd实现整行内容的剪切

          小Tips:

          严格的讲,Vim中本质上并不存在删除功能,所有删除功能的实现,本质上都是借助于剪切完成的

        • p将复制或者剪切的内容粘贴在光标的下一行

        • shift + p将复制或者剪切的内容粘贴在光标所在行

        • number + yy进行从本行开始number行的复制

        • v + yy可以针对于特定的内容进行选中,而后复制

      6. 命令模式下内容查找:

        命令模式下的内容查找一般分为两种情况:

        1. 已知查询目标内容,且在本界面中已经发现,但是希望进一步查找文章中与其相同的单词
        2. 已知查询目标内容,但是在当前界面中并没有发现,希望在文章中查找到该内容

        Vim文本编辑器根据上述两种情况,提供两种内容查找的方式:

        • 命令模式下输入/,编辑器由命令模式进入末行模式,其后输入待查询的目标单词,按下回车键,光标定位在查询到的第一个内容的位置

          Tips

          回车键按下后,可以借助于n定位下一个查询到的单词,借助于shift + n可以定位至上一个查询到的单词

          命令示例:/<待查询单词> + enter + <n向下查询><N向上查询>

        • 命令模式下,将光标定位在任意单词位置上,按下*可以向后在文章中查找目标单词,按下#可以向前在文章中查找目标单词

      7. 命令模式下撤销:

        • u在命令模式下实现撤销操作,回退至操作前的形式
        • crtl + r命令模式下实现反撤销操作
      8. 命令模式下分屏:

        • crtl + alt + t实现终端的快捷键打开
        • 终端中再次键入crtl + shift + t实现在Vim中开启两个标签窗口
    • 末行模式命令:

      1. 末行模式保存、退出:

        • w保存

        • q退出

          二者可以结合使用,wq实现保存并退出操作

      2. 末行模式分屏:

        • 末行模式下输入sp,并回车实现横分屏

        • 末行模式下输入vsp,并会车实现竖分屏

          Tips:

          1. 分屏操作后,可以借助于crtl + ww实现光标在不同屏幕上的切换
          2. 借助于q退出当前窗口,也可以借助于qall退出vi,直接进入bash终端,同时可以wqall先保存,后退出
      3. 末行模式替换:

        • 单行替换方法:

          将光标放置在待替换行上,键入命令s /原数据/替换数据enter键实现命令生效

        • 通篇替换方法:

          键入命令%s /原数据/替换数据

        • 区域替换方法:

          区域替换的方法即在s前面添加区域限定,如行号,键入命令11,22s /原数据/新数据

          Tips

          上述的所有替换命令均只对每行检测到的第一个单词生效,单行后续再出现目标词汇,不会进行替换,如果想将所有符合要求的词汇进行替换,需要在命令结尾添加/g标记

      4. 末行模式命令呼出:

        • crtl + p呼出上一条命令
        • crtl + n呼出下一条命令

三、Vim程序编译:

借助于Vim代码编写完成后,bash终端输入g++ hello.cpp -o a.out即可以实现c++文件的编译,当前目录增加a.out文件,直接执行此文件实现程序执行./a.out

Tips:

  1. test.c文件编译类似,将g++换为gcc即可
  2. 上述命令在bash终端中完成,同样可以在命令前添加!实现在Vim编辑器中执行
这篇关于Linux学习---Vim入门的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!