004 Linux 揭开神器 vim 面纱

01 开篇初识 vim

vim 功能吊炸天,但我们掌握一些常用的命令即可应对日常的使用了,不记流水账!

  • Linux 中最常用的编辑器是什么? vim !
  • vi 跟 vim 啥区别? vim 就是 vi 的增强版,功能更强些,别纠结这个细节,掌握 vim 就好😺。
  • 有几种模式?有四种模式,normal模式(默认模式)、编辑模式、命令模式、visual模式(这个模式不常用,下面不细说)。

02 normal 模式& 编辑模式 & 底线命令模式

004 Linux 揭开神器 vim 面纱

normal 模式

vim [文件名] # 即进入normal 模式 ,这就是默认的 normal 模式,在进入其他模式后,可以使用 Esc 键返回到这个模式。

编辑模式

normal 模式下按下 i、a、o、s,进入编辑模式,使用频度一般也是这个顺序,编辑模式下和在 Windows 里记事本里操作没啥区别。

  • i # insert,光标当前字符前插入
  • a #append, 光标当前字符后插入
  • o #下一行插入
  • s #不常用,删除当前字符并插入

底线命令模式

在编辑模式下对文件修改操作后,按Esc进入normal模式,normal模式下使用冒号(:)进入底线命令模式。
底线命令模式常用命令字符如下:

  • :q # 退出不保存
  • :q! # 强制退出不保存
  • :wq # 退出保存
  • :wq! # 强制退出保存

03 normal模式下的移动、复制粘贴、撤销与查找

移动

  • ctrl + f # 向下翻页
  • ctrl + b # 向上翻页
  • 0 # 行首
  • $ # 行尾
  • space # 空格键,一直向下移动一个字符。跟左方向键(→)的区别是,左方向键(→)只能在本行移动。 h、j、k、l 类似方向键的右下上左,顺时针,这些操作是体现 vim 牛的地方,可以飞快的跳转操作。
  • G # 大写g,移动到文末。
  • nG # n 是数字,代表行号。100G则是移动到第100行。1G文首,0G文末。
  • gg # 移动到文首。同样效果还有1G。

删除

  • dd # 删除当前行,可连续按d删除。
  • ndd # 删除当前行及之后的多少行,如: 100dd,删除当前及之后的100行
  • dG #删除当前行至末尾的所有行(光标放到首行,则可以删除全部)
  • 删除列操作
    1.光标定位到要操作的地方。
    2.CTRL+v 进入”可视 块”模式,选取这一列操作多少行。
    3.d 删除。

撤销

u # 撤销操作。这应该是非常常用的操作了。如果上面使用 dd 删除错了,可按一下 u 进行撤销。编辑模式下撤销需要按 Esc 进入 normal 模式,再按 u 撤销。

复制粘贴

  • y # 进入复制模式。
  • yy # 复制当前行。
  • nyy # n 是数字,代表行号。如: 16yy,即复制当前行至16行的内容。
  • p # 粘贴当前vim剪切板中内容。
  • yyp # 常用组合键,即在上面使用 yy 复制后,可立即使用 p 粘贴,或者移动到指定地点后按个 p,即把刚才的内容粘贴过来了。
  • ggyG # 全选复制。看这个命令,到行首,按 y 进入复制模式,再移动光标到文末,然后可以按 p 粘贴了。这里有个缺陷,这样的复制内容只能在 vim 中进行粘贴,一旦退出 vim,剪切板中则无此内容了。那怎么办呢? 看下面这个命令。
  • gg”*yG、gg”+yG # 这两个全选复制的命令,可以将内容带出到vim之外。

查找

normal 模式下输入 / 或 ? 。

  • /hello # 即向下寻找hello这个字符串。按n会一直向下找。
  • ?hello # 即向上寻找 hello 这个字符串。按n会一直向上找。
  • n、N # 配合/、?则会很有趣,如: /hello Enter 后再按 n,一直向下找; N 一直向上找; ?hello Enter 后再按 n,一直向上找, N 一直向下找。

04 底线命令模式的查找替换

替换,则是要进入底线命令模式了,上面说过了,即在 normal 模式下使用冒号 : 进入此模式。

  • :%s/old/new/g # 全局替换,将 old 字符替换成 new 。
  • :[n1],[n2]s/old/new/g # n1、n2为行号,意思是从第n1行到n2行,指定行数区间替换。
  • :[n1],$s/old/new/g # 从第 n1 行到最后一行的替换。

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

Original: https://www.cnblogs.com/bilahepan/p/15819514.html
Author: 不甩锅的码农
Title: 004 Linux 揭开神器 vim 面纱

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/683496/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • iPhone设置微信Callkit

    国内的苹果手机的微信接听没有提醒,主要原因是出于种种原因微信限制了Callkit。如果想要锁屏接听,像接电话一样。方式一是更换绑定境外的手机号。这里使用Google Voice的虚…

    技术杂谈 2023年6月1日
    0192
  • Jni OnLoad()和OnUnload()

    除了前面说的自定义JNI函数之外,JNI还提供了两个特殊函数,它们是JNI_OnLoad()和JNI_OnUnload(),分别在加载库和卸载库的时候调用。 1、JNI_OnLoa…

    技术杂谈 2023年5月30日
    086
  • 【JS】WPS宏编辑器

    https://open.wps.cn/docs/officehttps://www.cnblogs.com/nutix/p/15189657.html excel处理 funct…

    技术杂谈 2023年5月31日
    0110
  • svg图标爽使用

    svg图标爽使用 一、总结 一句话总结: 【网站】:https://iconpark.oceanengine.com/official: 在这个网站可以选择好颜色和样式直接下载下来…

    技术杂谈 2023年5月31日
    084
  • 4、Swift协程详解:结构化并发与TaskGroup

    TaskGroup 的基本用法 我们现在已经知道怎么在自己的程序里面调用异步函数了。 不难发现,调用异步函数的关键点是创建 Task 的实例。通过 Task 的构造器或者 deta…

    技术杂谈 2023年6月1日
    074
  • Spark学习(2)RDD编程

    RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、弹性、里面的元素可并行计算的集合 R…

    技术杂谈 2023年7月24日
    057
  • LRU算法简单实现

    LRU:最近最少使用缓存 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访…

    技术杂谈 2023年6月21日
    0110
  • Gitee多分支提交被拒

    方法一首先 git log 查看commit记录, 找到远端本地冲突之前的commit git reset –soft [commitID] 1、git pull origin …

    技术杂谈 2023年6月21日
    079
  • 策略模式、策略模式与Spring的碰撞

    策略模式是GoF23种设计模式中比较简单的了,也是常用的设计模式之一,今天我们就来看看策略模式。 实际案例 我工作第三年的时候,重构旅游路线的机票查询模块,旅游路线分为四种情况: …

    技术杂谈 2023年7月25日
    054
  • 020 Linux 20个宝藏命令案例

    1 JDK 相关的查找命令 (1)确认是否安装 JDK (2)查找 java 命令目录的位置 (3)查找 java 命令的位置的软链地址 (4)通过软链地址查找 JDK 的安装目录…

    技术杂谈 2023年7月10日
    061
  • Call Hierarchy With IntelliJ IDEA

    Call Hierarchy allows you to quickly see all the places where a function or method is used…

    技术杂谈 2023年5月31日
    0100
  • react 代码优化

    1.减少setstate:setstate会增加render的次数,从而影响性能。如果涉及到与视图层无关的属性,直接当做class实例的属性,而不是state的状态。这样改变这个属…

    技术杂谈 2023年6月1日
    087
  • 一个 curl 配置引发的惨案

    问题 这两天想装新版本的 node,发现 nvm 一直报下面这个错误👇。我反复 Google 了,但是并没有找到一条我能用的。 痛苦 我起初一直怀疑是我用的 zsh-nvm 抽疯,…

    技术杂谈 2023年7月11日
    096
  • 分页SQL语句的性能比较

    数据量暂时在10来万,排序字段是几个索引里面的一个索引的二级索引第一方案是比较传统的,第二方案用了表变量,有说数据量大的时候应该用临时表,不知道这个量要多少。感觉。。 DECLAR…

    技术杂谈 2023年7月11日
    060
  • 在springboot中使用拦截器

    在springboot中使用拦截器 拦截器Interceptor,是SpringMVC中的核心内容,利用spring的AOP(Aspect Oriented Programming…

    技术杂谈 2023年7月11日
    079
  • nodejs的http请求axios

    http相关modules HTTP – the Standard Library Request Axios SuperAgent 推荐使用axios 或者super agent…

    技术杂谈 2023年5月31日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球