史上最简约的vi教程,10分钟包教会

从第一次接触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专家的!

原文地址:https://www.cnblogs.com/siweihz/p/12210400.html

时间: 2024-10-15 00:19:02

史上最简约的vi教程,10分钟包教会的相关文章

史上最简单的 MyBatis 教程

1 前言 MyBatis 源于 Apache 的一个开源项目 iBatis,而 iBatis 一词则来源于"internet"和"abatis"的组合,2010年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为MyBatis ,2013年11月其又迁移到 Github.MyBatis 是一个基于 Java 的支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架,相比于基于面向对象使用 HQL 语言的

【转】史上最浅显易懂的Git教程!

之前一直在找git的学习教程,网上搜到很多,但是大多数写的都非常简单或者混乱,你知道技术男的思维就是以为他抛一个专业术语出来,以为你都懂……或者简单写两句,插个图,他觉得他懂了,你也能懂,事实上初学者看得非常痛苦.现在终于下面这个教程,简直写得“包教包会”的程度,按照作者的体系一课时一课时地学下来,掌握基本的git操作没问题,不要以为光看看就会用了,一定要自己敲!感谢作者廖雪峰同志. 传送门:史上最浅显易懂的Git教程!

史上最简单的 SpringCloud 教程 | 终章

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. 目录(?)[+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客 错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝.赶快上船吧,老

史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/或者http://blog.csdn.net/forezp/article/details/81040925 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑.另外说明spring cl

史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f10-eureka/或者http://blog.csdn.net/forezp/article/details/81041101 文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,

Python爬虫入门到实战-史上最详细的爬虫教程

马哥高薪实战学员 [Python爬虫入门到实战-史上最详细的爬虫教程,限时免费领取] 爬虫分类和ROBOTS协议 爬虫URLLIB使用和进阶 爬虫URL编码和GETPOST请求 原文地址:https://blog.51cto.com/10515215/2385329

微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)

很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现的是基础功能.但是,可以给学习者很便捷的体验和很好的启发. 不过,随着微信平台和云服务的发展,真担心,程序猿会失业! 目录 一.微信小程序申请 二.服务器设置(申请.部署.域名) 1.申请服务器 2.部署服务器 3.域名申请和配置 三.小程序发布 1.下载DEMO 2.下载开发工具并安装 3.配置参

史上最全CentOS安装教程,图文结合

这是我最近整理的一份最全的CentOS安装步骤,亲自测试步骤,步步都有截图,步骤清晰.按此教程可轻松装机,并且安装成功的主机能访问外部网络. 闲话不说,首先介绍一下本教程用到工具: VMware Workstation Pro 12 CentOS-6.5-x86_64-minimal.iso 下面我们就开始装机. 第一步,打开VMware Workstation Pro 12,点选编辑->虚拟网络编辑器 点击虚拟网络编辑器,查看里面的内容信息 我这里呢,选的是VMnet8  NAT模式,留意箭头

史上最浅显易懂的Git教程!

本教程只会让你成为Git?用户,不会让你成为Git专家.很多Git命令只有那些专家才明?白(事实上我也不明白,因为我不是Git专家),但我保证 这些命令可能你?一辈?子都不会?用到.既然Git是一个工具,就没必要把时间浪费在那些“高级”但几乎永远不会用到的命令上.一旦你真的?非?用不可了,到时候再自行Google或者请教专家也未迟. Git是什么?Git是??目前世界上最先进的分布式版本控制系统(没有之?一).Git有什么特点?简单来说就是:?高端?大?气上档次!