ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux学习---Vim入门

2022-02-26 10:59:39  阅读:182  来源: 互联网

标签:文本编辑 模式 Vim --- 命令 Linux 末行 光标


Linux学习—Vim入门

Author:qyan.li

Date:2022.2.22


文章目录


一、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编辑器中执行

标签:文本编辑,模式,Vim,---,命令,Linux,末行,光标
来源: https://blog.csdn.net/DALEONE/article/details/123146651

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有