【Linux】vim编辑器使用详解

目录

  • 一、vim编辑器简介
  • 二、 vim编辑器使用指南
    • 1.基本操作
      • 1.进入与退出
      • 2.模式切换
    • 2.命令模式
      • 1.移动光标
      • 2.选择文本(可视模式)
      • 3.删除文字
      • 4.复制粘贴
      • 5.替换
      • 6.撤销
    • 3.底行模式
      • 1.列出每行的行号
      • 2.跳转到某行
      • 3.查找字符
      • 4.保存文件
      • 5.退出vim
  • 三、vim总结

一、vim编辑器简介

Vim(ViIMproved)是一种高度可配置的文本编辑器,用于有效地创建和更改任何类型的文本。Vim的设计目标是提供一种高效的文本编辑方式,通过键盘快捷键和命令来执行大部分编辑任务,从而减少对鼠标的依赖。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUdH0kkY-1721482389667)(https://i-blog.csdnimg.cn/direct/e8d558b400e64c15a12dddb3d073fbd9.png#pic_center)]

二、 vim编辑器使用指南

vim的使用操作有打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等。

1.基本操作

1.进入与退出

**进入:输入 vim 文件
退出:在命令模式下按 :wq(保存后退出)、q!(不保存强制退出) **

2.模式切换

vim编辑器有许多模式,我们主要使用三个:

命令模式(普通模式)、插入模式、底行模式

在进入vim时,我们默认是命令模式,要切换到[插入模式]才能够输入文字

命令 >>> 插入:按 i / o / a 其中一个小写单词进入插入模式

命令 >>> 底行:按冒号 : 进入底行模式

插入/底行 >>> 命令:按键盘左上角 ESC

按 i / o / a 其中一个小写单词进入插入模式,但每种进入的效果不同

按「i」:从光标当前位置开始输入文件;
按「a」:从目前光标所在位置的下一个位置开始输入文字;
按「o」:插入新的一行,从行首开始输入文字

命令模式可以随意切换到插入和底行模式,但是插入和底行之间切换需要先切换到命令模式下在进行切换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWscdr0Y-1721482389670)(https://i-blog.csdnimg.cn/direct/7b95d0edcb334167aa566db3ef58cfae.png)]

2.命令模式

1.移动光标

1.可以直接用键盘上的移动键来上下左右移动 也可以用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移

2.按「G」:移动到文章的最后

3.按「 $ 」:移动到光标所在行的“行尾”
4.按「^」:移动到光标所在行的“行首”

5.按「w」:光标跳到下个字的开头
6.按「e」:光标跳到下个字的字尾
7.按「b」:光标回到上个字的开头

8.按「#l」:光标移到该行的第#个位置,如:5l,56l

9.按[gg]:进入到文本开始
10.按[shift+g]:进入文本末端

11.按「ctrl」+「b」:屏幕往“后”移动一页
12.按「ctrl」+「f」:屏幕往“前”移动一页

13.按「ctrl」+「u」:屏幕往“后”移动半页
14.按「ctrl」+「d」:屏幕往“前”移动半页

15.按「#G」:「8G」,表示移动光标至文章的第8行行首
16.按「ctrl」+「g」列出光标所在行的行号

2.选择文本(可视模式)

Vim 不像某些其他编辑器那样直接支持使用鼠标或 Shift 键来选择文本。但是,你可以使用可视模式(Visual Mode)来选择文本。

进入可视字符模式:按 v。
进入可视行模式:按 V。这会选择整行,并允许你通过移动光标来选择多行。
进入可视块模式:按 Ctrl +v。这允许你选择文本块。 在可视模式下,你可以使用移动命令(如 h、j、k、l)来选择你想要的文本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AC0u0pfj-1721482389671)(https://i-blog.csdnimg.cn/direct/24cab6bde1834ab79621e002b4c9301e.png)]
下面的复制粘贴,剪切,注释都可以用的到文本的选择,使操作更加方便

3.删除文字

单个字符:

「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符

行:

*「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

删除单词

dw:删除从光标位置到下一个单词开头的文本。
db:删除从光标位置到上一个单词开头的文本(包括空白字符)。
diw:删除光标所在的单词(不包括前后空白字符)。

自定义文本块删除

进入可视模式(v 进入字符模式,V 进入行模式,Ctrl + v 进入块模式)。
在可视模式下,你可以使用移动命令(如 h、j、k、l)来选择你想要的文本
选择你想要删除的文本块。
按 d 来删除选中的文本块。

4.复制粘贴

字符:

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。 「#yw」:复制#个字到缓冲区

行:

「yy」:复制光标所在行到缓冲区。 「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

自定义文本复制:

进入可视字符模式:
按 v:进入可视行模式:
按 V:这会选择整行,并允许你通过移动光标来选择多行。 进入可视块模式:
按 Ctrl +v。这允许你选择文本块。
在可视模式下,你可以使用移动命令(如 h、j、k、l)来选择你想要的文本

粘贴:

「p」:将缓冲区内的字符贴到光标所在位置。

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

5.替换

「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

6.撤销

撤销

「u」:如果误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。

撤销的撤销

「ctrl + r」: 撤销的恢复

3.底行模式

1.列出每行的行号

「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

2.跳转到某行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了

3.查找字符

向后:

「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。

向前:

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。

4.保存文件

「w」: 在冒号前输入字母「w」就可以将文件保存起来

5.退出vim

保存文件后退出

「q」:按「q」就是退出
「wq」:保存文件后退出

强制退出(不保存文件)

「q!」:强制离开vim

三、vim总结

Vim 的设计哲学是键盘优先,所以尽量使用键盘快捷键来完成操作,而不是鼠标。

随着你对 Vim 的熟悉,你会发现使用 Vim 的效率远远超过其他编辑器

愿我们都能玩转Vim

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

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

相关文章

oracle 11G long类型如何转换 CLOB

oracle 11G long类型如何转换 CLOB oracle 11G long类型如何转换 CLOBStep 1: 创建示例表并插入数据Step 2: 创建一个临时 CLOB 列,并将 LONG 数据复制到 CLOB 列.Step 3: 创建一个新表,将 CLOB 数据转换为 VARCHAR2(假设数据长度允许&#x…

Perl中的设计模式革新:命令模式的实现与应用

Perl中的设计模式革新:命令模式的实现与应用 在面向对象编程中,设计模式是解决特定问题的成熟模板。命令模式作为行为设计模式之一,它将请求封装为对象,从而允许用户根据不同的请求对客户进行参数化。本文将深入探讨如何在Perl中…

2.1.卷积层

卷积 ​ 用MLP处理图片的问题:假设一张图片有12M像素,那么RGB图片就有36M元素,使用大小为100的单隐藏层,模型有3.6B元素,这个数量非常大。 识别模式的两个原则: 平移不变性(translation inva…

K8S 部署jaeger-operator,与其演示项目hotrod

最近在研究observabilty在K8S环境的onboard,查阅了一些资料,发现现在网上Prometheus/Metrics相关的资源,是比较全面的,而Trace相关的部分不是很全面,所以写下这篇博文,以做备忘和分享。 组件介绍 我这里选…

Excel的操作

Excel的操作 一、Excel的作用 Excel是一款功能强大的电子表格软件,主要用于数据处理和分析。 二、Excel的基础操作 新建文档 一般情况下,就在桌面空白处,点击鼠标右键,即可新建 三、页面布局 1、快速访问工具栏 主要包含&am…

为 android编译 luajit库、 交叉编译

时间:20200719 本机环境:iMac2017 macOS11.4 参考: 官方的文档:Use the NDK with other build systems 写在前边:交叉编译跟普通编译类似,无非是利用特殊的编译器、链接器生成动态或静态库; make 本质上是按照 Make…

ssm 学习 ---(spring)

一、spring框架 1、基本框架 2、Beanfactory快速入门 配置清单:xml文件 (1) 导入jar包或者maven坐标 (2) 定义UserService接口以及UserService实现类 (3) 创建bean.xml配置文件,将UserService信息配置到该xml文件中; (4)编写测试代码,创…

ubuntu lxqt触摸屏旋转校准(usb触摸屏、lxqt、ubuntu23.10)

参考文章:https://www.codetd.com/article/5651388 1.查看触摸屏驱动 rootxyy:~# xinput list ⎡ Virtual core pointer id2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id4 [slave pointer (2)…

JVM 在什么情况下会触发垃圾回收?

垃圾回收在JVM中自动进行,通常在以下几种情况下触发: 1. 年轻代满了(Young Generation Full) 当年轻代的Eden区满了时,会触发Minor GC(也称为Young GC)。这是因为新创建的对象首先分配在Eden区…

【音视频】AAC编码器与ffmpeg生成AAC数据

文章目录 前言为什么使用AAC?AAC规格常见的AAC规格规格之间的区别 ffmpeg生成AAC数据 总结 前言 在音频压缩技术不断发展的过程中,AAC(Advanced Audio Coding)编码器因其出色的音质和压缩效率,逐渐成为数字音频领域的…

牛客周赛51:小红走矩阵(二分+bfs)

链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 给定nnn \times nnn的矩阵,矩阵中的每个元素都是正整数,小红能当前位于左上角(1,1)(1,1)(1,1),每次可以从 (x,y)(x, y)(x,y) 走到 (x1,y)(x1, y)(…

为了实现接口缓存,专门写了个缓存库 f-cache-memory

问题起因 起因是某次发版之后,服务器接口压力过大,当场宕机,排查之后发现有个接口在首页被调十来次(六七年的老项目了,都是泪呀),后端反馈这个接口的sql很复杂,很耗性能&#xff0c…

如何根据同一行的ID利用R语言对值进行求和

需求:将属于同一分组的对应的值进行求和或者求平均值 #设置工作目录 > getwd() [1] "C:/Users/86150/Documents" > setwd("C:/Users/86150/Desktop/AA2024/RUF") > list.files() #读取文件 >install.packages("readxl")…

基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS

基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS 1. RoMe1.1 Mesh Initialization / Waypoint Sampling1.2 Optimization1.3 Experiments 2. EMIE-MAP2.1 Road Surface Representation based on Explicit mesh and Implicit Encoding2.2 Optimizing Strategies2.3 Experimen…

python报错RuntimeError: Numpy is not available

–> 141 audio torch.from_numpy(audio) 143 if device is not None: 144 audio audio.to(device) RuntimeError: Numpy is not available 使用python3.9和torch时,自动安装了Numpy2.0,一直报错, 解决方法:pip install nump…

如何在 Linux 中解压 ZIP 文件

ZIP 是一种常用的压缩文件格式,用于存储和传输多个文件。在 Linux 系统中,解压 ZIP 文件非常简单。 使用 unzip 命令 unzip 是一个专用于解压 ZIP 文件的命令行工具。要使用它,请打开终端并输入以下命令: 例如,要解…

SpringBoot整合ElasticSearch的elasticsearch-java出现jakarta.json.spi.JsonProvider报错问题

一、原因 报错内容如下 org.springframework.beans.factory.BeanCreationException: Error creating bean with name esClient defined in class path resource [com/elasticsearch/config/ElasticSearchConfig.class]: Bean instantiation via factory method failed; nes…

springboot怎么使用rides 缓存方法的返回值 完整例子

好的,下面是一个使用Spring Boot和Redis缓存方法返回值的完整示例: 添加依赖:在pom.xml中添加Spring Boot Redis依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> <…

在 CI/CD Pipeline 中实施持续测试的最佳实践!

随着软件开发周期的不断加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续交付/部署&#xff08;CD&#xff09;已经成为现代软件开发的重要组成部分。在这一过程中&#xff0c;持续测试的实施对于确保代码质量、提高发布效率至关重要。本文将详细介绍在CI/CD流水线中…

JVM:JavaAgent技术

文章目录 一、Java工具的介绍二、Java Agent技术1、介绍2、静态加载模式3、动态加载模式 三、搭建java agent静态加载模式环境1、创建maven项目2、编写类和premain方法3、编写MANIFEST.MF文件4、使用maven-assembly-plugin进行打包5、创建Spring Boot应用 一、Java工具的介绍 …