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

Vim编辑器常用操作手册

命令说明示例注意
k j h l光标上下左右移动
ESC退出其他模式进入常规模式(normal mode)
:q!常规模式下输入,退出vim,但是会丢弃所有改动
:wq保存并退出
x删除光标处的字符
s删除光标处的字符并进入输入模式
dw删除一个单词
d$删除到行尾
d [number] motion执行多次删除操作d2w删除两个单词
dd删除一整行2dd删除两行,以此类推

u

Ctrl+R

撤销

重做

U将一整行恢复到原始状态
p将最后一次删除的内容粘贴到光标所在处后面如果是使用dd删除一行,则输入p会把这一行粘贴在光标下一行

r

R

用 r 后面的字符替换光标所在处的字符

替换多个字符

rx输入R会进入替换模式,继续输入会替换后续的字符,完成后按ESC退出替换模式
ce改变直到单词结尾ce后输入ce会删除单词并进入插入模式
c [number] motion修改指定的内容

cw修改一个单词

c2w修改两个单词

c$修改光标所在处到行尾

Ctrl-g显示文件状态以及目前在文件中所在的位置
G定位到文件底部
gg定位到文件开头
number+G定位到文件的某一行492G 定位到第492行

/+phrase

?+phrase

从光标所在位置向后搜索/后面的内容从光标所在位置向前搜索?后面的内容输入/hello,回车搜索 hello 这个单词

继续输入:

n 搜索下一个匹配项

N 反向搜索下一个匹配项

%匹配括号搜索 (), [], {}将光标放在左(右)括号上,输入%可以跳转到匹配的右(左)括号上
:s/old/new/g将old替换为new

:s/old/new/ 替换一行中第一次出现的old

:s/old/new/g 替换一行中所有的old

:#,#s/old/new/g 替换两行之间所有的old(#表示具体的行号)

:%s/old/new/g  替换整个文件中所有的old

:%s/old/new/gc 查找整个文件中出现的old,并提示是否替换为new

:!+external command执行外部命令:!ls
:w FILENAME把文件另存为FILENAME:w test
v motion :w FILENAME保存文件的一部分到FILENAME输入v之后可以选择保存哪些内容,再输入 :w+文件名
:r FILENAME读取文件内容并将内容插入到光标所在行的下面:r test

也可以读取外部命令的输出插入到当前文件中,例如插入当前所在目录:

:r !pwd

o

O

在当前光标下面新建一行并输入

在当前光标上面新建一行并输入

会进入输入模式

i

I

a

A

在光标处插入

在行首插入

在光标后插入

在行尾插入

会进入输入模式

y

p

复制

粘贴

v选择要复制的内容,y复制,yw复制一个单词,yy复制光标所在行

:set xxx

:set noxxx

设置选项xxx

关闭选项xxx

:set ic 搜索时忽略大小写

:set noic 搜索时匹配大小写

:set hls 搜索时所有匹配高亮

:set is 搜索时显示部分匹配

:help帮助文档,后面加命令可以查看某个命令的用法:help w

相关文章:

  • Pytorch学习——梯度下降和反向传播 03 未完
  • 一次实战压测流程及问题梳理
  • HTTP协议中常见的状态码及其含义
  • Go 语言 设计模式-工厂模式
  • 塑化行业SRM供应商管理系统:缩短采购周期时间,改善供应商采购管理
  • 【原创】基于SpringBoot的灾情救助系统(疫情援助系统)(SpringBoot毕业设计)
  • EasyExcel 导入导出Excel文件
  • python基础语法二(函数、列表)
  • Shopee店铺提高商品转化的方法,你get到了吗
  • Java筑基32-IO流02-节点流处理流
  • 【ffmpeg】音频采集
  • 【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)
  • 前端例程20220913:粒子飘落效果动画背景
  • 狂神的springboot课程员工管理系统
  • 散列表(哈希表)概述
  • 10个确保微服务与容器安全的最佳实践
  • codis proxy处理流程
  • ES6语法详解(一)
  • Java反射-动态类加载和重新加载
  • Java知识点总结(JavaIO-打印流)
  • js写一个简单的选项卡
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • SegmentFault 2015 Top Rank
  • 初识MongoDB分片
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 代理模式
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 目录与文件属性:编写ls
  • 前端面试之CSS3新特性
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 数组大概知多少
  • 想写好前端,先练好内功
  • 一天一个设计模式之JS实现——适配器模式
  • zabbix3.2监控linux磁盘IO
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $(function(){})与(function($){....})(jQuery)的区别
  • (09)Hive——CTE 公共表达式
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (function(){})()的分步解析
  • (第一天)包装对象、作用域、创建对象
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (接口封装)
  • (南京观海微电子)——I3C协议介绍
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)C#调用WebService 基础
  • .equals()到底是什么意思?
  • .Net 代码性能 - (1)
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET值类型变量“活”在哪?