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

【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍

目录

注意:以下操作前提是要确保你输入法是英文模式

一、进入和退出各个模式的方法

1.命令模式

2.底行模式

3.插入模式

4.视图模式

5.替换模式

二、在命令模式中一些常用的操作

1.移动光标

2.删除文字

3.复制

4.替换

5.撤销上一次操作

6.更改

7.跳至指定的行

三、在底行模式中一些常用的操作

1.列出行号

2.跳到文件中的某一行

3.查找字符

5.保存文件

6.离开vim

四、视图模式

1.写注释

2.去注释

五、替换模式


注意:以下操作前提是要确保你输入法是英文模式

一、进入和退出各个模式的方法

1.命令模式

进入:vim + 文件名 一进入就是命令模式

退出:命令模式是基本的模式无需退出

2.底行模式

进入:在命令模式中按 shift + ;(也就是 :)

退出:返回命令模式, 无脑按Esc(就是键盘最左上角的Esc)

3.插入模式

进入:在命令模式中按 i a o都行(有些许差异,你可以自己试试,这里不细说,一般常用 i 进入)

退出:返回命令模式, 无脑按Esc(就是键盘最左上角的Esc)

4.视图模式

进入:在命令模式中按 ctrl + v

退出:返回命令模式, 无脑按Esc(就是键盘最左上角的Esc)

退出返回

5.替换模式

进入:在命令模式中按 shift + r (也就是R)

退出:返回命令模式, 无脑按Esc(就是键盘最左上角的Esc)

注意:进入一切模式的前提是在命令模式(即正常模式)

二、在命令模式中一些常用的操作

1.移动光标

按「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

2.删除文字

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

3.复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

4.替换

「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符(此时已经进入替换模式),直到按下「ESC」键为止。

5.撤销上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复

6.更改

「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字

7.跳至指定的行

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

三、在底行模式中一些常用的操作

1.列出行号

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

2.跳到文件中的某一行

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

3.查找字符

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

提示:/ 和 ?查找有和区别?操作实验一下

5.保存文件

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

6.离开vim

「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

四、视图模式

1.写注释

ctrl + v(进入视图模式) ->j/k两个键上下选中区域->shift + i (也就是I)->输入//->ESC退出

2.去注释

ctrl + v(进入视图模式) ->h/j/k/l四个键上下左右选中区域->按d即可->ESC退出

五、替换模式

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

相关文章:

【Linus】vim的使用:命令模式、底行模式、插入模式、视图模式、替换模式的常用操作介绍

目录 注意:以下操作前提是要确保你输入法是英文模式 一、进入和退出各个模式的方法 1.命令模式 2.底行模式 3.插入模式 4.视图模式 5.替换模式 二、在命令模式中一些常用的操作 1.移动光标 2.删除文字 3.复制 4.替换 5.撤销上一次操作 6.更改 7.跳至指…...

leetcode第362场周赛补题

8029. 与车相交的点 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;差分数组 class Solution { public:int numberOfPoints(vector<vector<int>>& nums) {int diff[102] {}; for(auto p : nums)//差分{diff[p[0]] ;diff[p[1] 1] -- ;}int res …...

SpringMvc 之crud增删改查应用

目录 1.创建项目 2.配置文件 2.1pom.xml文件 2.2 web.xml文件 2.3 spring-context.xml 2.4 spring-mvc.xml 2.5 spring-MyBatis.xml 2.6 jdbc.properties 数据库 2.7 generatorConfig.xml 2.8 日志文件log4j2 3.后台代码 3.1 pageBean.java 3.2切面类 3.3 biz层…...

【业务功能109】微服务-springcloud-springboot-Skywalking-链路追踪-监控

Skywalking skywalking是一个apm系统&#xff0c;包含监控&#xff0c;追踪&#xff0c;并拥有故障诊断能力的 分布式系统 一、Skywalking介绍 1.什么是SkyWalking Skywalking是由国内开源爱好者吴晟开源并提交到Apache孵化器的产品&#xff0c;它同时吸收了Zipkin /Pinpoint …...

《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3架构升级

架构升级 GPU 支持 早在 Milvus 1.x 版本,我们就曾经支持过 GPU,但在 2.x 版本中由于切换成了分布式架构,同时出于对于成本方面的考虑,暂时未加入 GPU 支持。在 Milvus 2.0 发布后的一年多时间里,Milvus 社区对 GPU 的呼声越来越高,再加上 NVIDIA 工程师的大力配合——为…...

Flutter中实现交互式Webview的方法

前言&#xff1a; Flutter是一款强大的跨平台移动应用开发框架&#xff0c;而Webview则是在应用中展示Web内容的重要组件。本文将介绍如何在Flutter应用中实现交互式的Webview&#xff0c;以便为用户提供更加丰富的内容和功能。 1. 引入webview_flutter插件 要在Flutter应用中…...

【Java Web】用Redis优化登陆模块

使用Redis存储验证码 验证码需要频繁访问和封信&#xff0c;对性能要求高&#xff1b;验证码不需要永久保存&#xff0c;通常在很短时间内失效&#xff1b;分布式部署&#xff0c;存在Session共享问题&#xff1b; 使用Redis存储登陆凭证 处理每次请求时&#xff0c;都要查询用…...

华为云云耀云服务器L实例评测|docker私有仓库部署手册

【软件安装版本】【集群安装&#xff08;是&#xff09;&#xff08;否&#xff09;】 版本号 文档编写 文档审核 创建日期 修改日期 1.0 jzg jzg 2023.9.13 一. 部署规划与架构 1. 规划&#xff1a;&#xff08;集群&#xff1a;网络规划&…...

JAVA-3DES对称加解密工具(不依赖第三方库)

import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public class EncryptUtil {// 密钥public static final String ENCR…...

基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)

本文介绍了如何使用Matlab实现惯性测量单元&#xff08;IMU&#xff09;和全球定位系统&#xff08;GPS&#xff09;组合导航数据融合的卡尔曼滤波算法。通过将IMU和GPS的测量数据进行融合&#xff0c;可以提高导航系统的精度和鲁棒性。我们将详细介绍卡尔曼滤波的原理和实现步…...

net自动排课系统完整源码(适合智慧校园)

目录 1 net自动排课系统完整源码(适合智慧校园) 1.1 后台管理admin 1.1.1 菜单 1.1.2 教学计划 net自动排课系统完整源码(适合智慧校园) 后台管理admin<%@ Page Language="C#" AutoEventWireup="true" CodeBehind=&...

Matlab匿名函数教程

Matlab匿名函数是一种方便、简洁的函数定义方式&#xff0c;可以在不使用函数文件的情况下&#xff0c;直接在命令行或脚本中定义函数。本文将介绍Matlab匿名函数的基本语法和用法。 匿名函数的基本语法如下&#xff1a; function_handle (input_variables) expression其中&…...

【Vue】一文让你进入Vue的大门

Vue简介 官网 ● 英文官网 ● 中文官网 介绍与描述 Vue历史 Vue 是一套用来动态构建用户界面的渐进式JS框架 构建用户界面&#xff1a;把数据通过某种办法变成用户界面 渐进式&#xff1a;Vue可以自底向上逐层的应用&#xff0c;简单应用只需要一个轻量小巧的核心库&#xff0c…...

Linux mmap读/写触发共享文件页生命周期

概述 Linux的mm内存子系统的核心功能就要要管理各种类型的page,确保能高效分配和释放,让物理内存得以最大化使用。初识内存系统往往关注的是page的申请和管理流程,容易忽略page的释放回收流程,其实理解mm中的内存回收和释放也是最核心的机制。 Linux内核为了支持各种场景…...

linux 用户、组操作

一、创建用户并设置密码 #创建用户 duoergun useradd duoergun #设置用户 duoergun 密码 passwd duoergun二、创建组 #创建组 qingdynasty groupadd qingdynasty三、用户添加到组&#xff0c;用户从组删除 #添加用户duoergun到组qingdynasty usermod -aG qingdynasty duoer…...

MySQL报错this is incompatible withsal mode=only full group by处理办法

问题说明 报这个错误是指&#xff0c;在查询分组时展示了非分组字段。举例&#xff1a; select id , user_name from user group by user_name;上述语句查询id和user_name字段&#xff0c;其中user_name进行了分组&#xff0c;id并没有分组&#xff0c;这时候mysql就会报上述…...

Mybatis 动态语言 - mybatis-freemarker

前面我们介绍了Mybatis动态SQL的使用&#xff1b;本篇我们介绍使用mybatis- freemarker动态语言生成动态SQL。 如果您对Mybatis动态SQL不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybatis 动态SQL – 使用if,where标签动态生成条件语…...

软件源码开发,网络中的“摄像头”:运维监控系统

在日常生活中&#xff0c;我们不管是在大街小巷&#xff0c;还是在商场大厦都可以见到一个圆形或是方形带有镜片的“小盒子”&#xff0c;这个“小盒子”就是摄像头&#xff0c;摄像头作为一个能实时录制记录它能照到范围内的视频图像的工具&#xff0c;可以在丢失物品、抓捕坏…...

ping命令

打开运行窗口 首先&#xff0c;我们需要打开运行窗口&#xff0c;可以通过按下WinR组合键打开。然后&#xff0c;在窗口中输入cmd&#xff0c;进入dos命令。 在命令行中输入ping命令 在dos命令行中&#xff0c;我们可以通过输入ping命令来检测网络连接。例如&#xff0c;我们…...

MFC:程序的托盘显示

介绍 关键技术&#xff0c;API函数Shell_NotifyIcon&#xff0c;具体查看msdn吧 实现的主要代码 #define MY_TRAY_ICON_ID (1)/ //其他代码&#xff1a;略BEGIN_MESSAGE_MAP(CTestShowTrayDlg, CDialogEx)//...ON_MESSAGE(WM_MY_TRAY_ICON, &CTestShowTrayDlg::OnMessag…...

AI绘画:StableDiffusion实操教程-斗破苍穹-云韵-婚服(附高清图下载)

大家好&#xff0c;我是小梦&#xff0c;最近一直研究AI绘画。 不久前&#xff0c;我与大家分享了StableDiffusion的全面教程&#xff1a;“AI绘画&#xff1a;Stable Diffusion 终极宝典&#xff1a;从入门到精通 ” 然而&#xff0c;仍有些读者提出&#xff0c;虽然他们已经…...

JS装饰器的介绍

装饰器的基本介绍 装饰器是一种特殊类型的声明&#xff0c;它能够被附加到类声明&#xff0c;方法&#xff0c;访问符&#xff0c;属性或参数上。 装饰器使用expression这种形式&#xff0c;expression求值后必须为一个函数&#xff0c;它会在运行时被调用&#xff0c;被装饰的…...

微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)

一、需求 1、如果第一是视频&#xff0c;不进行自动轮播 2、可以手动滑动切换 3、点击播放视频&#xff0c;也可以手动滑动切换 4、视频播放完后&#xff0c;自动轮播 5、视频可以点击暂停和全屏播放二、最终效果 三、源码 播放icon使用了TDesign组件库 1、wxml <swiper c…...

关于for in 循环会遍历原型链上的属性的问题

关于for in 循环会遍历原型链上的属性的问题 for in可遍历原型链上扩展的属性&#xff0c;Object.keys() 只遍历自身属性 1.使用 for in 循环遍历对象的属性时&#xff0c;原型链上的所有属性都将被访问&#xff1a; Object.prototype.say"cgl"; // 修改Object.p…...

冠达管理:人民币升值板块个股?

人民币增值是当前热门的论题之一。面对这一趋势&#xff0c;许多投资者开端重视人民币增值板块个股的投资时机。可是&#xff0c;终究哪些职业和个股能够从人民币增值中获益&#xff1f;下面从多个视点分析这个问题。 一、出口相关职业 跟着人民币增值&#xff0c;我国的出口企…...

27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》

下载地址&#xff1a;高比例清洁能源接入下计及需求响应的配电网重构 1主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》&#xff0c;以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标&#xff0c;针对配电网重构模型的非凸性&…...

mysql的索引结构

索引概述 索引&#xff08; index &#xff09;是帮助 MySQL 高效获取数据的数据结构 ( 有序 ) 。在数据之外&#xff0c;数据库系统还维护着满足特定查找算法的数据结构&#xff0c;这些数据结构以某种方式引用&#xff08;指向&#xff09;数据&#xff0c; 这样就可以在这些…...

SMT生产中基板的机械清洁处理法有哪些

在S MT贴片加工 过程中&#xff0c;锡育和助焊剂会产生残留物质&#xff0c;残留物中包含有有机酸和可分解的电离子&#xff0c;某中有机酸狊 有腐蚀作用&#xff0c;电高子难留在焊盘还会引(起短路&#xff0c;而且这些残留物在PCBA板上是非常脏的&#xff0c;而旦不符合顾客…...

微服务面试题

一、什么是微服务 二、微服务之间是如何通讯的&#xff1f; 2.1、同步 优点&#xff1a;实时性 缺点&#xff1a;降低了可用性&#xff0c;因为客户端和服务端在请求过程中必须都是可用的 2.1.1、REST 优点&#xff1a;开发成本低&#xff0c;适应异构语言 2.1.2、RPC …...

LeetCode 1132.申请的报告2

数据准备 Create table If Not Exists Actions (user_id int, post_id int, action_date date, action ENUM(view, like, reaction, comment, report, share), extra varchar(10)); create table if not exists Removals (post_id int, remove_date date); Truncate table Act…...

百度提交网站已删内容/安卓嗅探app视频真实地址

​在我们学习数据科学的时候&#xff0c;通常数据都存在csv等格式的文件中&#xff0c;但是事实上在企业里&#xff0c;数据往往被存储到数据库中。今天我将介绍如何使用Jupyter Notebooks或JupyterLab作为SQL IDE。设置首先&#xff0c;我们需要安装一个库以确保可以直接在Not…...

浙江网站建设品牌设计/网络营销模式

package volumeimport "io"//文件基本读写 存在与否 关闭type Index interface {Has(fid uint64) boolGet(fid uint64) (*FileInfo, error)Set(fi *FileInfo) errorDelete(fid uint64) errorio.Closer}转载于:https://www.cnblogs.com/zhangboyu/p/7461613.html...

仁怀那里可以做网站/青岛优化网站关键词

最近新房装修完毕&#xff0c;正在搬家&#xff0c;整理物品的时候&#xff0c;突然翻出了很多珍贵的东西。每个人珍贵的东西不尽相同&#xff0c;但通常都对应一段回忆&#xff0c;都被寄托于某一载体&#xff0c;它是只属于你的"小秘密"。我们不需要时刻盯着它&…...

全国妇联官方网站儿童之家建设/长沙seo网站排名优化公司

Linux/CentOS下安装MySql RPM Bundle 一、下载对应的版本的MySql安装文件 1、下载路径 https://dev.mysql.com/downloads/mysql/ 2、选择对应的Linux版本和x86/x64位的安装文件 查看Linux的版本信息可以参考&#xff1a;查看CentOS/Linux的版本信息 我下载的是&#xff1a;mys…...

网站建设公司怎么盈利/推广网络公司

1.解决方案&#xff1a;在第四行URL前加www即可 http://www.mybatis.org/dtd/mybatis-3-config.dtd2.如果还是报错&#xff0c;可能是Eclipse未引入XML的dtd约束文件。 Eclipse引入XML的dtd约束文件操作如下&#xff1a; 1.Window–>Preferences–> 2.找到XMl操作如下…...

wordpress百万文章秒开/如何制作一个自己的网页网站

一、指标通常应用服务性能关注以下两方面的指标&#xff1a;性能指标.jpg下面将主要是基于CPU指标进行实验模拟分析&#xff0c;下面是一些命令下&#xff0c;cpu指标&#xff1a;1、top 命令下个字段含义&#xff0c;参考&#xff1a;https://www.jianshu.com/p/078ed7895b0f2…...