史上最简约的vi教程,10分钟包教会(代码片段)

siweihz siweihz     2023-04-25     302

关键词:

从第一次接触vi/vim到现在已经十几年了,在这个过程中,来来回回,反反复复,学习vi很多次了。

虽然关于vi的使用,我还远未达到“专家”的水平,但对于vi的使用,我有话说。

1.缘起

vi是一个编辑器,起源于unix,在linux中非常常用。关于vi的使用,网上有大量的教程,但质量良莠不齐,很容易误导“新手”。本文的价值在于,我走了十几年的弯路,你可以少走弯路。

每个人学习vi的目的不一样,学习过程和学习方法也比如不同。一般学习者分如下3种情况:

  • 新手级

    新手要求不高,会用基本操作即可。本文通过10分钟的学习,就可以达到这个目标。

  • 进阶级

    大部分人目前处于这个阶段,在本文的最后,将介绍如何从进阶级步入专家级。

  • 专家级

    到这个阶段,基本上可以做到“信手拈来”,出神入化了。

2.新手学习vi

对于新手入门vi,只要掌握打开文件,编辑,保存。

  • 打开文件

    在命令行中 vi filename,就可以打开文件进行查看和编辑。

  • 编辑

    打开文件后进行编辑的操作,主要包括“增、删、改、查”。

    和其他编辑器不同,vi 有Normal模式Insert模式

    在Normal模式下输入i进入Insert模式,输入Esc返回Normal模式。(当然有非常多的方法进入编辑模式,如输入ao等,此处不过多说明)。

    1)增

    确保是在Insert模式下,通过键盘输入内容即可。

    [注意] 如何识别当前是在什么模式下?状态栏可以看的,或者键盘输入看。

    2)删

    删除,跟其他编辑器的操作不同(其他编辑器是先选定,然后Delete、或者Backspace)。

    在vi中的删除是在Normal模式下,通过 x 删除一个字符,通过 dd 删除光标所在行。

    3)改

    所谓“改”,无外乎先删除,再输入。我们通过1)和2)组合实现。

    好吧,这里还是学一点吧: 在Normal模式下输入cw,可以替换一个“单词”。

    4)查

    vi打开的文件,如果内容非常多,需要查询,替换的时候,需要用到“查”。

    在Normal模式下,输入/,后跟需要查询的内容,然后回车即可。

  • 保存

    保存是在命令模式下输入 :w 即可,退出时命令模式下输入 :q

3.进阶学习vi

新手通过步骤2,初步掌握了vi的使用。进阶学习,需要掌握(切记下面所有的都是在Normal模式):

  • 初级光标的移动

    你可能会有疑问,新手不需要移动光标?当然需要了,只不过默认通过“上、下、左、右”箭头移动即可。其实vi中,为了更加高效,是通过 h j k l来移动光标的。

  • 高级光标的移动

    比如数字0移动到行的开头,$移动到当前行的行尾,^移动到本行第一个非空字符,

  • 各种进入Insert模式的方法

    比如在光标后插入a,在当前行下面新增一行的o,在当前行上面新增一行的shift + o,或者输入cw替换一个word

  • 查找和替换

  • 复制、粘贴

    复制通过yy,粘贴是p

    灵活掌握,比如我们知道dd是删除当前行,光标定位到目标位置后,接着按键p是可以粘贴的。

    比如3dd是重复执行dd三次,不一而足。

  • 光标的定位

    :N,比如:100,表示光标定位到第100行。在此,需要思考,总共只有10行,会怎么样?

    gg相当于是:1

    G定位到最后一行

  • 区域选择、块操作、可视化选择

    ......

4.总结

对于新手来说10分钟入门vi不吃亏,对于已经入门需要进阶,请自行学习:

  • Learn Vim Progressively 个人认为这个是有史以来最好的vi教程,没有之一。

  • 对于新手,也可以通过vimtutor来学习

方法就是,“用”起来就会了。虽然我用的是windows 10系统,我开发中,vs code和IntelliJ IDEA、visual studio都启用了vi的。

有图有真相:

技术图片

加油,我相信你也可以入门,并成为vi专家的!

史上最详细的sqlmap使用教程(代码片段)

史上最详细的sqlmap使用教程1.sqlmap简介2.初级扫描方案探测是否存在sql注入漏洞查看数据库信息3.高级扫描方案绕过waf探测等级和危险等级(—level—risk)伪造HttpReferer头部执行指定的SQL语句(—sql-shell)执行操作系统命令(—os-shell)读... 查看详情

史上最简洁kotlin版eventbus的使用教程(代码片段)

EventBus简介EventBus是一种用于Android的事件发布-订阅总线。他简化了应用程序内各个组件之间进行通信的复杂度。GitHub-greenrobot/EventBus:EventbusforAndroidandJavathatsimplifiescommunicationbetweenActivities,Fragments,Threads,Services,etc.Lesscod 查看详情

nacos安装教程(史上最详细保姆级教程)(代码片段)

作者:大三的土狗专栏:SpringCloud快速导航前言1、下载安装包2、解压3、端口配置4、启动5、访问6、Nacos的依赖7、概览8、生态总结前言  Nacos的全称是DynamicNamingandConfigurationService,Na为naming/nameServer即注册中心,co为con... 查看详情

git史上最易上手详细教程(代码片段)

   写的非常好,记录下!!!廖雪峰的Git教程https://www.liaoxuefeng.com/一、Git简介初始化一个Git仓库,使用gitinit命令。添加文件到Git仓库,分两步:使用命令gitadd<file>,注意,可反复多次使... 查看详情

这恐怕是史上最简单的上传aar教程(代码片段)

在做项目的时候,抽出来一些工具方法,然后做其他项目的时候需要使用,只是后就有将这些工具方法抽出来单独形成一个库的需求了。在AndroidStudio里就是AAR。因为我是个人开发,想到方便的方法就是把AAR上传到本地maven库,用... 查看详情

androidroom史上最快速入门教程(kotlin版本)(代码片段)

一、Room介绍Android采用Sqlite作为数据库存储。Sqlite代码写起来繁琐且容易出错,所以开源社区里逐渐出现了各种ORM(ObjectRelationalMapping)库。这些开源ORM库都是为了方便Sqlite的使用,包括数据库的创建,升级... 查看详情

androidroom史上最快速入门教程(kotlin版本)(代码片段)

一、Room介绍Android采用Sqlite作为数据库存储。Sqlite代码写起来繁琐且容易出错,所以开源社区里逐渐出现了各种ORM(ObjectRelationalMapping)库。这些开源ORM库都是为了方便Sqlite的使用,包括数据库的创建,升级... 查看详情

史上最简单opengl+vs2017环境配置(代码片段)

这里采用最简单的方法:(1)添加Nuget包管理器(方便我们为项目添加OpenGL的库)  (2)新建一个项目右键我们的项目名——>管理NuGet程序包——>搜索nupengl,然后下载安装(3)输入以下代码:#include<G... 查看详情

史上最简单的mysql5.7.x免安装教程(代码片段)

第一步: 从官网下载ziparchive版本:http://dev.mysql.com/downloads/mysql/第二步:解压缩至相应目录(D:\\MySQL),并配置环境变量(将*\\bin添加进path中);第三步:(重要) 查看详情

深度学习为什么选择pytorch?史上最详细pytorch入门教程(代码片段)

目录前言一、Pytorch介绍1.常见的深度学习框架2.Pytorch框架的崛起3.Pytorch与Tensorflow多方位比较二、Tensors1.Tensor的创建2.Tensor的操作3.Tensor与Numpy三、Autograd的讲解1.模型中的前向传播与反向传播2.利用autograd计算梯度四、构建神经网络... 查看详情

史上最通俗易懂的python入门教程,漫画图文生动有趣,一看就会(代码片段)

全网最简单易懂!495页Python漫画教程,高清PDF版开发下载。今天给那些在学习Python路上有挫折的朋友分享一份《看漫画学Python》,不同的是本书采用漫画的形式,用简单易懂的语言和图片详细解读了Python的每一个知识点。【... 查看详情

史上最通俗易懂的python入门教程,漫画图文生动有趣,一看就会(代码片段)

今天给那些在学习Python路上有挫折的朋友分享一份《看漫画学Python》,不同的是本书采用漫画的形式,用简单易懂的语言和图片详细解读了Python的每一个知识点。【文末免费自取PDF】文档目录数字类型的数据函数常用的内置模块访... 查看详情

网络安全nessus工具安装激活教程,三分钟手把手教会(代码片段)

Nessus工具介绍Nessus号称是世界上最流行的漏洞扫描程序,而且它开源,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus... 查看详情

最详细的个人博客教程搭建教程,最快5分钟快速搭建简约风格博客(代码片段)

...始先看下博客整体效果。点击在线预览我的博客支持特性简约风格博客PoweredByJekyll博客文章搜索自定义社交链接网站访客统计GoogleAnalytics网站分析Gitalk评论功能自 查看详情

史上最简单的github教程

文章目录1简介2目录3译文4我的项目1简介GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理... 查看详情

史上最简明的tcpdump入门指南,看这一篇就够了(代码片段)

简介网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。例子1、监听特定网卡tcpdump-ien02、监听特定主机例子:监听本机跟主机182.254.38.55之间往... 查看详情

mac版本一文打通git教程!史上最详细解析!(代码片段)

文章目录第一章Git概述1.1何为版本控制1.2为什么需要版本控制1.3版本控制工具1.4Git简史1.5Git工作机制1.6Git和代码托管中心第二章Git安装第三章Git常用命令3.1配置基本信息(只需设置一次)3.2初始化本地库3.3查看本地库状... 查看详情

万字硬核!史上最详细的maven教程!——双非上岸阿里巴巴系列(代码片段)

东北某不知名双非本科,四面成功上岸阿里巴巴,在这里把自己整理的面经分享出来,欢迎大家阅读。Maven是目前最流行的管理工具,没有之一。也是面试时最易被广大同学忽略的知识。大到BAT,小到创业公司... 查看详情