vim和emacs
在编程界一直有两大神器的传说。这两大神器一个是emacs,一个是vim。一个是神的编辑器,一个是编辑器之神。
程序员的圈子里面也一直流传着一个段子,说是世界上的程序员分为三种。使用vim的,使用emacs的,以及使用其他的。

为什么vim和emacs能得到如此推崇呢?

emacs

emacs的封神是因为其高度的可扩展性,你可以用vim打游戏,听歌,画画,上网,收发e-mail,代替tty,甚至控制你们家咖啡机煮咖啡。
emacs基于lisp语言解释器,其强大之处几乎混淆了操作系统和文本编辑器的界限,只要你打开emacs,你就可以呆在里面不用出来了,它可以完成你的几乎所有操作,而且只用键盘的主要部分。

vim

vim的封神是因为其定位到极致的设计哲学,vim是一个文本编辑器,它就是一个文本编辑器,当然它也可以扩展出很多的插件,但是基本都是第三方的,vim 官方从始至终的的设计理念就是让编辑高效,高效,高 效,更高效。

vim 的每一个设计都是为了能够把工作效率推到极致。 甚至于现在vim的编辑方式都已经成了一种哲学————vs-code、vs、atom、sublime、intellijidea。。。。。所有的主流ide,甚至圣战的另一方emacs,都提供了vim的输入模式。
因为vim的输入方式实在是太高效了,至少现在,还没有任何一个其他的输入方式能与vim方式媲美——曾经人们认为emacs的组合键方式可以,emacs的快捷键也确实比普通编辑器提高了很多效率,但是在单文件的极限效率上,却真的和vim差的不是一点半点。

我的个人态度

这两个编辑器各有所长,但是我个人是vim党派,一方面vim是我先接触的编辑器,我已将比较熟练,另一方面,我个人偏向于轻量高效纯粹极简,vim的设计哲学更得我心。

emacs什么都能干,但是也真的什么都不专业。 我不需要用文本编辑器来收邮件,我也不想用Emacs粗陋的浏览器功能来日常上网。 从根本上我不需要一个 all in one的环境。

我有gmail、chrome、以及vim。它们都很好用,专注于自己的功能,在自己的方面做到了极致。因此我不需要emacs。

总结

说了这么多不是说要求大家都像我一样使用vim啊。也不是说一定要求大家必须使用vim和emacs。

但是随着咱们之后在技术上在linux上越走越深越走越多,图形操作越来越少,指令操作和编程越来越多,脚本配置越来越多,不管你选哪个文本编辑器,必须至少得会一个,因为tty不支持鼠标,linux的很多配置也指定必须使用文本编辑器。

当然,nano、cat字符流也是很好的文本编辑器,对新人友好而且易上手。也可以列为备选的选项。不过我个人还是希望大家有能力学习vim或者emacs的话学习一下vim和emacs。

尤其是vim,作为一个已经有五六十年历史却没有被淘汰,而且随着更新换代得到越来越多人认可,甚至被称为输入哲学,被所有主流ide都采用的输入方式,必然是有其独到之处的。

既然学哪个文本编辑器都是从头学,那么不妨学个好一些的,虽然稍微费力点,但是收益也更大些,不是吗

最新文章

  1. java-byte[]图片在页面展示
  2. maven自动部署到远程tomcat教程
  3. xsd与xsl文件的区别
  4. JavaScript中给对象添加函数的方式
  5. postgreSQL数据库(索引、视图)
  6. django+nginx+uwsgi 部署配置
  7. POJ 2373 Yogurt factory
  8. SignalR在ASP.NET MVC中的应用
  9. Unity3D寻路导航烘焙
  10. lvs+keepalive构建高可用集群
  11. 【POJ1151】Atlantis(线段树,扫描线)
  12. ML笔记:Deep Learning
  13. 用git工作的流程
  14. IndentityServer4
  15. 为什么选择Go语言 GO语言都能做什么产品
  16. 分布式事务XA
  17. ZABBIX 3.4 监控服务器TCP连接状态(六)
  18. Struts 2应用程序安全功能的配置详解
  19. (2.1)DDL增强功能-数据类型、同义词、分区表
  20. 【转】python 字符编码与解码——unicode、str和中文:UnicodeDecodeError: 'ascii' codec can't decode

热门文章

  1. 登录sql sever
  2. HDU4195 Regular Convex Polygon (正多边形、外接圆)
  3. 题解【[AHOI2013]作业】
  4. 数据结构与算法的实现(c++)之第一天
  5. TCP协议三次握手(通信)
  6. SpringBoot嵌入式Servlet配置原理
  7. [Redis-CentOS7]Redis字符串操作(二)
  8. ASP.NET Core MVC学习笔记
  9. ASPNetCore 发布到IIS
  10. JS中this的几种情况