当前位置:首页 > 科技  > 软件

世界上最厉害的编程神器 ,被大多数人抛弃了......

来源: 责编: 时间:2024-04-28 17:20:52 250观看
导读如果你第一次在Linux上打开vim时,遇到了图中的情况,不要尴尬,其他人的第一次vi之旅也是这样的。图片等你开始练习vi,就会发现很多古怪的现象,比如:为什么使用H、J、K、L来移动光标?用上下左右箭头键不好吗?为什么vi要分为分为

如果你第一次在Linux上打开vim时,遇到了图中的情况,不要尴尬,其他人的第一次vi之旅也是这样的。g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

等你开始练习vi,就会发现很多古怪的现象,比如:g9w28资讯网——每日最新资讯28at.com

为什么使用H、J、K、L来移动光标?用上下左右箭头键不好吗?g9w28资讯网——每日最新资讯28at.com

为什么vi要分为分为指令模式,插入模式,命令行模式?切来切去,多麻烦啊!g9w28资讯网——每日最新资讯28at.com

模式切换为什么要用Esc键?它在键盘的左上角,想要按到它实在太难了!g9w28资讯网——每日最新资讯28at.com

另外,vi的学习曲线为什么如此陡峭?g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

这么难用的东西,我为什么要用它?IDE不香吗?g9w28资讯网——每日最新资讯28at.com

要想回答这些问题,我们得回到vi诞生的那个时候。g9w28资讯网——每日最新资讯28at.com

1975年秋天,Unix光环加身的大神Ken Thompson回到母校伯克利大学做学术休假,他把带来的Unix系统安装到了一个PDP-11/70上,顺手还写了一个Pascal编译器。g9w28资讯网——每日最新资讯28at.com


g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

嗯,大牛就是这么牛。g9w28资讯网——每日最新资讯28at.com

此时另外一位大神Bill Joy刚刚入学,他在用Pascal写项目作业的时候,发现了编译器的缺陷,他也决定做一个黑客,把这个编译器改好。 g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

那时候没有IDE,他们使用一个叫ed的文本编辑器来程序,ed也是大神Ken Thompson写的。g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

ed不好用,后来有人写出了em,Bill Joy又改进了em, 把它变成了en ,然后是eo, ep......  最后是ex!g9w28资讯网——每日最新资讯28at.com

不管怎么改,它们都是“行编辑器” ,和我们现在用的文本编辑器最大的不同是:g9w28资讯网——每日最新资讯28at.com

没有光标!只能按行编辑!

是不是有点匪夷所思?没光标怎么玩啊?g9w28资讯网——每日最新资讯28at.com

举个例子,有一个文件有两行,内容如下g9w28资讯网——每日最新资讯28at.com

hello wold !g9w28资讯网——每日最新资讯28at.com

this is an exampleg9w28资讯网——每日最新资讯28at.com

我发现第一行的wold写错了,想改一下,怎么做呢?g9w28资讯网——每日最新资讯28at.com

那第一步需要先输入1(表示选中第一行),第一行就会显示出来。g9w28资讯网——每日最新资讯28at.com

然后用s 命令调用搜索函数,后面跟着搜索文本和替换文本g9w28资讯网——每日最新资讯28at.com

再输入1,看看结果对不对。g9w28资讯网——每日最新资讯28at.com

整个过程如下,是不是挺让人崩溃的?g9w28资讯网——每日最新资讯28at.com

hello wold !g9w28资讯网——每日最新资讯28at.com

s/wold/worldg9w28资讯网——每日最新资讯28at.com

hello world !g9w28资讯网——每日最新资讯28at.com

唉,当时的程序员过的都是什么日子啊!g9w28资讯网——每日最新资讯28at.com

Bill Joy 使用ex这个“趁手”的工具,很快就把Thompson留下的“烂摊子”Pascal编译器给收拾好了,新的Pascal编译速度很快,运行起来也很快,深受学生们的喜爱。g9w28资讯网——每日最新资讯28at.com

后来,伯克利大学购买了一批叫做ADM-3A的终端,在屏幕上终于支持可以随意移动的光标了!g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

Bill Joy 欣喜异常,他花了几个月时间熬夜,重新设计了ex, 增加了“可视化模式”,ex变成了大名鼎鼎的vi。g9w28资讯网——每日最新资讯28at.com

如果你自己看看ADM-3A终端的键盘,你就会发现两件神奇的事情。g9w28资讯网——每日最新资讯28at.com

图片图片g9w28资讯网——每日最新资讯28at.com

1.它没有单独的上下左右键

所以H、J、K、L 键只能“兼职”来移动光标。g9w28资讯网——每日最新资讯28at.com

2.Esc键和现在的Tab键在同一位置

Bill Joy 用它来做模式切换很方便,左手无需离开主行就可以轻松按到。g9w28资讯网——每日最新资讯28at.com

尽管后来PC的键盘发生了很大变化,但是习惯成自然,这两个操作依然被无数用户守护者,沿用至今。g9w28资讯网——每日最新资讯28at.com

vi是从ex等行编辑器发展而来,也继承了很多行编辑器的操作,比如用户都可以使用类似 /pattern 的命令来搜索文本,以及使用 g9w28资讯网——每日最新资讯28at.com

s/old/new/ 的形式来替换文本,或者通过指定行号来定位文本(例如,3 定位到第三行,$ 定位到最后一行)g9w28资讯网——每日最新资讯28at.com

这些操作如果在编辑模式下,就会出问题,3可能就表示用户的文本,而不是命令了。g9w28资讯网——每日最新资讯28at.com

当然,也可以在编辑模式引入一个特殊的键如ctrl 来处理,最常见的是ctrl + c 表示复制, ctrl+v表示粘贴。g9w28资讯网——每日最新资讯28at.com

但是,如果一个字母无法表达想要做的事情,需要敲入多个字母的时候,ctrl特殊键的方式就痛苦了,毕竟一个手指按着ctrl键,然后再敲一长串字母是很不爽的,对吧?g9w28资讯网——每日最新资讯28at.com

vi把编辑模式和命令模式区分开,就可以在命令模式玩出花儿来,甚至可以基于基本的词来“造句”g9w28资讯网——每日最新资讯28at.com

动词

动词表示对文本的操作,例如g9w28资讯网——每日最新资讯28at.com

d  delete  删除g9w28资讯网——每日最新资讯28at.com

r   replace  替换g9w28资讯网——每日最新资讯28at.com

y  yank  复制g9w28资讯网——每日最新资讯28at.com

v  visual  选择g9w28资讯网——每日最新资讯28at.com

名词

表示待编辑的文本对象g9w28资讯网——每日最新资讯28at.com

w  word  一个单词g9w28资讯网——每日最新资讯28at.com

s   sentence  一个句子g9w28资讯网——每日最新资讯28at.com

p  paragraph  一个段落g9w28资讯网——每日最新资讯28at.com

修饰符(有人称为介词)g9w28资讯网——每日最新资讯28at.com

表示待编辑文本的范围或者位置g9w28资讯网——每日最新资讯28at.com

i   inside     表示在...之内g9w28资讯网——每日最新资讯28at.com

a  around  表示环绕g9w28资讯网——每日最新资讯28at.com

t   till          直到某个字符(不包括该字符)g9w28资讯网——每日最新资讯28at.com

f   find        直到某个字符(包括该字符)g9w28资讯网——每日最新资讯28at.com

然后就可以组词成句了:动词 + 介词 + 名词 ,例如:g9w28资讯网——每日最新资讯28at.com

删除当前的单词 : diw (delete inside word)g9w28资讯网——每日最新资讯28at.com

改变当前的句子:cis(change inside sentence)g9w28资讯网——每日最新资讯28at.com

删除文本直到字符e : dte (delete till 'e')g9w28资讯网——每日最新资讯28at.com

选择一个句子:vis (visual inside sentence)g9w28资讯网——每日最新资讯28at.com

非常强大也非常自然,并且vi还支持自定义,可以定制一套属于自己的动词名词结构出来。g9w28资讯网——每日最新资讯28at.com

当然,复杂的操作可以用鼠标+菜单的方式来实现,那就需要把手从键盘上挪开了。g9w28资讯网——每日最新资讯28at.com

值得注意的是,vi 是在Modem只有300波特率的时候编写的 !g9w28资讯网——每日最新资讯28at.com

即使后来的1200波特率,传输文本的速度也比大多数人阅读的速度慢,更别说300波特率了,这深刻地影响了vi的设计。g9w28资讯网——每日最新资讯28at.com

Bill Joy曾经“酸酸地”说过:那些开发Emacs的家伙们坐在MIT的实验室中,有着像现在光纤一样快的网络,他们可以在屏幕闪烁的情况下发出有趣的命令,而我坐在伯克利的简陋房子里,用着极其缓慢的调制解调器,几乎无法让光标离开底线。人们不会知道,vi是为了一个已经消失的世界编写的。g9w28资讯网——每日最新资讯28at.com

1979年5月,Bill Joy发布了vi,初期用户可能只有75个人。g9w28资讯网——每日最新资讯28at.com

但是vi像野火一样,迅速烧遍了Unix世界。g9w28资讯网——每日最新资讯28at.com

1988年,Bram Moolenaar 写出了vi的模仿品,Vi IMitation(简称vim)。g9w28资讯网——每日最新资讯28at.com

随后几年,他不断完善,1991年,正式发布了vim,不过,此时它的含义是 Vi IMproved。g9w28资讯网——每日最新资讯28at.com

不管怎么模仿、改进,它依然保留了vi那些来自 ADM-3A的,“古怪”的按键和模式,因为这已经成了vi程序员的信仰。g9w28资讯网——每日最新资讯28at.com

图片g9w28资讯网——每日最新资讯28at.com

一旦你跨过了那陡峭的学习曲线,真正掌握了vim,你就掌握了一个最厉害的编程神器,那些vim熟手在使用vim时,双手在键盘上翻飞,光标在屏幕上游动,代码在飞速地变换,让人赏心悦目。g9w28资讯网——每日最新资讯28at.com

但是,vim“古怪”的按键和模式,让更多的程序员浅尝辄止,退回到了传统的编辑器和IDE,不能不说,这是一个很大的遗憾。g9w28资讯网——每日最新资讯28at.com

g9w28资讯网——每日最新资讯28at.com

如需转载,请通过作者微信公众号coderising获取授权。g9w28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-86214-0.html世界上最厉害的编程神器 ,被大多数人抛弃了......

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Rust优于C++的两个原因 ?

下一篇: 纯 CSS 检测文本是否溢出

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 不容错过的MSBuild技巧,必备用法详解和实践指南

    一、MSBuild简介MSBuild是一种基于XML的构建引擎,用于在.NET Framework和.NET Core应用程序中自动化构建过程。它是Visual Studio的构建引擎,可在命令行或其他构建工具中使用
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 一文搞定Java NIO,以及各种奇葩流

    大家好,我是哪吒。很多朋友问我,如何才能学好IO流,对各种流的概念,云里雾里的,不求甚解。用到的时候,现百度,功能虽然实现了,但是为什么用这个?不知道。更别说效率问题了~下次再遇到,
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
  • 中关村论坛11月25日开幕,15位诺奖级大咖将发表演讲

    11月18日,记者从2022中关村论坛新闻发布会上获悉,中关村论坛将于11月25至30日在京举行。本届中关村论坛由科学技术部、国家发展改革委、工业和信息化部、国务
Top