• Vim学习笔记


    博客主页:https://tomcat.blog.csdn.net
    博主昵称:农民工老王
    主要领域:Java、Linux、K8S
    期待大家的关注💖点赞👍收藏⭐留言💬
    家乡

    模式介绍

    Vim有以下四种主要模式:

    • 正常(normal)模式(也称为普通模式),缺省的编辑模式;如果不加特殊说明,一般提到的命令都直接在正常模式下输入;在任何其他模式中,都可以通过键盘上的Esc键回到正常模式。
    • 插入(insert)模式,输入文本时使用;比如在正常模式下键入 i(insert)或 a(append)即可进入插入模式。
    • 可视(visual)模式,用于选定文本块;教程中已经提到可以用键v(小写)来按字符选定,Vim里也提供其他不同的选定方法,包括按行和按列块。
    • 命令行(command-line)模式,用于执行较长、较复杂的命令;在正常模式下键入冒号(:)即可进入该模式;使用斜杠(/)和问号(?)开始搜索也算作命令行模式。命令行模式下的命令要输入回车键( Enter)才算完成.

    按下 ESC 键会带您回到正常模式或者撤消一个不想输入或部分完整的命令。

    此外,Vim也有个选择(select)模式,与普通的Windows编辑器行为较为接近,选择内容后再输入任何内容,将会替换选择的内容。在以可视模式和选择模式之一选定文本块之后,可以使用Ctrl-G切换到另一模式。这个模式主要是为了模拟 Windows 编辑器的行为,并不是Vim的主要用法,使用它反而会给Vim里的自动化带来麻烦,所以我们也就不多作介绍了。

    指令概览

    基础指令
    请添加图片描述
    完全指令
    请添加图片描述

    启动退出

    • 进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
    • 退出 Vim 编辑器,请输入 :q! <回车> 放弃所有改动。或者输入 :wq <回车> 保存改动。

    移动光标

    h:左移
    j:下行
    k:上行
    l :右移

    • 0 (数字零): 移动光标到行首。
    • 数字+w:如2w,使光标右移两个单词,以单词后的空格为计数的标准,计数包括光标本身的单词,光标将停在目标单词的第一个字符。
      在这里插入图片描述
    • 数字+e:如2e,使光标右移两个单词,以单词本身为计数的标准,计数包括光标本身的单词,光标将停在目标单词的最后一个字符。
      在这里插入图片描述

    G:可以使得当前光标直接跳转到文件最后一行。
    gg:光标直接跳转到文件第一行。
    %:查找配对的括号,包含( )、[ ]、{ }。

    插入

    i:在光标所在字符前开始插入
    a:在光标所在字符后开始插入
    o:在光标所在行的下面另起一新行插入
    s:删除光标所在的字符并开始插入
    I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
    A:在光标所在你行的行尾开始插入
    O:在光标所在行的上面另起一行开始插入
    S:删除光标所在行并开始插入

    删除

    以下所有删除实际上是剪切,删除的内容会被存储在剪切板中。可以通过p进行粘贴。

    x:删除光标所在位置的字符
    de:删除 [ 光标所在位置,光标所在单词的最后一个字符)
    dw:删除 [ 光标所在位置,下一个单词的第一个字符)
    d$:删除 [ 光标所在位置,本行最后一个字符]
    dd:删除该行。
    cw / ce:删除 [ 光标所在位置,光标所在单词的最后一个字符),然后在光标所在位置进入编辑模式。
    c$:删除 [ 光标所在位置,本行最后一个字符],然后在光标所在位置进入编辑模式。

    复制

    按v进入可视模式。
    移动光标,以选中需要复制的文本。
    按y复制。
    将光标移动到目标位置
    按p粘贴

    替换

    r:替换光标所在字符,输入替换后的字符后,立刻退出编辑模式。
    R:替换光标所在字符,输入替换后的字符后,光标向右移动一个位置,准备替换下一个字符,按才退出替换的状态。
    :s/old/new :在一行内替换头一个字符串 old 为新的字符串 new。
    :s/old/new/g 在一行内替换所有的字符串 old 为新的字符串 new。
    :#,#s/old/new/g:替换两行之间出现的每个匹配串,其中 #,# 代表的是替换操作的若干行中 首尾两行的行号。
    :%s/old/new/g:在文件内替换所有的字符串 old 为新的字符串 new。
    :%s/old/new/gc:会找到整个文件中的每个匹配串,并且对每个匹配串,提示是否进行替换。

    撤销

    u (小写的u):撤消以前的操作。
    U (大写的U):撤消在一行中所做的改动。
    CTRL-R:撤消以前的撤消命令,恢复以前的操作结果。

    搜索

    • 在正常模式下输入 / 字符。您此时会注意到该字符和光标都会出现在屏幕底部,这跟 : 命令是一样的。
    • 接着输入 待查找的字符串,然后按回车键。
    • n键查找下一个。按N查找上一个。
    • 如果您想逆向查找字符串,请使用 ? 代替 / 进行。

    信息

    CTRL-G:显示当前编辑文件中当前光标所在行位置以及文件状态信息。

    设置

    set number: 显示行号,可简写为set nu
    set nonumber:关闭行号,可简写为 set nonu
    set list:把制表符显示为^I ,用$标示行尾。
    set readonly:设置只读。
    set tabstop=4:设置 tab space 为4个空格,可简写为set ts=4,此处的4可以换为任意正整数。

    外部命令

    输入! 然后紧接着输入一个外部命令可以执行该外部命令。

    技巧

    Vim的行内编辑可以归纳为[n]at

    • [n]是可选的量词,表示处理对象的数量。
    • a表示action,可以是c(change),y(yank),d(delete)。
    • t表示target,可以是w(word),e(end),$(行尾),0(行首)。
    • c是change,执行c动作后会进入编辑模式,d是delete,执行d动作后不会进入编辑模式,注意二者区别,灵活使用。
    • w和e的区别在于如何处理空格,w把空格当做当前word的一部分,e则不处理空格。
    • 关于word间空格的一个例外是,c不处理,所以cw和ce是一样的,而y,d则会处理空格,所以yw,ye,或dw,de不一样。
    • W或E则表示在action处理时包括标点。

    如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。

  • 相关阅读:
    链表经典面试题(三)
    postgis空间数据导入及可视化
    972信息检索 | 第六章 专业性书目信息检索系统
    计算机缺失d3dcompiler_47.dll解决方案,如何修复电脑缺失d3d文件
    DirectX11 With Windows SDK--06 使用ImGui
    Spark学习笔记(二)
    【一:实战开发testng的介绍】
    ChatGPT API使用介绍
    C++模拟OpenGL库——图片处理及纹理系统(二):图片Alpha值混合操作
    java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码
  • 原文地址:https://blog.csdn.net/monarch91/article/details/129925025