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,一经查实,立即删除!

相关文章

深入探索Spring Boot的自动配置机制

深入探索Spring Boot的自动配置机制 在上一篇中,我们介绍了Spring Boot的自动配置机制及其基本工作原理。这篇文章将进一步扩展这一主题,深入探讨自动配置的内部实现、常见的自动配置类、以及如何通过高级自定义来优化Spring Boot应用的配置。 1. 自动…

Unity与Js通信交互

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

Python CGI 编程

Python CGI 编程 1. 引言 CGI,即通用网关接口(Common Gateway Interface),是一种重要的互联网技术,它允许服务器上的程序与客户端(通常是浏览器)进行交互。Python作为一种流行的编程语言,因其简洁易读的语法和强大的功能,被广泛用于CGI编程。本文将详细介绍如何使用…

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

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

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

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

c++【入门】求三个数的平均数

限制 时间限制 : 1 秒 内存限制 : 128 MB 题目 小雅刚刚考完语文、数学、英语的三门期中考试,她想请你编个程序来帮她算算她的平均分,要求输入三个正整数,分别表示三科考试的分数,输出它们的平均值。 输入 一行,…

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

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

代码随想录第三十七天打卡

56. 合并区间 本题也是重叠区间问题&#xff0c;如果昨天三道都吸收的话&#xff0c;本题就容易理解了。 代码随想录 class Solution { public:static bool cmp(vector<int>a,vector<int>b){if (a[0]b[0])return a[1]<b[1];return a[0]<b[0];}vector<vec…

数据中台-知识图谱平台

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

清理Linux操作系统buff/cache缓存

清理Linux操作系统buff/cache缓存 清理页缓存 echo 1 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches1 清理目录项和inode缓存 echo 2 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches2 同时清理页缓存、目录项和inode缓存 echo 3 > /pr…

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

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

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

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

搜维尔科技:使用Haption远距离遥操作精确切割材料

使用Haption远距离遥操作精确切割材料 搜维尔科技&#xff1a;使用Haption远距离遥操作精确切割材料

【第六篇】SpringSecurity的权限管理

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

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

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

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

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

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

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

快速入门Flutter:从零开始构建你的第一个应用

快速入门Flutter&#xff1a;从零开始构建你的第一个应用 Flutter 是一个由 Google 开发的开源框架&#xff0c;用于构建高性能、跨平台的移动应用程序。本文将介绍如何快速入门 Flutter&#xff0c;包括工具下载、环境配置以及创建一个简单的 Demo 应用。 一、环境准备 安装…

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

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

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

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