当前位置: 首页 > 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;当用户…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...