当前位置: 首页 » 软件/文件破解业务 » 为什么黑客都用数字货币进行交易_为什么黑客都用vim

为什么黑客都用数字货币进行交易_为什么黑客都用vim

作者:hacker 时间:2023-01-31 阅读数:146人阅读

文字日记:

为什么看似简陋的vim在熟练的人手中如此的神乎其技?

之前在国内的圈子里有流传一句话那就是:vim是神的编辑器。因为vim入门比较的难,但是熟练之后可以通过更加更少的击键次数来完成同样的操作,所以如果能够完全掌握vim那就可以称之为大神。

用vim打开文件后默认是在命令模式的,这时候按键是不会输入信息的,需要切换到编辑模式,而有六个键对应六种编辑模式:

i :向光标前方插入信息

I(大写i) :在光标所在行的行首插入信息

a :向光标后方插入信息

A :在光标所在行的行末插入信息

o :向光标所在行的下一行插入信息

O :向光标所在行的上一行插入信息

另外除了编辑模式多样之外更多的是相关的命令,这里我就不一一写出来了,毕竟本人水平也有限。所以在能够熟练操作的大神手里,vim可以化腐朽为神奇。

为何Emacs 和 Vim 被称为两大神器

追求独步天下的高手和低手们争着一睹它们的风采,可看到它们朴素单薄的界面后,不禁心下怀疑:这就是神器吗?甚至有人生了轻视之心。肤浅的人嗤之以鼻,说:什么年代了,还抱着这么老土的玩意不放, *** Geek!同学,请冷静下来,听我说:它们的确够老了,都几十年的寿命了,但你想想为什么,为什么这么古老的编辑器,却有越来越多的人皈依它们。Windows下用UltraEdit和Editplus的人质问:它们到底比UltraEdit和Editplus好在哪里?我说:不可同日而语。连UltraEdit和EditPlus都没用过的同学问:它们就相当于Linux上的 Notepad吧?我说:请你从我的眼前消失。一些人勇敢地拾起了Vim或Emacs,却发现学习曲线陡峭而漫长,于是在没发现它们的强大之前就放弃了,说:太难用了,把键盘当鼠标用的烂玩意,有什么好的?还是有一些人留下来了,坚定地守护着这两大神器。一些说葡萄太酸的人想离开又不甘心,总是问:它们到底神在哪里啊?我不禁想起了李宗盛的几句歌词:: 有人问我你究竟是哪里好,这么多年我还忘不掉?春风再美也比不上你的笑,没见过你的人不会明了。 也许你不会明了,我还是要努力讲一讲。1. 无敌的可扩展性1.1 可扩展性给了软件强大的生命曾几何时,Windows用户对软件的可扩展性没有概念,他们只能对他们使用的软件进行非常有限的定制。扩展软件的权利保留在软件开发者手中。软件的使用者如果想要新的功能和特性,只能等待软件的升级。有能力的用户等不及了,为了添加自己想要的功能,从0开始写了一款新的软件。就这样,新的功能意味着新的软件,Windows下的软件前赴后继,迅速地更新换代着。因此, Windows下的软件都很短命。Linux和开源软件渐渐流行起来,人们才发现:可扩展性才能给软件强大的生命。在MS的VS横行的今天,Eclipse为什么被评为更好的IDE?就是因为它在IDE中更具可扩展性。在IE几乎一统天下的时候,为什么Firefox能夺走越来越多的用户,也是因为它的可扩展性。提供了良好的扩展接口,用户自然会写出各种各样的插件,来满足用户自己形形 *** 的要求。这样,软件在用户的推动下自然变得强大了。Emacs和Vim没有被时代淘汰,反而越发强大,也正是因为在数不清的编辑器中,他们具有无可匹敌的可扩展性。1.2 Emacs是伪装成编辑器的操作系统有句夸张的话说:Emacs是伪装成编辑器的操作系统。细细想来,这句话并不夸张。Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。 Lisp是什么东西,这同样是种很有生命力的编程语言。在C语言还没有发明的年代,MIT的人工智能实验室写ITS操作系统时,一部分用的是汇编语言,还有一部分就是用的Lisp。现在,Lisp仍在人工智能研究领域广泛使用着。有这么牛逼的扩展语言,注定Emacs向着无所不能的方向发展。渐渐地,人们用Emacs不再限于写程序,写文档,而且在Emacs里管理文件系统,运行终端,收邮件,上网,听音乐……,真是一发不可收拾。甚至,有人用Emacs控制咖啡机煮咖啡。这种大而全的扩展,背离了“一个程序只做一件事并做好它”的 Unix哲学,被Unix的忠诚用户所诟病。可是真的背离了吗? Emacs说过自己是一个编辑器吗?正是因为Emacs的无敌的可扩展性,人们才分不清Emacs到底是不是一个编辑器了。但,就是有人喜欢这种All-in-One的哲学,喜欢在Emacs中完成每件事。所以才会有人写《生活在Emacs中》,所以, Emacs才会成为一种信仰。1.3 Vim不只是ViVim是Vi更受欢迎的变种之一,除了继承了Vi迅捷的编辑方式, Vim的功能已经比原始的Vi强大得多。这也得益于它可以用Vim脚本无限地扩展。 Vim.org 上已经有数千个脚本了,给Vim增加各种各样的特性和功能。为了证明Vim的可扩展性不输于Emacs,也有用户写了在Vim中玩游戏、运行Shell、和集成GDB在Vim内部调试的插件。客观地讲,Vim的脚本语言与Emacs的ELisp相比,略显逊色,但这丝毫不妨碍它把Vim扩展成非常优秀的编辑器。说到底,Vim的前身Vi和Emacs的设计采用了不同的哲学, Vi更符合Unix传统,它通过管道机制和系统内各种积木工具打交道,它讲究的是和系统内的工具程序协作来完成用户的任务。和Emacs相比,它的定位很明确,就是要做一个强大的编辑器。因此Vim的绝大部分扩展,都是为了更好地完成编辑文本的任务。海纳百川,有容乃大。Emacs和Vim通过别的编辑器无法比肩的可扩展性,不断吸收广大用户的智慧,是它们能成为“神器”的原因之一。2. 特立独行的魅力2.1 可扩展性让你倾注了灵魂一旦你意识到Vim或Emacs的强大,你就踏上了不停发掘它们潜力的漫漫长路。你不停地改进自己的配置文件,你不停地搜索更好的插件,甚至有一天你开始动手写自己的插件。就像剑客保养自己的剑一样,你也甘心花时间提升你的Vim或Emacs。经年累月,不知不觉,你已经在那把剑上倾注了你的灵魂。2.2 独特的操作方式让你中了毒Emacs和Vim有着迥异的操作方式,却成了Unix/Linux世界中两种代表性的操作方式,有些软件的操作方式类似Vi,而有些软件的方式类似Emacs,甚至有些软件提供了Vi的键绑定和Emacs的键绑定让你选择。而无论哪种操作方式,对Windows用户来说都是古怪的。虽说古怪,多少代人也验证了这两种操作方式的高效。Emacs号称Ctrl到死的编辑器。其实它几乎用了所有的辅助键,听说过没有,Emacs = Esc + Meta + Alt + Ctrl + Shift。所以高德纳大师说操作Emacs,就像弹奏管风琴。 Emacs使用非常多的组合按键,这大概也是它高效于其它无模式编辑器的原因之一。你也可以定义自己的组合键序列,调用自己写的lisp函数,完成自己想要的功能。Vi一向是以快速的文本编辑闻名于世的。它的按键更简洁,通常是单个字符按键,就实现某种操作。但这是以有模式为代价的。你要不停地按Esc在从它的插入模式返回Normal模式。客观得讲,在文本编辑方面, Vim比Emacs高效,因为它提供了一些Emacs没有对应功能的操作来辅助高效的文本编辑。但它的模式切换也让一些人受不了,于是那些人选择了 Emacs。不管你选择了Vim还是Emacs,你都要为习惯它们独特的操作方式而努力,这是一个技艺积累的过程。当你习惯了Vim或Emacs,你会有欲罢不能的感觉,你希望用它们完成尽可能多的任务,因为你再用别的编辑器也已经不习惯。用Vim或Emacs就像吸食毒品,慢慢地就会上瘾。它们会带给你渐渐强烈的 *** ,但你也向它们献出了自己的灵魂。这时,你只能称它们为神器。3. 黑客的编辑器Vim的前身Vi的作者Bill Joy和Emacs的作者Richard Stallman 都是那个时代著名的黑客,所以这两款编辑器一开始面向的主要用户就是写程序的人,现在仍然是。它们对编程加入了越来越多的支持,如语法高亮、智能缩进、关键字补全甚至集成调试。也有越来越多的程序员从IDE转向了Vim和Emacs。用Vim和Emacs编程到底有什么好处?我想首先是它们高效的编辑操作会提高你的编程效率。其次你可以用它们完成各种语言的编程,所谓一剑在手,夫复何求。你不用再因为编程语言不同去学习不同的IDE的使用,那些庞大的IDE的升级换代也与你再不相关,你把精力用于学习编程语言本身就好了。听说Google和微软内部开发也都不用IDE的,他们也会用Emacs或Vim。因为我写的程序不多,还不能深入体会用Vim或Emacs开发程序的乐趣。我只是觉得这很酷,你看,Linux之父Linus多年来用的是一款 MicroEmacs,它比GNU Emacs或XEmacs少许多功能,但Linus就是用它在维护Linux。 微软的大牛Don Box,Com之父,一直用Emacs,他说谁也不能夺走他的编辑器。他还在网上放了一段他用Emacs写C#程序的视频。编程大师们的选择,也是Emacs和Vim被追捧为神器的原因之一。4. 神器引发的圣战Vim用户和Emacs用户有着旗鼓相当的品位,应该互相欣赏才对。现实却是,忠诚于Vim的用户和忠诚于Emacs的用户互不相容,常常没完没了地打口水仗。Emacs用户说Vim的操作方式单一而古怪, Vim用户说Emacs体积庞大,启动缓慢。很有点一山不容二虎的意思,大概因为二者都处于神器的高度,才会斗争不断吧。也可能是因为二者截然不同的设计哲学吸引的用户在价值观上也互不认同。

为什么这么多人喜欢使用 Vim 或 Emacs

主要是因为它们确实好用,用惯了的当然也就不愿意换了。

而且这两个编辑器各有千秋,设计哲学也不同。通常会有一种能够吸引到你。

另外值得一提的是,关于纯编辑器和 IDE 的选择。

如果您只会一两门语言,自然会觉得装一两个 IDE 也不错。不过很多程序员由于各种原因需要使用数种,甚至十数种编程语言。如果都用 IDE 的话,就很不方便了。

参考:

为什么比起 Emacs,更多人使用 vim

1. 在默认情况下,Emacs 比 vim 更友好。

这是事实,但 elisp 并不比 vim language 友好。Emacs 上手就能好好的打字,而用 VIM 起码得知道 Normal 和 Insert 两个模式,否则字都打不了。但是,notepad 难道不是更加友好吗?我放弃了 notepad、notepad++ 、em editor 等等这些文本编辑器(当时 Sublime Text 还没有出名),来接触 Emacs 或者 VIM ,并不是因为之前那些编辑器都不够友好,而是他们不够高效——十分不够,所以才会硬起头皮来摸这两个让人困惑的「编程利器」。

但是,随着了解的深入,我发现 Emacs 比 VIM 更不友好,更准确的说法是 elisp 比 vim language 更不友好。可能 el 作为编程语言比 viml 优秀很多,可能 viml 作为编程语言来说很烂,但是对于一个不大懂编程的用户而言,viml 比 el 好懂太多了。

2. Emacs 拥有 org-mode 。

这是事实,org-mode 确实是纯文本编辑的利器,这也是让我多次想要放弃 VIM 转到 Emacs 的原因。但是无奈 Emacs 门槛太高。另一方面,我对 org-mode 的需求实际上只有两个:outline 和 带计算功能的 todo list ,这两个功能在 VIM 中有 VimOutliner 这个插件可以用,算是基本满足了。而且 VIM 还有 Voom 这个插件,可以实现非常棒的树状侧边栏,在 org-mode 中反而没有很方便的实现(之前经过搜索,听闻是可以用 mini buffer 来实现)。

3. Vim 开启大文件的性能很成问题。

VIM 通常被诟病的实际上并不是处理大文件不行,而是处理长行不行。一个百来 K 的文件,如果只有 1 行的,你用 VIM 来操作也会觉得想死。对于运维人员,幸运的是,在一般的文本处理过程中,不会碰到那么长的行,这并不是一个痛点。

4. Emacs 的配置语言 ELisp 比起 vimscript 要高一大截。

这是在第 1 点就说到的问题。对于一个没有编程背景的人来说,事情并不是这样的。vim language 实际上更友好,也更容易看懂。

对于文本编辑而言,实际上并没有什么很高级的编程需求。我们接触得最多的可能就是一些文本的查找替换。 vim language 的优势在于,它和 VIM 的操作是一致的,这降低了学习和使用的成本。

比如,在 VIM 中进行替换,就是

:%s/pattern/new string/g

同样的命令,直接复制到 vim script 中就能跑。如果你要写一个函数进行一系列的查找替换,实际上只有把全部的查找替换命令直接塞到 vim script 里面就可以了。

此外还有 normal 命令可以让用户直接编写键盘的操作。你想要什么操作,直接在脚本里面写就好了,这是十分直观和容易学习的,而 elisp 就难懂得多。

为什么不少程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻?

我接触VIM也已经5、6年了,已经习惯了VIM的存在和使用。但是我们应该抱着学习的心态去看待它。起初学习Linux和Vim, 这是说,纯粹的虚荣或逆反心理时期,在Linux和vim的时候一知半解,但总是对同学说,活力好,其他编辑都是 *** 。当然在IDE的时候还存在着崇拜,但偶尔听到神说,IDE会让人屏蔽很多细节,IDE什么都是你做的,你会变笨的。从那时起就有了IDE,功能非常强大,但更利于学习,学生当然学习,慢慢开始拒绝IDE…

后来,当我毕业时,我去了工作,因为我擅长的是这个,我没有考虑到任何其他方式。工作在嵌入式系统中编写,或在Linux服务器上编写服务,主要是C语言。IDE比以前少,在学习之前,对于基本的IDE函数,基本上可以使用+命令行实现。渐渐的我自己慢慢的和别人交换了,将改变Windows IDE的导出。垃圾、矿渣、IDE基本是象征的低端,当极端的认为自己用C语言C++,甚至是没有的,更不用说C # java或IDE的喜欢,所以进一步疏远了我的世界,并开始积极鄙视IDE行为。然后到了极限,到了什么程度,到了一台新电脑,总是把命令窗口更大化,或者干脆剪下文字终端,别人看了以后就投票选出了自己崇拜的眼睛,事实上,在命令行无比得意,没做什么…回想起来,太天真了。

几个月后,我的工作增加了很多,看到的代码也在增加。所以为了更好的追求效率,已经成为了一个无需的东西,因为很多项目都是用命令行编译的,大量的动态编辑标记,对于他们的工作更快捷方便,越来越好,随着精力的增强,逐渐地发现,真正使用起来很容易,也很容易使用。这次我真的可以说,我的工作效率真的提高了。当一件事改变了我的想法,一个爱的命令行,爱Vim的同事,但他的工作是java,当人们浏览源代码,只需要按Ctrl +鼠标就可以完成跳转到类的定义,但他也用grep,寻找关键词,打开Vim,然后修改。我开始变得不了解他的行为,开始改变自己的看法。适当的工具和适当的场景。最后,有趣的是,Vim的主人终于因为公司让他从事java,他最终选择了离开,去了一家知名公司作为一个路由器做底,听到的,我真的很高兴。

目前,我正在开发iOS,这相当于跳槽,直接去其他行业。此时,已经完成了它的任务,这是完全无关的两个。它可以通过Xcode可以完成的事情,从项目的创建,自动添加所需的库,自动错误代码,最后上传包签名。有些人会争辩说,这些在Mac OS X将能够使用命令行。我想说的是,该怎么办呢?命令行应用程序写入到您使用的前几行列表中?无论如何,我现在Xcode +斯玟姆插件,在编写程序的时候,或Vim的习惯,使用Xcode功能做其他事情的时候,这不是两全其美,效率也很高。现在我愿意参与VIM或IDE牛逼的牛逼的“圣战”,探讨如何应用或者游戏实现总榜单的前10我有一个兴趣点。

总结:

记得,如果一个人总是说Vim或Emacs IDE arescum牛逼不怪他,先看看他在做什么,如果他能用什么Linux kernel IDE,可以鄙视他;如果他促成了开放源代码的Linux贡献XX,XX码,牛人有牛的道理,妄想能改变世界;但如果他从事什么框架或java,如C #,Vim和Emacs不折腾自己,不如看看如何做自己的工具。事实上,这些都是工具,可以用工具来支撑自己,甚至帮助别人,世界能贡献的不是更重要的东西吗?当我年轻的时候,在外观上,与他们使用的工具,使用Vim Emacs来证明他的可怕的事情太正常了,因为他们还年轻,不是一些真实的东西来证明。

最后:

如果让我选择用Vim还是IDE来证明自己, 我当然是愿意用Vim. 因为Vim才是我喜欢的范, 但是如果别人用IDE来证明了自己, 我也同样会拍手叫好, 因为他们已经证明了, 用什么重要么?

为什么不少程序员极度推崇 Vim 和 Emacs,却对 IDE 嗤之以鼻

因为他们喜欢装逼,说实话,vim再强也是记事本的增强版,我只是用它来编辑一些小片段,项目还是用ide比较快速,况且ide也有ide模式啊,我们用的,不就是vim的快捷键吗?

  • 评论列表
  •  
    发布于 2023-01-05 02:44:13  回复
  • 也得益于它可以用Vim脚本无限地扩展。 Vim.org 上已经有数千个脚本了,给Vim增加各种各样的特性和功能。为了证明Vim的可扩展性不输于Emacs,也有用户写了在Vim中玩游戏、运行Shell、和集成GDB在Vim内部调试的插件。客观地讲,Vim的脚本语言与Emacs的ELisp相比,略显逊色
  •  
    发布于 2023-01-04 21:01:35  回复
  • 来,这句话并不夸张。Emacs其实是个Lisp的解释器,因此可以用Lisp灵活地扩展。 Lisp是什么东西,这同样是种很有生命力的编程语言。在C语言还没有发明的年代,MIT的人工智能实验室写ITS操作系统时,一部分用的是汇编语言,还有一部分就
  •  
    发布于 2023-01-05 04:26:27  回复
  • 什么Firefox能夺走越来越多的用户,也是因为它的可扩展性。提供了良好的扩展接口,用户自然会写出各种各样的插件,来满足用户自己形形色色的要求。这样,软件在用户的推动下自然变得强大了。Emacs和Vim没有被时代

发表评论: