vi/vim使用命令

你是否在编辑文件时以为键盘坏了,为什么不能删除呢,为什么不能敲代码呢,等你初识vi,会觉得这个东西为什么设计得这么难用,这篇教程带你熟练得用上这款经典的工具
Vi 是在 Unix 系统上广泛使用的编辑器,Vim 是 Vi 的改进版本,由 Bram Moolenaar 在 1991 年发布,Vim兼容vi命令,现在很多系统将vi符号链接到Vim,所以使用vi命令其实还是用的Vim

安装Vim

#centos
sudo yum update
sudo yum install vim#debian/ubuntu
sudo apt update
sudo apt install vim

直接输入vi a.txt可以打开文件,文件不存在则创建新文件,按下i进入插入模式,输入4*4的a矩阵,按下esc即可退出到命令模式

修改vim配置文件

#查看vim信息
vi --version

image.png

#编辑vim配置
vi $HOME/.vimrc#语法高亮
syntax on
#tab占4个空格
set ts=4
#将tab转换为空格
set expandtab
#显示行号
set number
#实时计算其他行与当前行的距离
set relativenumber

image.png

命令模式(Command Mode)

当我们进入文件时处于命令模式,新建一个文件复制一篇英语作文,按下i,windterm再按Shist+Insert粘贴,练习一下就会了

命令模式才能移动光标,也就是刚进入文件的模式或者插入模式按下esc

vi/vim区分大小写,它设计的目的是让你用键盘解决问题,不需要用到鼠标

命令移动光标
K
J
H
L
2k向上移动2行(未配置set relativenum)
4j向下移动4行(未配置set relativenum)
4Enter向下移动4行
2k移动到对应往上2行的行号,不用自己算多少行,实时显示其他行到当前行的距离(配置set relativenum)
4j移动到对应往下4行行号,不用自己算多少行,实时显示其他行到当前行的距离(配置set relativenum)
n2空格number,跳到当前光标后指定2的位置,按下n,再输入数字,再按空格,,例如跳到当前光标后6位:n 6 空格
0Home数字0,移动到行首
$End移动到行尾
w向后跳到每个单词开头,括号也算一个单词
eend,向后跳到每个单词末尾,括号也算一个单词
bback,回到上一个位置,括号也算一个单词
-移动到非空格上一行
+移动到非空格下一行
gg移动到最顶部
GShift+g将光标移动到整个文档的最后
4G4 Shift+g将光标移动到整个文档的第4行
HCtrl+h光标移动到屏幕的最上方那一行的第一个字符
MCtrl+m光标移动到屏幕的最上方那一行的第一个字符
LCtrl+l光标移动到屏幕的最上方那一行的第一个字符
Ctrl+fPage Down屏幕向下移动一页
Ctrl+bPage Up屏幕向上移动一页
Ctrl+d屏幕向下移动半页
Ctrl+u屏幕向上移动半页
命令修改
y0yank,复制当前行光标位置到行首的内容
y$yank,复制当前行光标位置到行尾的内容
y1Gyank,复制当前行到第一行的内容
yGyank,复制当前行到最后一行的内容
yyyank,复制当前行
10yyyank,复制当前行往下的10行内容
yw复制一个单词
p粘贴到光标下一行
PShift+p粘贴到光标上一行
4p粘贴4次
J将当前行与下一行合成同一行,删除回车
r*替换当前光标所选的字符,例如将当前光标所指替换为s:rs
RShift+rREPLACE,替换模式,按下R后,再输入字符替换当前光标所选的字符并将光标向后移动
dddelete,删除当前行
dw删除一个单词但不进入插入模式
cw删除一个单词并进入插入模式
x删除当前光标所指的字符
ci+{ci+}ci+[ci+]ci+(ci+)change in,清除当前光标所在括号内的内容并切换到插入模式
.英语句号,重复上一次修改操作,例如删除、替换、插入
uundo,撤销上一步操作
Ctrl+r重做上一步撤销动作,回退撤销
Ctrl+vvisual block,视觉模式,选择单个字符,通过hjkl移动光标来选择字符,按d删除选中内容并回到命令模式
Shift+vvisual block,视觉模式,选择整行,通过hjkl移动光标来选择字符,按d删除选中内容并回到命令模式

插入模式(Insert Mode)

命令模式按以下命令键进入插入模式(插前附后),有的远程连接工具会在左下角显示INSERT,也就是刚进入文件的模式到可以输入的模式

image.png

命令输入字符时插入的位置
i光标左边,esc退出
aappend,光标后,esc退出
IShift+i行首,esc退出
AShift+a行尾,esc退出
entre换行
Insert切换插入/替换模式
oopen a new line,新建下一行
OShiftopen a new line,新建上一行
BackSpace删除光标前一个字符
Delete删除光标后一个字符
esc退出插入模式命令模式

命令行模式(Command-Line Mode)

再按下esc退出插入模式命令模式,在命令模式输入:/进入命令行模式

image.png

命令解释
:set nu设置行号(未配置set relativenum
:set nonu取消行号(未配置set relativenum
:q仅退出,文件没有编辑即可仅退出,quit
:q!不保存退出
:wwrite,保存但不退出
n移动到下一个匹配项
:r 文件名将另一文件内容添加到当前光标后面
:w 文件名另存为
ZZShift+z Shift+zwrite&quit,保存退出
/*向前搜索匹配并移动光标到对应位置,例如查找当前光标位置前的hello:/hello
?*向后搜索匹配并移动光标到对应位置,例如查找当前光标位置后的hello:?hello
n移动到下一个匹配项
NShift+n移动到上一个匹配项
:%s/old/new/g全局替换,例如全局替换hello为hello world::%s/hello/hello world/g
:%s/old/new/g全局替换,替换前提示每个是否确认替换(),例如全局替换hello为hello world::%s/hello/hello world/gc
escEnterctrl+c退出命令行模式
  • y:将当前匹配项替换为新的内容并继续执行下一个匹配项的替换
  • n:跳过当前匹配项,不进行替换,并继续执行下一个匹配项的替换
  • a:替换所有剩余的匹配项,不再提示每个匹配项
  • q:立即退出替换操作,不进行任何替换
  • l:将当前匹配项替换为新的内容并退出替换操作,不进行下一个匹配项的替换
  • ^E:向上滚动一行,显示上面的内容
  • ^Y:向下滚动一行,显示下面的内容

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

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

相关文章

Unity与Js通信交互

目录 1.Js给Unity传递消息 2.Unity给Js传递消息 简介: Unity 与 JavaScript 通信交互是指在 Unity 项目中实现与 JavaScript 代码进行数据交换和功能调用的过程。 在 Unity 中,可以通过特定的接口和技术来与外部的 JavaScript 环境进行连接。这使得 Unity 能够利…

进击算法工程师深度学习课程

"进击算法工程师深度学习课程"旨在培养学员在深度学习领域的专业技能和实战经验。课程涵盖深度学习基础理论、神经网络架构、模型优化方法等内容,通过项目实践和算法实现,帮助学员掌握深度学习算法原理和应用,提升在算法工程师领域…

EasyExcel文件导出,出现有文件但没有数据的问题

一开始由于JDK版本过高,我用的17,一直excel没有数据,表头也没有,后来摸索了好久,找了资料也没有,后来改了代码后报了一个错误(com.alibaba.excel.exception.ExcelGenerateException: java.lang.…

【抽代复习笔记】19-群(十三):奇偶置换、循环置换的几个定理及例题

定义: ①在Sn中,能够表示为奇数多个对换乘积的置换称为“奇置换”,能够表示为偶数多个对换乘积的置换称为“偶置换”; ②所有偶置换的集合记为An。 例1:(1)计算S1和S2中奇、偶置换的数目&…

数据中台-知识图谱平台

【数据分析小兵】专注数据中台产品领域,覆盖开发套件,包含数据集成、数据建模、数据开发、数据服务、数据可视化、数据治理相关产品以及相关行业的技术方案的分享。对数据中台产品想要体验、做二次开发、关注方案资料、做技术交流的朋友们,可以关注我。 1. 概述 随着…

ResNet——Deep Residual Learning for Image Recognition(论文阅读)

1.什么是ResNet ResNet是一种残差网络,咱们可以把它理解为一个子网络,这个子网络经过堆叠可以构成一个很深的网络。下面是ResNet的结构。 2.为什么要引入ResNet 理论上来说,堆叠神经网络的层数应该可以提升模型的精度。但是现实中真的是这…

智慧守护 畅游无忧——北斗应急呼叫柱,为景区安全加码

在大自然的怀抱中,中型及大型公园、景区以其壮丽风光吸引着成千上万的游客前来探索,成为了人们休闲娱乐的好去处。然而,广袤的区域、复杂的地形和分散的人流也给安全保障带来了前所未有的挑战。传统的巡逻方式难以覆盖每一个角落,…

【第六篇】SpringSecurity的权限管理

一、权限管理的实现 服务端的各种资源要被SpringSecurity的权限管理控制可以通过注解和标签两种方式来处理。 放开了相关的注解后在Controller中就可以使用相关的注解来控制了 JSR250注解 /*** JSR250*/ @Controller @RequestMapping("/user") public class UserC…

物理隔离后数据怎么导入和导出?安全U盘一键解决

政府单位、军工和科研所、航空航天企业、金融机构、医疗单位、电力企业、生物制药实验室等企业及单位,因研发和生产过程、或日常经营中涉及大量敏感信息和技术,需要通过物理隔离来确保网络的安全性。因此,多采用物理隔离的方式进行网络建设。…

前端 CSS 经典:在 Vue3 中使用渐进式图片

1. 什么是渐进式图片 当我们网站会加载很多图片的时候,有些图片尺寸很大,加载就会很慢,会导致页面长时间陷入白屏状态,用户体验很不好。所以可以使用渐进式图片,先给用户展示模糊图,这些图尺寸小&#xff…

django学习入门系列之第二点《浏览器能识别的标签3》

文章目录 列表表格往期回顾 列表 无序列表 <!-- <ul </ul> 无序列表 --> <ul><li> 内容1 </li><li> 内容2 </li><li> 内容3 </li><li> 内容4 </li> </ul>有序列表 <!-- <ol> &…

WordPress、Typecho 站点如何让 CloudFlare 缓存加速

众所周知 WordPress、Typecho 都是著名动态博客站点(一个最简单的判断依据就是都要依赖结合数据库),这类站点在 CDN 缓存上都有一个致命的缓存弊端就是动静态请求的区分,理论上要让 CDN 绕过所有的动态请求,缓存所有的静态请求,否则就会造成前端登录和非登录状态的混乱,…

小程序制作成本是多少?揭秘隐藏费用!

在日常生活中&#xff0c;有很多小程序&#xff0c;其中我们最熟悉的是微信小程序&#xff0c;所以小程序对我们每个人来说并不陌生。那么&#xff0c;你知道制作一个小程序要花多少钱吗&#xff1f;制作小程序的成本是多少&#xff1f;今天&#xff0c;本文将带领您揭示小程序…

禁渔期水域监管:EasyCVR视频智能监控方案

一、背景与需求分析 根据农业部印发的《中国渔政亮剑2024系列专项执法行动方案》&#xff0c;我国将持续推进长江十年禁渔、海洋伏季休渔、黄河等内陆重点水域禁渔等专项行动。根据四川省相关规定&#xff0c;每年3月1日至6月30日为禁渔期&#xff0c;在此期间&#xff0c;四川…

颠覆与创新:探寻Facebook未来的发展路径

Facebook&#xff0c;这个曾经引领社交网络革命的巨头&#xff0c;在如今竞争激烈的科技市场中&#xff0c;正面临着前所未有的挑战和机遇。如何在不断变化的数字世界中保持竞争力&#xff0c;成为业界领先者&#xff0c;这是摆在Facebook面前的重要课题。本文将探寻Facebook未…

单位经常要你加班却不发加班费,你想到这一招没有?

单位经常要你加班却不发加班费&#xff0c;你想到这一招没有&#xff1f; 你也许经常在忙碌的工作和繁重的加班中度过&#xff0c;然而&#xff0c;却从未得到过应有的加班费。但你又不想离开这个单位&#xff0c;或许单位的工作环境人性化&#xff0c;同事之间的关系融洽&…

【新手必看】修复Windows11蓝牙连接问题的7个方法!

在Windows11电脑操作中&#xff0c;用户经常会到蓝牙功能&#xff0c;如果蓝牙连接出现问题了&#xff0c;就会导致用户无法成功使用蓝牙。但是&#xff0c;许多新手用户不清楚要怎么操作才能解决蓝牙连接问题&#xff1f;会有不同的因素导致蓝牙连接出现问题&#xff0c;接下来…

3d交互式场景在线编辑平台的好处

在数字化教学的新时代&#xff0c;我们为您带来了革命性的产品——VR全景展示搭建编辑器。它将传统的教学方式升级为三维模式&#xff0c;让课程训练更加真实生动&#xff0c;为您带来前所未有的学习体验。 VR全景展示搭建编辑器不仅支持视频录播、PDF、图文等多种内容承载方式…

20240613每日前端-------vue3实现聊天室(二)

看效果图&#xff1a; 今天具体讲下&#xff0c;聊天消息框的布局&#xff1a; 消息框大致分为两块&#xff1a; 别人发来的消息自己发出的消息 元素如下&#xff1a; 头像消息发送人发送时间 html代码设计如下&#xff1a; 整体先用一个div作为外边框&#xff0c;观察上面…

大模型:分本分割模型

目录 一、文本分割 二、BERT文本分割模型 三、部署模型 3.1 下载模型 3.2 安装依赖 3.3 部署模型 3.4 运行服务 四、测试模型 一、文本分割 文本分割是自然语言处理中的一项基础任务&#xff0c;目标是将连续的文本切分成有意义的片段&#xff0c;这些片段可以是句子、…