最好的编辑器

# 编辑器之争

这个世界上有很多编辑器,从上大学以来,也使用过很多的编辑器,从看起来很朴素的Textpad++,到Atom,SublimeText,IAWriter,MWeb等等,到现在使用的主力编辑器Vscode,不同编辑器的使用体验不尽相同,也没有一直使用某一个编辑器,因为总觉得各有各的问题。 除此之外,还有神之编辑器Emacs和编辑器之神Vim。

我最先接触的是Vim,因为使用服务器之后,Vim似乎是大家默认的编辑器(可能因为Vi不是很好用)。在使用Vim的时候,只会简单的操作,毫无效率可言。中途其实也还听过Emacs的传言,但看了一眼使用方法后,总觉得还是没有Vim使用起来舒服,再加上“Emacs是披着编辑器的操作系统”的传说,就有些不太想学。

Vscode对于一个入门者来说,还是挺友好的,只靠鼠标点点点就能完成大部分的操作,再加上各种插件,让Vscode一度成为了我的主力编辑器(甚至现在也还是)。但Vscode使用下来,也会因为总需要把手切换到鼠标上,而觉得有些困扰,虽然可能这只是因为我没有好好掌握Vscode中的快捷键。

这个月偶然看到了Emacs社区的这个项目 (opens new window),觉得很好玩,再加上真的不想再来回切换鼠标和键盘,于是燃起来学习和使用Emacs的想法。

断断续续学了几天,有了一些基础的感觉,但还是有点难以完全使用Emacs,就像无法完全使用Vim那样。

# Emacs使用体验

Emacs使用起来还是有些不习惯的,最大的问题是之前可以在GUI上用鼠标点击进行的操作必须使用快捷键来操作,不太能顺利地使用。不过Emacs配合Evil也能继续使用Vim里的操作方式,还算是没有丢掉全部的东西,但目前来说,还是没有办法能快乐并且高效地使用它。Emacs里面也有很多包,我使用的主要是Doom Emacs里内置的一些插件,没有去探索更多的包,可能暂时还没有用到。

我也试着写了一段Python代码,感觉补全还是挺强的,在LSP的支持下,进行正常的编程是有保证的,但有一个很奇怪的问题,就是指针悬浮在一个模块上的时候,会弹出一个模块的介绍浮窗,很占地方,也很影响编辑...这个问题后来也没有完全解决掉。

同时呢,Spacemacs启动确实有点点慢,然后转到了Doom Emacs,感觉还不错,配置文件也挺清晰的。

# 我想要什么?

使用Vscode的时候,经常需要使用鼠标来切换文件或者进行跳转,总是会觉得有一些干扰到了编辑。所以我真正想要的是,不通过鼠标,只使用键盘来完成大多数的编辑任务。但有时也离不开Vscode里面比较便捷的功能,而使用Emacs的学习成本会高一些。因此现在使用一个Vscode的插件叫做Vspacecode来模拟部分Emacs的操作,也算是一定程度上可以减少鼠标的使用。

现在比较大的问题,是不太习惯使用Emacs来写代码,相比起来,还是更习惯使用Vscode一点,我不觉得想要使用Emacs,就一定要把所有的工作全部转移到Emacs上来。 使用Vscode来写代码,然后使用Emacs来完成其他工作,可能也比较合适。

# Emacs的自由

之前看很多人一直提到Emacs是自由的,我其实并不能很明白这是什么意思,但马上,我就从一个细节中体会到了这一点。

安装Vspacecode之后,发现不生效,于是想重装插件来试试,但遇到了循环依赖的问题,Vspacecode依赖which-key,which-key又依赖Vspacecode,导致哪个都无法完成卸载。巧的是,有人在几天前提了这个issue,然后甚至pr已经被merge了,可当前发布版本还是没有修复这个问题。 如果是Emcas的话,应该就不会存在这个问题了。