我为什么选择Vim

  总看到一些飞快敲击键盘而不用鼠标的时候你可以很羡慕和佩服,其实这完全没有必要。就像一个吉他手熟练地弹吉他有必要羡慕吗?一个瓦匠熟练地砌砖有必要羡慕吗?这些都是他们赖以生存的工具而已,熟练地运用工具是理所当然的事情。而一个程序员,一个文本编辑者,你如果没有熟练运用你的编辑工具,其实还是挺不应该的,而工具又有优劣之分,选对工具很重要。编辑器有Sublime、Notepad++、EditPlus、Visual Studio Code,以及号称21世纪编辑器的Atom,这些编辑器都很好用,用户基础都很多,而且可以满足日常几乎所有的需求,而vim相对他们一个很突出的特点就是难用,下面Michael Mrozek画的一副比较“写实”的各个编辑器学习曲线图:

作为“编辑器之神”的vim,想驾驭它可不是简单的事情,需要不断地学习然后放弃、再学习、再放弃,说的好像很恐怖,其实我我相信你看这篇文章的时候可能已经放弃了不止一次了吧:D 所以从现在开始你将真正走入vim的神殿,接近并驾驭它。众多的编辑器之中,作为“神之编辑器”——emacs是vim的最强竞争者。两个都很难学,我为啥学vim而不是emacs呢?由于我从vim入门,那时没有听说emacs,也无法体会她真正的魅力,那时的网上也没有这么激烈的争论吧。也许,我从emacs开始,可能就是是emacser了吧。不对,我想,以我的性格,最终的结果甚至都是偏向于vim这一方的,两者最大的不同是理念不一样。理念就是一个骑自行车爱好者,听到自行车的优点就会两眼放光,说到汽车的优点就敷衍了事,凡事皆如此。而网上的负面评论都是不熟悉vim或emacs的用户胡乱评论的,总存在以偏概全,胡搅蛮缠,甚至有点胡说八道了,我每条都可以驳斥,但是没有那么多时间,但是这些小丑觉得无人反驳,就觉得自己说的很对。比如有些人拿一方的优点来贬低另一方的“缺点”:

个人觉得Emacs的按键也比vim的按键设置的合理,虽然vim的按键非常短,但是都是特别难按。比如回到行尾的$,回到第一个非空白字符的^,还有删除一个单词dw,试想阿,你如果想删除一系列单词怎么办?难道先要数数要删除多少个单词?然后用dNw?太慢了。要么就dw,dw,dw,。。。,按N次,这样就需要按2N次键,但是在Emacs下删除一个单词是M-d,你只需要按着Alt键一直不放,然后不停的按d就可以了,仅需要按N+1次键,方便之极。

这是很明显的不懂vim,vim中可以各种删除方式,如果照上边说的,如果要删除一篇10万字的文章,难道按着M-d,要按着Alt不放,按100000次的d,我觉得最好的机械键盘的按键也报废了,这也太贵了。用vim直接用gg ddG就可以,你的机械键盘还是全新的呢。难道就着一个就全面否决emacs吗,肯定不能,作为vim最强大的对手,把emacs贬低的越利害,其实也在贬低vim啊。其实,主要是emacs的理念是可以用它来干任何事情,而vim则希望用户只用vim来高效编辑器。emacs的重度用户陷在其中无法自吧,vim却是不改初衷,高效编辑着,从理念上来看,emacs似乎是不务正业,vim的理念才更符合unix的哲学,一个工具只做一件事情,并且做到极致。我选择了vim,成了vimer。两者的战争已经打了几十年,并将一直持续下去,其实打口水战没必要,两个都是神,所以两个存在肯定都是有道理的,更何况emacs其实有个evil模式,可以让你在emacs上使用vim的快捷操作,从侧面说明vim的编辑方式还是得到了对手的认可的,两者终于找到了和谐共处的方法,如果你哪天真的要叛逃emacs,那你将拥有神之编辑器之神。下面我着重给出点成为vimer的理由,毕竟我们大多数小老百姓并不需要去利用编辑器发邮件发twitter什么的。

1. 编辑文本效率高

  编辑器的作用是处理文本,文本的操作主要有输入、光标移动、删除、以及复制粘贴等,vim对每种操作都有很多种的操作方式,可以很慢可以很快。比如光标的移动,vim可以以单个字符移动,可以以一个单词移动,可以以一篇文章移动,可以以不可思议的方式移动,几乎能跟上你的思维移动,目前为止,没有看到哪个编辑器这么利害。vim比一般的编辑器快上许多,用编辑器打开一个10M的代码,再来说vim慢的我才服气你。我分析android源码时,有近20G的源代码,vim+ctags建立好索引后,代码跳转几乎没有延迟。没听说哪个IDE能做到的。vim的所有功能都是围绕这文本编辑,所以vim的复制粘贴功能也强大到令人发指,相信我,学好vim将显著提升你编码的效率。

2.完美跨平台,跨各种IDE

  如果你想把vim打造成c/c++/python甚至java的IDE,完全没有问题,再怎么配置也不可能超越IDE吧。不要忘了,vim只是编辑器,如果能够用Android Studio或者Pycharm的快捷键配合上vim作编辑不是更好?事实证明这是可行的,很多ide都提供对vim的编辑支持,而且几乎所有的编辑器或者IDE都有vim插件,还是很不错的,只是我觉得不太习惯,不用在linux上没有你心爱的notepad++,也不用担心从android转行ios在编辑方式上的巨大改变了,学会了vim,在不同平台上,不同编辑器或者IDE里面,一个vim走天下。vim是一个跨平台的编辑器。

3.远程无图形编辑

  linux系统大部分都内置了vi编辑器,一个不到120k的编辑器,速度不错,功能就够用了。作为vi的拓展vim,每个linuxer都应该学学,我想只要搞开发应该是逃不过远程访问一些日志或者修改一些配置参数什么的,无法图形操作,此时正是vim的技能就派上用场的时候,如果只知道i和:wq就ok了,那也是没有问题,毕竟很多人开始都是这么干的,包括我也是,当你学会各种方式流利移动光标之后就想要好好学习vim了。

4.扩展性强,可订制性强

  vim虽然已经很强大,对个人的特殊的需求不能尽善尽美,可以通过自学vimscript来自己写脚本,实现私人订制。不学vimscript的话,学python也行,但是基本的vimscript还是要掌握的。更懒的可以去baidu或者github,也许你需要的功能需求没准别人已经写好了插件,直接拿来用就行了。我自学了vimscript,学的不好,感觉vim不顺手就自己写个小脚本来实现。下面就是我的实现的,新建不同的程序文件,自动添加文件信息。

5.启动特别快

  就像武侠小说说的,天下武功唯快不破。编辑器快是必须条件,又快又能跨平台,有可以自己定制,又符合unux哲学的,似乎只剩下vim了。无论是用来打开修改一些配置文件以及编辑文本很高效的。还是编辑C代码,还是python代码,还是shell脚本,vim足够了。如果你需要一个用了十年和第一年一样的编辑器,notepad觉得是你该选的,如果你需要一个用了十年有了巨大变化的编辑器,选择vim吧,十年后的你再用vim一定是非常顺溜,vim也在你的生命中留下一个痕迹了。还在等什么呢,深入了解一下vim,也许你发现以前的码字还有很大的改善空间,希望一起学习,把vimmer的精神发扬光大,让vim成为你最后的编辑器。

原文地址:https://www.cnblogs.com/guochaoxxl/p/11879999.html

时间: 2024-10-17 13:28:12

我为什么选择Vim的相关文章

安装使用sdcv并改良在sdcv在vim下的使用体验

注:改良vim体验的直接看最后一章 一.什么是sdcv 终端词典sdcv,顾名思义,是在终端下使用的词典工具. 我对它所说的终端的理解是:任意可以使用它的地方,可以是Shell本身,也可以是某个软件内部. 二.为什么选择它 1.作为工具,他并不绑定字典,便于更换和多字典同时查询. 2.并不依赖GUI,通用性强.稳定性强. 3.配合各种可以调用Shell命令的软件,使用方便. 三.sdcv安装 利用安装命令安装sdcv即可,大多软件库都有 例子如下: CentOS, RHEL, Fedora (n

为什么选择 Visual Studio Code

为什么选择 Visual Studio Code 你在 VS Code 中找到的每个功能都完成一项出色的工作,构建了一些简单的功能集,包括语法高亮.智能补全.集成 git 和编辑器内置调试工具等,将使你开发更高效. 所有你所找到的 包(packages) 都是用 JavaScript 构建的,因此任何人都可以轻松地编写自己的扩展包.您可以在这里找到有关扩展的文档: https://code.visualstudio.com/docs/extensions/overview 功能 Features

vim选中字符复制/剪切/粘贴

问题描述: vim 中选中指定字符,进行复制/剪切/粘贴 问题解决: 进入vim中visual模式,visual模式进入,可以有三种方式: (1)在普通模式(normal)下,直接按键 v  就可以进入默认visual模式,可以使用v+j/k/h/l 进行文本选择 注: 使用normal模式下的  v命令,进入visual模式,v+ j/k/h/l   进行文本选中 对于选中的文本进行如下按键: (1.1)d   ------ 剪切操作 (1.2)y   -------复制操作 (1.3)p  

vim复制,粘贴,剪切文本

vim编辑器 引用文本: ------------------------------------------------------------------------------------------------------------------ 时常自我反省,敏感的思想家 你对于自己及四周的环境能够比一般人控制得更好更彻底. 你讨厌表面化及肤浅的东西:你宁愿独自一人也不愿跟别人闲谈,但你跟朋友的关系却非常 深入,这令你的心境保持和谐安逸. 你不介意长时间独自一人,而且绝少会觉得沉闷.

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践

5.5 进入编辑模式 5.6 vim命令模式 5.7 vim实践 扩展 vim的特殊用法 http://www.apelearn.com/bbs/thread-9334-1-1.html vim常用快捷键总结 http://www.apelearn.com/bbs/thread-407-1-1.html vim快速删除一段字符 http://www.apelearn.com/bbs/thread-842-1-1.html vim乱码 http://www.apelearn.com/bbs/thr

Vim快捷键

Vim快捷键 普通模式 [行间跳转] gg 游标移动到到第一行 G 游标移动到最后一行 nG 游标移动到第 n 行 Ctrl + o 快速回到上一次(跳转前)光标所在位置 Shift+zz 普通模式下输入即可保存退出vim [行内跳转] w 到下一个单词的开头 e 到下一个单词的结尾 b 到前一个单词的开头 ge 到前一个单词的结尾 0 或 ^ 光标跳转到行头 $ 光标跳转到行尾 f 字母 向后搜索<字母>并跳转到第一个匹配的位置 F字母 向前搜索<字母>并跳转到第一个匹配的位置

linux基本命令整理(三):进程和vim

linux基本命令整理(三) -----------进程和vim 一.进程 1.查看进程 ps:将某个时间点的程序运行的状况截取下来 a:所有的进程 x:后台进程 u:有效的使用者相关的进程(常用组合aux) -IA:也能观察系统所有的数据 axjf:连同部分的程序树状态 -I:今查看和自己bash相关的程序 top:动态的观察进程的变化 -d:后面接描述,就是整个页面刷新的时间:默认是5秒 -b:以批次的方式执行top -n:与-b搭配使用,意义是需要进行几次top的输出结果 如:top -b

secure CRT设置vim显示颜色

第一步:确定是否安装vim-enhanced.基本上都是会安装好的. 第二步:将Emulation下的Terminal设置为Xterm,然后选中后面的两个复选框. 第三步:将外观下的主题设置为Traditional,字体设置为如下. 第四步:如下进行断开连接. 第五步:如下进行再次连接,登陆即可. 接下来,用vim随便打开一个文件. 如上所示,至此.设置成功.

8. vim编辑器高级应用

1. vim主要模式介绍 命令模式.命令行模式.编辑模式 字符操作:i 当前插入, I行首插入, a当前字符之后插入,A行首插入, ESC退出当前模式 2. vim命令模式 3. vim插入模式 4. vim可视化模式 5. vim开发环境 6. gedit a.exe &