【Linux学习笔记】代码编辑工具vim

news2025/1/10 11:46:48

    • 1. vim工具基本模式的转换
    • 2. vim命令模式下的各种编辑命令
      • 2.1. 光标行定位
      • 2.2. 光标自由定位
      • 2.3. 复制粘贴
      • 2.4. 删除
      • 2.5. 文本的大小写替换
      • 2.6. 文本的替换
      • 2.7. 文本的前删后删
      • 2.8. 撤销操作
    • 3. vim底行模式下的命令
      • 3.1. 设置行号与取消设置行号
      • 3.2. 分屏操作
      • 3.3. 在不退出vim的情况下执行Linux命令
      • 3.4. 字符串替换
    • 4. vim的配置文件

vim是Linux系统下的一个功能强大,多模式的编辑器。如果要拿Windows中的一个编辑器类比,那就是记事本。

1. vim工具基本模式的转换

简单的介绍一下vim的使用,如图所示:

img

img

img

img

三种模式的相互转换图:

img

2. vim命令模式下的各种编辑命令

2.1. 光标行定位

1. 行右定位

命令:shift + 4(连按,4是键盘上面的4,不是小键盘的数字4)

功能:把光标所在位置直接定位到所在行的最右边。

示范:

img

现在我进行定位操作,将光标定位改行的最右端。

img

2. 行左定位

命令:shift + 6(连按,6是键盘上面的6,不是小键盘的数字6)

功能:把光标所在位置直接定位到所在行的最左边。

示范:

img

现在我在命令模式下,输入指令shift + 6,即可将光标定位到该行的最左端。

img

3. 顶部定位

命令:gg(连按)

功能:把光标所在位置直接定位到最顶部。

示范:

img

在命令模式下,输入指令gg,即可将光标定位到最顶部。

img

4. 底部定位

命令:shift + g(连按)

功能:把光标所在位置直接定位到最底部。

示范:

img

在命令模式下,输入指令shift + g,即可将光标定位到最底部。

img

5. 任意行定位

在底行模式下输入指令 set nu 即可显示现在文本的行数。

命令:n + shift + g(n代表的是具体的数字)

功能:将光标定位到第n行的位置

示范:

img

在命令模式下,输入1 + shift + g,即可将光标定位到第1行。

img

2.2. 光标自由定位

上面讲了光标的行定位,可以把光标定位到任意行的位置。

接下来讲一讲光标上下左右的自由定位。需要用到的是 h j k l 四个字母。

  1. h代表的是光标向左移动1位。
  2. j代表的是光标向下移动1位。
  3. k代表的是光标向上移动1位。
  4. l代表的是光标向右移动1位。

记忆小技巧:

看到键盘上的4个字母的位置。

  • h在最左边,可以认为向左移动。
  • j可以认为是jump的单词的缩写首字母,向下跳就是向下移动。
  • k对应的不是最右边,向下和向上的功能也有了,自然就是向上移动咯。
  • l在最右边,可以认为向右移动。

具体的操作就不做示范了,感兴趣的可以自行尝试一下。

另外的,光标还有其他的定位方式。

1. 按照单词向前定位

指令:w

功能:向后按照单词定位

示范:略

2. 按照单词向后定位

指令:b

功能:向前按照单词定位

示范:略

2.3. 复制粘贴

1. 复制

指令:yy

功能:针对光标所在行进行复制

示范:

img

img

2. 粘贴

指令:p

功能: 将复制的文本进行粘贴

示范:如上图。

其中yy(复制) 和 p(粘贴)支持 nyy 和 np操作(n代表的是具体的数字)。

  1. 10yy代表的是从光标所在行开始数10行进行文本的复制
  2. 10p代表的是将文本内容复制10次。

具体的操作就不做演示了,有兴趣的可以自行尝试!

2.4. 删除

命令:dd

功能:针对光标所在行的内容进行删除

示范:

img

输入删除命令,会把光标所在行的内容删除。

img

其中ndd(n代表的是一个具体的数字),指定删除从光标所在行开始删除n行的内容。

搭配上复制命令(p),可以形成剪切的效果。

img

我输入 3dd,然后将光标移动到最底部,看看效果。

img

另外的,还有按照单词删除的命令。

命令:cw

功能:按照单词进行删除

示范:

img

img

删除后,会自动进入插入模式。另外cw也支持cnw操作,具体的含义就是删除n个单词。

2.5. 文本的大小写替换

命令:shift + ~

功能:将光标所在行的内容逐个进行大小写的替换,如果是大写,则换成小写,如果是小写,则换成大写。

示范:

img

输入命令shift + ~后,看看效果。

img

2.6. 文本的替换

  1. 批量化替换

指令:shift + r

功能:进入替换模式。

示范:

img

img

2. 逐个替换

指令:r

功能:将光标选中的一个内容进行替换

示范:

img

按1下r,然后输入你想要更换的字符。

img

2.7. 文本的前删后删

  1. 前删

命令:shift + x

功能:从光标开始,逐个删除光标前的内容(不包括光标)

示范:

img

输入指令shift + x

img

2. 后删

命令:x

功能:从光标开始,逐个删除光标后的内容(包括光标)

示范:

img

输入指令x

img

2.8. 撤销操作

1. 撤销操作

指令:u

功能:将刚才所做的操作撤销,类似Windows系统下的crtl + z

示范:

img

操作完成后,我再按u撤销刚才的dd操作。

img

img

2. 取消撤销操作

指令:crtl + r

功能:取消撤销操作,类似Windows系统下的crtl + y

示范:略

3. vim底行模式下的命令

3.1. 设置行号与取消设置行号

1. 设置行号

命令:set nu

功能:对当前文本进行行号的显示。

示范:

img

img

2. 取消设置行号

指令: set nonu

功能:取消当前文本的行号显示

示范:

img

3.2. 分屏操作

命令: vs + 文件名

功能:把想要分屏的文件与当前文件进行分屏编写。

示范:

img

注意!光标在哪个文件显示,就说明你当前选中了哪个文件!

当你选中了光标所在的文件,进行的所有操作都是在该文件下操作的,不会影响另一个文件。

如果你想更换文件的选择,只需要当前文件的命令模式下,输入crtl + ww即可完成光标跳转到另一个文件的操作。

3.3. 在不退出vim的情况下执行Linux命令

进入到了vim工具,如果你想查询相关的手册,按照一贯的思维是要退出vim工具的。

但是如果在vim工具下,进入到底行模式,输入! + 相应的Linux命令,即可在不退出vim工具的情况下执行相关的Linux命令。

示范:

img

img

按ENTER重新进入vim工具。

img

3.4. 字符串替换

指令:%s/字符串1/字符串2/g

功能:按照上面的指令,就是讲字符串2换成字符串1。

示范:

img

img

4. vim的配置文件

从下载开始到使用,vim工具用起来就像个记事本一样,命令很多,而且写代码也不太方便。

这是因为这是vim的最初模样,你可以根据你自己的喜好去配置你的vim,让你的vim用起来更得心应手。

下面来说说vim的配置。

  1. 首先在用户的家目录下创建一个.vimrc文件用以配置vim.

img

  1. 上网搜索各种vim的配置

例如像这样的

img

都可以加到.vimrc文件中去,用以配置你的vim。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1100306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Postman简单使用

文章目录 一.接口测试流程二、Postman接口测试工具三、接口关联四、全局变量和环境变量 一.接口测试流程 拿到API接口文档(从开发拿或者抓包获取),熟悉接口业务,接口地址,错误码等等 编写接口的测试用例以及评审 编写…

SSL证书续费要如何操作

SSL证书一旦到期,网站会立即无法访问,而且会提出不安全警告,如果是电商或者品牌网站影响还是很大的。 SSL证书和域名续费有很大区别,域名续费只要交钱就可以了,SSL证书续费还需要认证和更新服务器SSL证书文件才算收工…

【多线程】JUC(java.util.concurrent)的常见类 信号量 线程安全的集合类

目录 1. Callable接口 1.1 Callable接口和Runnable接口的区别? 1.2 使用Callable接口编写代码。 2. ReentrantLock 可重入锁 3.信号量 semaphore 3.1 Java中信号量的使用 4.CountDownLatch JUC: java.util.concurrent -> 这个包里的内容主要是一些多线程…

智能变电站自动化系统的应用与产品选型

摘要:现如今,智能变电站发展已经成为了电力系统发展过程中的内容,如何提高智能变电站的运行效率也成为电力系统发展的一个重要目标,为了能够更好地促进电力系统安全稳定运行,本文则就智能变电站自动化系统的实现进行了…

青藏高原连续日光诱导叶绿素荧光数据集(2000-2018)

简介: 青藏高原连续日光诱导叶绿素荧光数据集(2000-2018)是通过MODIS各通道反射率和SIF观测数据建立神经网络模型,从而得到较高时空分辨率的SIF数据,常作为初级生产力的参考。前言 – 人工智能教程 源数据范围为全球&…

网工实验笔记:MQC原理与配置

一、概述 MQC(Modular QoS Command-Line Interface,模块化QoS命令行)是指通过将具有某类共同特征的数据流划分为一类,并为同一类数据流提供相同的服务,也可以对不同类的数据流提供不同的服务。 MQC三要素 流分类&am…

15-k8s-高级存储之pv与pvc

文章目录 一、相关概念二、创建pv二、创建pvc三、创建pod调用pvc四、StorageClass动态制备pv 一、相关概念 关系 生命周期相关概念 2.1 静态构建:集群管理员创建若干PV卷。这些卷对象带有真实存储的细节信息,并且对集群用户可用(可见)。PV卷对象存在于Kubernetes …

摩尔信使MThings的设备高级参数

摩尔信使MThings支持三级参数管理方案,依次为:数据级、设备级、通道级。 设备级参数不仅包含设备名称、设备地址等常用信息,同时提供了诸多高级参数,其同样是为了满足不同用户应用场景中所面临的差异化需求,以更加灵活…

勒索病毒LockBit2.0 数据库(mysql与sqlsever)解锁恢复思路分享

0.前言 今天公司服务器中招LockBit2.0勒索病毒,损失惨重,全体加班了一天基本解决了部分问题,首先是丢失的文件数据就没法恢复了,这一块没有理睬,主要恢复的是两个数据库,一个是16GB大小的SQLserver数据库&…

安徽阳光心理测量平台目录遍历

安徽阳光心理测量平台目录遍历 FOFA指纹 title"心理测量平台"漏洞复现 路由后拼接/admin/UserFiles/ GET /admin/UserFiles/ HTTP/1.1 Host: {{Hostname}}修复方案 针对路径设定对应权限

注释的重要性与程序员的责任

注释的重要性与程序员的责任 提升代码可读性促进团队协作提高代码可维护性传承知识和经验代码的责任推荐学习 导语:在编写代码的过程中,注释是程序员们经常讨论的话题。有人认为忽视注释等于耍流氓,但也有人觉得注释只是浪费时间。本文将探讨…

软件开发项目文档系列之三如何撰写项目招标文件

前言 招标文件在采购过程中扮演着至关重要的角色,其主要目的是提供清晰而详尽的信息,以确保采购项目的需求得以明确,潜在的投标单位能够清晰理解并遵守相关要求,并最终为采购方提供一个有力的依据来评估和选择最合适的承建单位。…

c++之new和delete

前言 在本文中,您将学习使用new和delete操作在C 中有效地管理内存。 数组可用于存储多个同类型数据,但是使用数组存在严重的缺点。声明数组时应分配内存,但在大多数情况下,直到运行时才能确定所需的确切内存。在这种情况下&#…

python每日一练(8)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

微信小程序开发指南

前言 微信是一款由中国著名互联网公司腾讯公司开发的社交软件,于2011年1月21日正式上线。在成立后的短短几年时间里,微信以其简单易用的界面和强大的功能,快速赢得了全球用户的青睐。截止2021年,微信已经有超过10亿的活跃用户&am…

如何使用 OpenSSL 来检查证书,来确保网络通信的安全性?

OpenSSL 是一个强大的安全套接字层密码库,包含丰富的加密算法、常用的密钥和证书封装管理功能以及 SSL/TLS 协议,并提供了丰富的应用程序供测试或其他目的使用。要使用 OpenSSL 来检查证书以确保网络通信的安全性,您可以遵循以下步骤&#xf…

【ARM Coresight Debug 系列 16 -- Linux 断点 BRK 中断使用详细介绍】

文章目录 1.1 ARM BRK 指令1.2 BRK 立即数宏定义介绍1.3 断点异常处理流程1.3.1 el1_sync_handler1.3.2 el1_dbg 跟踪 1.4 debug 异常处理函数注册1.4.1 brk 处理函数的注册 1.1 ARM BRK 指令 ARMv8 架构的 BRK 指令是用于生成一个软件断点的。当处理器执行到 BRK 指令时&…

【小黑嵌入式系统第二课】嵌入式系统的概述(二)

文章目录 一、嵌入式系统的组成二、嵌入式处理器三、嵌入式外围设备1. 存储设备2. 通信设备3. 显示设备 四、硬件抽象层HAL五、嵌入式操作系统六、应用程序七、嵌入式处理器1、MCU2、MPU3、DSP4、SOC5、SOPC 八、ARM处理器简介ARM处理器的特点ARM处理器的发展历程ARM体系结构版…

【递归知识+练习】

文章目录 递归♥♥♥ 栈存储的顺序:按顺序打印一个数字的每一位递归求N!的阶层递归求1234...10写一个递归方法,输入一个非负整数。返回组成它的数字之和(不熟)斐波那契数列(不熟) 总结 递归 递…

【(数据结构)— 单链表的实现】

(数据结构)— 单链表的实现 一.链表的概念及结构二.单链表的实现2.1单链表头文件——功能函数的定义2.2单链表源文件——功能函数的实现2.3 单链表源文件——功能的测试2.4单链表测试结果运行展示 3. 链表的分类 一.链表的概念及结构 概念: …