你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

作者谈尝试多种编辑器的经历及对强大编辑器要素的看法

发布时间:2025-06-08

浏览次数:0

作者 | 

译者 | 王强

策划 | 万佳

该文最初在 .net 网站上发布,随后在原作者的授权下,InfoQ 中文站进行了翻译并进行了分享。

近期,我不断试验了多种编辑工具,投入了相当多的精力去进行设置与运用。其中包括:

本文主要阐述我对这些编辑器以及该领域当前状况的个人观点(如有不同意见,请勿指责)。我长期使用 vim,尤其是它,已有超过十年的历史。接下来,我将详细介绍我目前的工作流程,以及我认为编辑器应重视的几个方面。当然,这篇文章仅代表我个人的看法,并不代表其他人的观点。

1 一款强大的编辑器应该具备哪些要素

键盘布局

身为法国公民,我所使用的键盘布局能高效地录入法语并支持编程任务。尽管如此,我以英语输入的频率更高。或许,我应该考虑更换一种键盘布局。然而,目前所用的布局给我带来了良好的体验,因此我选择继续使用。

这种键盘布局被称为 bépo。我需要运用所有手指进行打字,且键盘上的每个按键都对应一个特定的手指。这样做能够增强肌肉的记忆力,同时也能有效缓解手腕的疼痛(因为打字时我的手腕几乎不移动)。此外,打字既准确又舒适,还能带来一个额外的好处,那就是打字速度会变得很快(我的打字速度可以达到每分钟120到130个单词)。

然而,在我看来,编程过程中,速度并非关键所在,因此最关键的是操作的舒适度——不论输入速度快慢,手腕都能保持不动。

模态编辑器

模态编辑器之所以这么好用是有很多原因的。

我极其反感被要求用鼠标处理那些完全可以键盘操作的繁琐任务。比如,在我个人的电脑上,运行应用软件只需按下alt键加字母d,程序名称便会自动填充(由自动完成功能实现),随后只需回车即可。整个过程完全依赖于键盘操作。这种方法适用于诸如Word、Excel等众多软件。而对于终端应用,我只需在终端输入相关指令,系统便会自动完成匹配。

简而言之,我觉得在编辑器里用鼠标操控光标周围实在很繁琐,尤其考虑到我们大多数时候都在敲击键盘编写代码,这就意味着需要频繁地在键盘与鼠标之间进行切换。或许你并不介意,甚至觉得这挺酷,但对我来说,这确实是一种相当糟糕的体验。

此外,大多数非模态型编辑器惯用方向键来调整光标位置,然而这些方向键要么位于键盘的边缘,要么并非独立按键,需通过组合按键来实现功能。

这是模态编辑器的一大优势。它们能够更加智能地运用键盘,轻松实现诸如移动等基础且频繁使用的操作。

第二个优点在于它们配备了非模态编辑器的功能(即常规模式),用户将拥有一套完整的键盘以及众多按键,这些按键可以绑定到许多常用的鼠标操作。您可以将编辑器划分为数个缓冲区,实现在缓冲区间的切换、快速定位至段落起始位置、执行搜索与替换操作,以及将一系列动作设置为宏并重复执行等多种功能。

这些操作甚至无需移动手腕。若你习惯于使用鼠标,那么在此过程中的学习难度将会较大,然而,一旦你成功跨越心理障碍,我猜想你若再回到鼠标操作,可能会感到极不适应。

我喜欢四处移动

程序员在编程时有几种风格:

大多数程序员都遵循这几种编程风格中的某一种,然而,我却是与众不同的那一个。我偏爱使用h、j、k、l这四个键,以及vim编辑器中所述的第三组操作(我使用的操作远不止这些),而且我选择这些操作会根据我移动的距离来定。若我的光标停留在某个单词上方,且我打算移动至同一行内与之位置相近的另一单词的首字母处,那么若二者之间相隔三个单词,我便只需输入“www”或“3w”。若二者间的距离更远,我则会选用一个特定的快捷指令。

的工具。

这确实是一款出色的工具。它提供了多种操作模式,这些模式会根据你所要进行的移动操作而有所不同:

我习惯的做法是将三种模式映射到l、w>和c上。

在我的当前缓冲区中键入SPC l会发生:

neovim编辑器使用技巧 _ vim键盘布局优化 _intellij idea 输入法

输入任何被加粗的字符会导致我的光标瞬间定位到该字符,同样,对于单词亦是如此。执行此操作的指令是空格加字母w。

neovim编辑器使用技巧 _ vim键盘布局优化 _intellij idea 输入法

在字符模式下,当我输入SPC c指令后,我需要再输入一个字符来指定目标(即我想要跳转到的字符)。例如,若我打算跳转至井号符号#(该符号并非单词的组成部分),那么我的输入顺序应为:SPC c #。

 vim键盘布局优化 _neovim编辑器使用技巧 _intellij idea 输入法

这种移动方式初看上去并不直观,但一旦习惯就离不开它了。

2 其他模态技巧

针对模态编辑,我期望编辑器能够具备以下功能清单,当然,这些功能远不止如此:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

总之,编辑代码时我们需要模态功能。

3 编辑器

接下来,我将详细阐述之前所提及的编辑器。我将对它们提出个人的见解,并依据我的编程习惯,对它们的优劣之处进行逐一评析。

4

我当前采用的是该软件的TUI版本,因为至今为止,它为我提供了最为稳定、迅速以及简便的使用感受。尽管我曾尝试过众多图形用户界面版本,却始终未能发现令自己满意的产品——其主要问题在于,这些版本几乎无一例外地采用了Web™技术,而这对我来说是无法接受的。我需要进一步阐述这一点的原因。

为什么不使用 Web 技术:

我的 设置

在此,我要向大家介绍几款插件。我觉得有必要让大家认识到这一点,那就是不要将vim/视为已经过时的编辑器。实际情况并非如此。

的优点

的缺点

5

关于这个编辑器,我仅能简要地讨论一番,毕竟我刚刚开始在职业环境中使用其社区版。目前我正使用的是它的初始版本,并未对其进行任何改动。我的主要用途是利用它来处理 Java 代码。

的优点

它的Java兼容性堪称完美至极。它能协助你完成诸多任务,其中若干项更是给我留下了难以忘怀的深刻印象:

的缺点

6 VS Code

这款编辑器极其关键,它是微软推出的编辑器产品。众多用户对 VS Code 情有独钟,我的感受亦然。其用户界面既流畅又高效——毕竟它是一款基于网络的编辑器。LSP 的支持显得既专业又完善。它拥有丰富的社区插件、主题以及集成功能。尽管它是基于网络的,但总体而言,我对其一直保持着喜爱之情。

VS Code 的优点

VS Code 的缺点

7 emacs 和 DOOM emacs

我近期频繁使用的是 emacs(原始版本),这主要是因为我观察到一位同事在操作 DOOM emacs,于是我也开始尝试使用。将这两款编辑器并排放置进行介绍,是因为它们在功能上有着极高的相似度。在我的看法中,emacs 与 DOOM emacs 之间的联系可以用一个词汇来总结,那就是“紧密协作”。虽然我不清楚他们是如何实现这一点的intellij idea 输入法,但可以肯定的是,所有插件之间都实现了良好的整合。我用 ivy 界面实现了自动补全和模糊查找功能,效果相当出色。用户界面设计得非常美观,主题选择出色(我偏爱默认的深色主题 DOOM One),而且编辑器的运行速度相当迅速——虽然偶尔会有点慢,特别是在滚动操作时,但相较于基于 Web 的编辑器,速度还是要快上许多。

emacs/DOOM emacs 的优点

emacs/DOOM emacs 的缺点

8 atom

最后让我们来聊聊编辑器Atom。我清楚记得,当我第一次启动Atom时,心中不禁赞叹:“这款编辑器外观真是太吸引人了。”它内置的默认配色方案One,是大家所熟知的通用配色方案,在众多编辑器中都能找到其分支版本。

atom在我眼中与VS Code颇为相似,不过它的用户界面更为吸引人——相较于VS Code,我更偏爱atom的界面设计。其界面设计既流畅又整洁。无论是LSP的集成、预览功能,还是Vim模式,atom都提供了丰富的扩展、插件和主题选择。

atom 的优点

atom 的缺点

9 总结

当我着手编程之际,我仍记得曾听闻过关于集成开发环境与文本编辑器之间的争论。然而,随着我亲自尝试了众多编辑器,我逐渐意识到,实际上并不存在所谓的编辑器之争。每种编辑器都有其不足之处,而挑选一个合适的编辑器,往往更多地依赖于个人的使用习惯和过往经验。我对键盘情有独钟(我亲手打造键盘),并且对打字这项活动充满热爱——不仅仅是编写代码。因此,在那时,选择 emacs 或 vim 显得尤为合适(我最初正是从 emacs 开始我的编码之旅)。然而,几年时光流转,我转而开始使用 vim。而就在去年,我重新拾起 emacs,想探究它在这段时间里发生了哪些变化。令人惊喜的是,我发现它竟然增添了这么多令人兴奋的新功能!

我对测试编辑器情有独钟,其原因是每个编辑器都至少具备一项独一无二的杀手级功能,这项功能是其他同行所不具备的。

经过数周在这些编辑器上的实践,我对 vim/ 的看法有所改变:我认为并非必须使用它们,尤其是当我开始使用 emacs/DOOM emacs 的 Evil 模式后。在我看来,一个出色的客户端或许可以类比于emacs这类基于gtk的应用:它运行流畅,界面统一,预设配置得当,并且对各项功能提供了全面的支持。此外,它还兼容gtk的浮动窗口和弹出窗口功能(毕竟这是其原生特性,在TUI环境下操作略显繁琐)。我们已拥有众多优秀的插件,例如适用于git(/vim-)、自动补全以及语法高亮显示(coc.nvim/vim-lsp/vim-)。唯独缺少的是一个功能卓越的图形用户界面,该界面能够运用我们在文本用户界面(TUI)中需要采用的“技巧”来呈现弹出窗口、“气泡”等功能。若能拥有一个便捷的GUI,我相信这将成为我最钟爱的编辑器。

在那之前,我始终如一地选用TUI,因为其功能与我追求的目标高度契合。我衷心期望这篇文章能为vim爱好者们提供一定的借鉴,助他们全面认识现代编辑器的特性。在此,我提及的是vim爱好者群体,但并非涵盖所有用户。

我们寻找的目标各不相同intellij idea 输入法,然而在这个美妙的世界中,丰富的编辑器选项正是解决问题的关键所在。

它们并不适合每个人,但每个人都有自己的最佳选项。

原文链接:

https://.net/blog/-in-2020

InfoQ读者交流群正式开通!欢迎扫描下方二维码,加入我们的InfoQ小助手,通过回复“进群”来申请加入交流群。如需获取资料包,请回复“资料”,注册InfoQ网站后,您将有机会免费领取一门极客时间课程。读者们可以在此与 InfoQ 的读者群体畅谈无阻,与编辑团队近距离互动,丰富的技术礼品正待您来领取,更有精彩活动邀您共襄盛举,赶快加入我们的行列吧!

如有侵权请联系删除!

13262879759

微信二维码