当前位置: 首页 > news >正文

【Linux】vim编辑器使用详解

目录

  • 一、vim编辑器简介
  • 二、 vim编辑器使用指南
    • 1.基本操作
      • 1.进入与退出
      • 2.模式切换
    • 2.命令模式
      • 1.移动光标
      • 2.选择文本(可视模式)
      • 3.删除文字
      • 4.复制粘贴
      • 5.替换
      • 6.撤销
      • 7.注释
      • 8.多文件窗口切换
    • 3.底行模式
      • 1.列出每行的行号
      • 2.跳转到某行
      • 3.查找字符
      • 4.保存文件
      • 5.在vim中打开其他文件(多文件)
      • 6.退出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」: 撤销的恢复

7.注释

注释的操作与赋值粘贴类似
1.单行注释

可以选择在该行的前面加//

2.自定义区域注释

1:按ctrl v进入可视模式
2:用h,j,k,l选择注释区域
3:按 shift i(I)
4:输入 //
5:按ESC键

3.去注释

1:按ctrl v进入可视模式
2:用h,j,k,l选择去注释区域
3:按 d

8.多文件窗口切换

我们的输入光标在哪个文件,表明我们正处于拿个文件
ctrl ww: 在多文件窗口循环切换
ctrl w h/j/k/l 选择该方向的文件进行切换

3.底行模式

1.列出每行的行号

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

2.跳转到某行

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

3.查找字符

向后:

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

向前:

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

4.保存文件

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

5.在vim中打开其他文件(多文件)

vs 所要打开的文件名
在这里插入图片描述
在这里插入图片描述

6.退出vim

保存文件后退出

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

强制退出(不保存文件)

「q!」:强制离开vim

三、vim总结

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

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

愿我们都能玩转Vim

相关文章:

【Linux】vim编辑器使用详解

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

手机怎么设置不同的ip地址

在数字化日益深入的今天,智能手机已成为我们生活、工作和学习中不可或缺的设备。然而,随着网络应用的广泛和深入,我们有时需要为手机设置不同的IP地址来满足特定需求。比如,避免网络限制、提高网络安全、或者进行网络测试等。本文…...

SpringBoot读取配置的6种方式

在SpringBoot应用开发中,配置文件是不可或缺的一部分。它们帮助我们管理应用的运行时参数,使得应用的部署和维护变得更加灵活。SpringBoot提供了多种方式来读取配置文件,每种方式都有其适用场景和优缺点。本文将介绍六种常用的SpringBoot读取…...

1.1 openCv -- 介绍

OpenCV(开放源代码计算机视觉库:http://opencv.org)是一个开源库,包含了数百种计算机视觉算法。本文件描述了所谓的OpenCV 2.x API,这是一个本质上基于C++的API,与基于C的OpenCV 1.x API(C API已被弃用,并且自从OpenCV 2.4版本起不再使用“C”编译器进行测试)相对。 …...

探索PostgreSQL的GUI工具:提升数据库管理效率

在当今快速发展的技术世界中,数据库管理是任何软件开发项目的核心部分。PostgreSQL,作为一款功能强大的开源关系型数据库管理系统,因其稳定性、可靠性和高度的可扩展性而广受开发者和数据库管理员的青睐。然而,尽管PostgreSQL自带…...

【从零开始实现stm32无刷电机FOC】【实践】【5/7 stm32 adc外设的高级用法】

目录 采样时刻触发采样同步采样 点击查看本文开源的完整FOC工程 本节介绍的adc外设高级用法用于电机电流控制。 从前面几节可知,电机力矩来自于转子的q轴受磁力,而磁场强度与电流成正比,也就是说电机力矩与q轴电流成正相关,控制了…...

springcloud接入seata管理分布式事务

下载安装包 链接: seata 配置seata-server 文件上传Linux解压 压缩包我放在/usr/local/seata中 tar -zxvf seata-server-2.0.0.tar.gz修改配置文件 设置nacos为注册和配置中心 进入文件夹 cd /usr/local/seata/seata/conf修改application.yml文件 ...... ...... cons…...

Android APP 音视频(02)MediaProjection录屏与MediaCodec编码

说明: 此MediaProjection 录屏和编码实操主要针对Android12.0系统。通过MediaProjection获取屏幕数据,将数据通过mediacodec编码输出H264码流(使用ffmpeg播放),存储到sd卡上。 1 MediaProjection录屏与编码简介 这里…...

java中log4j.properties配置文件浅析

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可按keyvalue格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。 1、配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.roo…...

RV1126 Linux 系统,接外设,时好时坏(二)排查问题的常用命令

在 RV1126 Linux 系统中,排查外设连接问题时,可以使用多种命令来诊断和调试。以下是一些常用的命令和工具: 1. 查看系统日志 dmesg: 显示内核环形缓冲区的消息,通常包含设备初始化、驱动加载和错误等信息。 dmesg | grep <设备名或相关关键字>journalctl: 查看系统…...

鸿蒙北向开发 DevEco Studio 4.1 下载安装傻瓜式教程

开篇 由于鸿蒙处于快速发展中,鸿蒙的api快速迭代更新,老版本的DevEco studio无法支持更新版本的api,因此华为官网放弃了老版本的维护.直接从华为开发者官网无法下载老版本,当前华为开发者官网已经推出next版本了 DevEco studio3.1安装教程 上述教程提供的华为开发者官网地址已经…...

pglogical扩展的基本用法介绍

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;14 文档用途 本文翻译了pglogical扩展的官方文档,介绍了pglogical扩展的各类管理函数及使用限制,详情请看下文. 一、节点管理 节点可以使用以下…...

2024年虚拟主机转移教程

转移网站并不困难&#xff0c;但选择正确的选项和最佳程序才是关键。网站托管服务被视为当今数字世界的基石&#xff0c;全球有18 亿个网站。网站所有者可以通过下载备份、将其上传到新服务器并指向域名来手动转移网站。他们还可以通过新网站托管商的助手请求来移动网站。对于初…...

Python 函数对象和函数调用

Python 函数对象和函数调用 在 Python 中&#xff0c;函数是第一类对象&#xff08;first-class objects&#xff09;。这意味着函数可以像其他对象&#xff08;如整数、字符串、列表等&#xff09;一样被传递、赋值和操作。理解函数对象和函数调用的区别是学习 Python 的关键…...

sql注入的专项练习 sqlilabs(含代码审计)

在做题之前先复习了数据库的增删改查&#xff0c;然后自己用本地的环境&#xff0c;在自己建的库里面进行了sql语句的测试&#xff0c;主要是回顾了一下sql注入联合注入查询的语句和sql注入的一般做题步骤。 1.获取当前数据库 2.获取数据库中的表 3.获取表中的字段名 一、sql…...

淄博网站建设贵不贵

淄博网站建设的价格因各种因素而异&#xff0c;它可能会根据您对网站的需求、功能和设计复杂性等方面的要求而有所不同。虽然淄博网站建设的费用可能因需求的不同而有所变化&#xff0c;但是无论如何&#xff0c;它通常是值得的投资。 首先&#xff0c;对于个人和小型企业来说&…...

【学习笔记】无人机系统(UAS)的连接、识别和跟踪(十)-无人机A2X服务

引言 3GPP TS 23.256 技术规范&#xff0c;主要定义了3GPP系统对无人机&#xff08;UAV&#xff09;的连接性、身份识别、跟踪及A2X&#xff08;Aircraft-to-Everything&#xff09;服务的支持。 3GPP TS 23.256 技术规范&#xff1a; 【免费】3GPPTS23.256技术报告-无人机系…...

基于迁移学习的手势分类模型训练

1、基本原理介绍 这里介绍的单指模型迁移。一般我们训练模型时&#xff0c;往往会自定义一个模型类&#xff0c;这个类中定义了神经网络的结构&#xff0c;训练时将数据集输入&#xff0c;从0开始训练&#xff1b;而迁移学习中&#xff08;单指模型迁移策略&#xff09;&#x…...

个性化音频生成GPT-SoVits部署使用和API调用

一、训练自己的音色模型步骤 1、准备好要训练的数据&#xff0c;放在Data文件夹中&#xff0c;按照文件模板中的结构进行存放数据 2、双击打开go-webui.bat文件&#xff0c;等待页面跳转 3、页面打开后&#xff0c;开始训练自己的模型 &#xff08;1&#xff09;、人声伴奏分…...

MFC列表框示例

本文仅供学习交流&#xff0c;严禁用于商业用途&#xff0c;如本文涉及侵权请及时联系本人将于及时删除 目录 1.示例内容 2.程序步骤 3.运行结果 4.代码全文 1.示例内容 编写一个对话框应用程序CMFC_Li6_4_学生信息Dlg&#xff0c;对话框中有一个列表框&#xff0c;当用户…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

沙箱虚拟化技术虚拟机容器之间的关系详解

问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西&#xff0c;但是如果把三者放在一起&#xff0c;它们之间到底什么关系&#xff1f;又有什么联系呢&#xff1f;我不是很明白&#xff01;&#xff01;&#xff01; 就比如说&#xff1a; 沙箱&#…...