一三九、vim使用介绍

news2024/9/27 17:27:29

键盘图

在这里插入图片描述

模式切换

在这里插入图片描述

移动光标

命令说明
shift 6()至本行第一个非空字符
shift 4($)至本行末尾
w至下一个单词、标点开头
W至下一个单词开头
b至上一个单词、标点开头
B至上一个单词开头
ctrl + b上翻一页
ctrl + f下翻一页
ctrl + d向下翻半页 此比较有用
ctrl + u向上翻半页 此比较有用
gg文件开头
shift + g文件末尾
num + shift + g跳到第num行
两个单引号 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置.
‘.一单一点 此命令相当好使, 它移动光标到上一次的修改行.
`.一倒引一点 此命令相当强大, 它移动光标到上一次的修改点.

进入插入模式

命令说明
i, I 进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
a, A 进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
[Esc] 退出编辑模式,回到一般模式中(常用)

文本编辑(删除、复制、剪切、粘贴、撤销)

命令说明
x删除当前字符
3x删除当前字符和之后的两个字符
dd删除(剪切)当前那行
5dd删除(剪切)当前那行和后面的4行
dw当前字符到下一个字符开始
d$删除(剪切)当前字符到行尾
d0删除(剪切)当前字符到行首
d^删除(剪切)当前字符到下一个非空字符
dG删除(剪切)当前行到文件末尾
d20G删除(剪切)当前行到20行
yy复制当前那行,用法同dd
p粘贴到光标之后
P粘贴到光标之前
u取消上一次操作
ctrl +r恢复上一次操作
j合并当前行和后面的一行,用法同dd

查找替换

命令说明
/key(?key)向下(上)查找key
:%s/oldkey/newkey/gc在全局范围内用newkey替换oldkey
进入底行模式
%范围%代表全局,1,3代表1到3行
s替换操作
/oldkey/newkey/用新词替换老词
g代表行内全局

编辑多个文件

命令说明
vim file1 file2 …编辑多个文件
:n切换到下一个文件
:N切换到上一个文件
:buffer 1切换到第一个文件
:e file新编辑一个文件
:r file在当前文件中插入一个文件
:w file将文件保存为一个文件

技巧

命令说明
r替换模式,替换当前光标所在位置的一个字符。虽然你同样可以i进入插入模式,然后删掉那个字符,再输入需要的字符,但这种操作是鼠标流思维方式。替换是一个可重复操作,多用没坏处。
cwchange word可以删除从当前位置到一个单词的结尾,并进入插入模式。这种操作常用于修改一个变量。比如对于:int count=0;希望把count改成cnt,那么当光标位于c字符处的时候,按cw可直接删除count,并进入插入模式。然后直接继续输入cnt即可。
cawchange a word可以删除当前光标所在位置的单词。对于int count=0;的例子,如果此时光标在count中间某处,比如u处,直接键入caw可以达到同样的效果。所以caw更强大一些。
c$、c^举一反三,可以猜到c$是从当前位置删除到行尾,并进入插入模式。
ci”change inside 可以用于修改当前位置附近,在相同配对的中的内容。比如对于const char *str=hello world;。当在双引号中间的任意位置键入ci"可以直接清空字符串,并继续输入新的希望的字符串。
ci(、ci[举一反三change inside ( change inside [。
cit这个比较特殊,可以直接编辑匹配的xml标签中的内容!经常编写html的童鞋可以熟悉一下。
yi"yank inside 猜猜是啥意思?类似ci只是把编辑操作编程复制操作,因为y是复制!是不是很强大。
ya"yank around “ 复制整个字符串,包括双引号。

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

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

相关文章

优思学院|DMAIC从入门到精通,轻松学会六西格玛的基本原理!

如果要用一个词汇总结六西格玛品质改进方法,那一定是DMAIC。这个简称列出了六西格玛过程改进中的步骤,提供了完成六西格玛项目的方法概述,就是:定义(Define)、测量(Measure)、分析&a…

Rust语言的基本介绍

rust缘起和目标 rust的英文是锈菌,是一种真菌,这种真菌的生命力非常顽强,其 在生命周期内可以产生多达5种孢子类型,这5种生命形态还可以相互转 化。“Rust”也有“铁锈”的意思,暗合“裸金属”之意,代表了R…

网络安全入门(黑客)学习路线-2023最新版

如何成为一名黑客,很多朋友在学习安全方面都会半路转行,作者菌就自个整理了一下知识内容和体系,肝了一个月后,整理出来最适合零基础学习的网络安全学习路线,果断收藏学习下路线。此篇博客讲的非常细,有兴趣…

Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法

Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法 文章目录Python中sys.argv[ ]与Cpp中int main(int argc char *argv[ ])的用法前言一、Python中sys.argv[]的用法二、Cpp中int main(int argc char *argv[])的用法Reference前言 最近在学习ROS,在…

前端纯函数和副作用概念,且在react上的体现详解

什么是纯函数 纯函数是这样一种函数,即相同的输入,永远会得到相同的输出的函数,而且没有任何可观察的副作用。 什么是副作用 副作用是在计算结果的过程中,系统状态的一种变化,或者与外部世界进行的可观察的交互。 个…

CAN工具 - ValueCAN - 基础介绍(续)

VSpy3(Vehicle Spy 3的简写),作为一个常用的车载总线仿真工具,在车载网络领域也是有非常大的市场,前面也简单介绍过一些简单的功能,今天就再次介绍一些。什么是VSpy3?VSpy3是美国英特佩斯公司下…

测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机

首先说明的是,遇到这样的测试题目,首先应该反问面试官,需求是什么样的,比如是测什么样的杯子。 因为设计测试用例的规则应该是根据需求分析文档设计用例,客户需求什么,就测试什么。但是在没有需求分析文档…

如何准备pmp考试?(含备考资料)

一、复习计划的制定根据之前在培训班共同奋斗的小伙伴学习时间统计,平均每天的学习时间是在 3-4 小时左右,基本上是白天 1 小时晚上 3 小时左右,通过率基本都在 80% 左右,最好的时候能达到 90%,大概的学习安排如下&…

【科研】【ReID】科研论文怎么写?八股文写作思路

拿 Densely Semantically Aligned Person Re-Identification 这篇文章举例。 本文写作非常好,写的很有逻辑,很标准。科研论文虽然是八股文,但是能经历了百年的发展而来,有它的合理性。我把它Introduction的写作思路跟一下&#x…

buuctf13(perl脚本GET open命令漏洞redis主从复制xssssti关键字过滤绕过csrf)

目录 <1> [HITCON 2017]SSRFme(perl脚本GET open命令漏洞) <2> [网鼎杯 2020 玄武组]SSRFMe(SSRF结合redis主从复制RCE) <3> [GWCTF 2019]mypassword(xss获取保存的cookie内容) <4> [GWCTF 2019]你的名字(ssti {{和关键字绕过) (1) {{ 和 }} 过滤绕…

C++ STL:空间配置器

文章目录1、allocator 接口层1.1、接口层源码1.2、定位 new 表达式1.3、实例2、allocator 实现层2.1、一级空间配置器2.2、二级空间配置器allocatedeallocate源码流程分析3、allocator 问题背景&#xff1a;频繁使用 malloc 分配内存的造成的问题&#xff1a; 系统调用&#x…

js红宝书学习笔记(1-6章)

就按照原书中写的章节顺序记笔记了&#xff0c; 还有可能我学过js一段时间了&#xff0c;可能有些对于新手的细节会忽略&#xff0c;但是会尽量写全的~ 1.第一章 什么是JavaScript 1.1讲了一些历史&#xff0c;所以我们从1.2开始看 1.2 JavaScript的实现 完整的JaveScript包…

JVM内存溢出与内存泄露

1. 什么是内存溢出? 当前创建的对象的大小大于可用的内存容量大小&#xff0c;发生内存溢出。2. 什么是内存泄露? 该回收的垃圾对象没有被回收&#xff0c;发生了内存泄露&#xff0c;垃圾对象越堆越多&#xff0c; 可用内存越来越少&#xff0c;若可用内存无法存放新的垃圾…

【神经网络】LSTM为什么能缓解梯度消失

1.LSTM的结构 我们先来看一下LSTM的计算公式&#xff1a; 1.遗忘门&#xff1a; 2.输入门&#xff1a; 3.细胞状态 4.输出门 2.LSTM的梯度路径 根据LSTM的计算公式&#xff0c;可以得出LSTM的cell state与、、都存在计算关系&#xff0c;而、、的计算公式又全部都与有关&#x…

【目标检测】入门基础原理学一遍就够了吧

我菜就爱学 文章目录目标检测实战1 目标检测简介1.1 目标检测分类1.2 检测的任务1.3 目标定位实现的思路1.4 两种bbox名称解释2 R-CNN2.1 目标检测-Overfeat模型2.2 目标检测-R-CNN模型2.2.1 候选区域&#xff08;ROI&#xff09;2.2.2 CNN网络提取特征2.2.3 特征向量训练分类器…

vue2--基于zm-tree-org实现公司部门组织架构图

1.安装zm-tree-org npm i zm-tree-org -S2.引入使用 import Vue from vue; import ZmTreeOrg from zm-tree-org; import "zm-tree-org/lib/zm-tree-org.css";Vue.use(ZmTreeOrg);3.个人需求 组织架构图中&#xff1a;部门可拖动更改所属部门&#xff0c;可增加部门…

javascript学习+Vue学习+项目开发

一 《学习JavaScript数据结构与算法》 1.ES2015的类是基于原型语法的语法糖 2.TypeScript是一个开源的、渐进式包含类型的JavaScript超集 以&#xff0e;ts为扩展名 以tsc命令来编译它 TypeScript允许我们给变量设置一个类型&#xff0c;不过写法太啰唆了。 TypeScript有一…

博客系统——项目测试报告

目录 前言 博客系统——项目介绍 1、测试计划 1.1、功能测试 1.1.1、编写测试用例 1.1.2、实际执行步骤 1.2、使用Selenium进行Web自动化测试 1.2.1、引入依赖 1.2.2、提取共性&#xff0c;实现代码复用 1.2.3、创建测试套件类 1.2.4、博客登录页自动化测试 1.2.5、…

SQL注入报错注入之floor()报错注入原理分析

简介 对于SQL注入的报错注入通常有三个函数需要我们掌握&#xff1a; extractValue(xml_frag, xpath_expr)updateXML(xml_target, xpath_expr,new_xml)floor() 对于extractValue和updateXML函数来说比较好理解&#xff0c;就不做解释了&#xff0c;这里只对floor函数的报错注…

LabVIEW网络服务安全2

LabVIEW网络服务安全2在客户端应用程序中创建签名对请求进行签名要求您具有能够从客户端的编程语言调用的MD5摘要算法以及SHA256加密摘要算法的实现。这两种算法通常都可用于大多数平台。还需要&#xff1a;1. 要使用的HTTP方法的字符串&#xff08;“GET”、“POST”、“PUT”…