Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >对 Mastering Emacs作者 Mickey Petersen 的采访

对 Mastering Emacs作者 Mickey Petersen 的采访

作者头像
飞驰的西瓜
发布于 2022-12-14 10:31:35
发布于 2022-12-14 10:31:35
8560
举报
文章被收录于专栏:EmacsTalkEmacsTalk

本文是对Mastering Emacs作者 Mickey Petersen 的采访

你是谁,你做什么?

我是米奇·彼得森。我住在英国伦敦。

我是一名专业的软件开发人员,从大约 10 岁开始就开始编程。我没有朋友或家人对计算有很多了解,所以我必须自己学习一切,从头开始。

您最初是如何对此感兴趣的?

我在 DOS 的 Turbo C 中开始使用 C 编程,几年后转向 Windows 的 Delphi,同时试图掌握这个叫做 Linux 的相当新奇的东西。那时候你必须经历各种困难才能得到它:我想我是从一张家庭成员的朋友的 CD 上得到的。对于我微薄的 33.6k 拨号调制解调器连接来说,它太大了,甚至无法尝试从 Web 下载它。

这是一个 Red Hat 发行版,我清楚地记得花了很长时间打印手册——否则我什至无法*安装* Linux,因为我对它一无所知——然后花了很长时间弄清楚如何安装和用它。FVWM95 是窗口管理器,看起来像 Windows 95,它是“运行 Linux”和使用当时在 DOS 或 Windows 上永远无法使用的工具的绝佳体验。那时 Linux 是“酷”的东西,而 Windows 和 DOS……没那么酷!

我试过在 Linux 上用 C 编程,我记得试过

Emacs那时。它有这种时髦的绿色配色方案;很确定这是当时 Red Hat X Resources 的东西。但我可能是错的。尽管如此,我对 Emacs 的迷恋并没有持续多久。当时它只是我试验过的一系列编辑器中的另一个工具。我可能选择了 Red Hat 附带的图形化界面,因为它默认启用了区域选择和语法突出显示等功能。Emacs 当然可以*做*两者,但当时默认情况下并未启用它们。

在此过程中,我尝试了各种包、窗口管理器等。他们花了很长时间来编译,但那时候——作为一个孩子/青少年——你有很多时间,所以这并不重要。但它为我对 Linux 等方面的兴趣奠定了基础。

许多年后,在我上大学期间,我会选择 Emacs。那一次卡住了。我是我所在大学计算机科学协会的成员,在该协会中享有盛誉和影响力的杜威十进制论坛热衷于让所有人都知道 Real Hackers Used

Vim 。不是 Emacs;不是 ed(1)、kate 或任何其他编辑;只是维姆。我从来没有买过群体思维——当然也没有从比我年长的人那里买过——所以我选择了 Emacs,因为我至少在很多年前就用过它。

当时我真的不知道 Emacs 能做什么,不能做什么。我主要使用箭头键、一些键绑定和菜单栏进行导航。我选择了 XEmacs,因为它在 20 世纪初通常领先于 GNU Emacs。由于我在大学的课程涉及永无止境的 LaTeX 和各种常见和晦涩的编程语言,因此 Emacs 是一个不错的选择。它具有几乎所有你能想到的语言的语法高亮显示,虽然我不知道一些更明显的功能(comint、shell 等),但我至少拥有一个能够在所有主要平台上运行的工具,并且具有一致的经验。

不过,XEmacs 也有它的缺点。它落后了,并且有自己的做事方式,与 GNU Emacs 不完全兼容。当我认为 Emacs 22 出来时,我最终转向了 GNU Emacs。

那时我使用 Emacs 期间的某个时刻,我的脑海里闪过一个灯泡——我现在知道,多年来我一直在编写和教人们 Emacs,这是经常发生的事情——我终于对 Emacs 有了足够的了解,以至于不再感到迷失。我可以查找命令和键;安装和编辑代码;甚至写一些 elisp!

我已经开始尝试使用

Org 模式,所以我创建了一个名为blogideas.org(当时博客风靡一时!)的文件来记录我所知道的所有事情,我希望其他人也这样做。那会变成精通 Emacs 。

自大学毕业以来,我一直是一名专业开发人员。我为世界各地的客户构建定制软件 — 当然,我将 Emacs 作为我可信赖的编辑器!

您会向对您的工作感兴趣的人推荐哪些资源?

为了编程?天哪,太多了。在过去,学习编程实际上非常困难,因为您需要书籍、网络/互联网,或者认识一些对此有所了解的人。_今天,开始变得非常容易 - 尽管我认为坚持_下去和变得精通同样困难!

我通过Mastering Emacs找到了您的作品,这是一个了不起的网站和书籍(当然是用 Emacs 编写的),它帮助我设计了我的 Emacs 工作流程(更像是作为一名作家而不是一名开发人员)。Emacs 可能会让初次使用的用户望而生畏。他们为什么要选择它而不是其他文本编辑器?

谢谢!我很高兴你两个都喜欢。这正是我创建该网站的原因。

好吧,您是一位使用 Emacs 的作家,我认为这很有趣。

我坚信,相当一部分精通 Emacs 的读者_并不_专业的“技术人员”(无论是系统管理员、开发人员、测试人员等),但要么与技术相关,要么在期望他们在其领域具有一定技术熟练程度的领域工作——这里有一点 Fortran 或 Python,一小撮那里有 LaTeX——并且主要将 Emacs 用作连接他们工作的不同领域的工具,其他非 Emacs 用户无法轻易模仿。编辑代码很容易;有无数的编辑器,当然包括 Emacs,可以做到这一点。但是没有很多工具可以跟踪参考书目、您的议程、电子邮件、笔记和写作。但 Emacs 可以轻松完成所有这些,甚至更多。

一些 Emacs 用户学习它是因为这是一种“税”,他们必须支付才能在某些学术界或商业环境中工作,在这些环境中,它是唯一可用或广泛使用的。当我们的讲师挥手回答诸如“我们应该用什么来编辑 Prolog?”之类的问题时,我在大学的同龄人发现了这一点。与“Emacs”。

所以我认为,如果人们想要更好的控制——或自由(在 FOSS 意义上)——按照自己的喜好塑造环境和工具,那么他们应该学习 Emacs。不是每个人都这样做;如果您不喜欢修补和调整,那么 Emacs 就更难销售。但是对于我们这些不得不使用某个应用程序却发现它的键盘快捷键妨碍(或完全缺失)的人来说;或者您使用的那个键在某些模态对话中不起作用;或者当您必须在众多工具之间执行多项任务时的挫败感——我们在 Emacs 中找到了安慰,因为我们被赋予了一种能够适应我们需求的工具。Emacs 是一个坩埚。

对于老用户还是新手,Emacs 可以改进哪些方面?

嗯,这是个好问题。

Emacs 是为已经了解 Emacs 的人编写和设计的。如果您不了解 Emacs,那就不太好了;但它肯定是如果你这样做。Emacs 选择用非常高的技能上限(异常强大的键绑定、可编程性等)替换低技能上限(以及贫乏的键绑定和功能),因为如果你坚持不懈,那么你最终会学到足够多的知识,从而从编辑器中受益这不会妨碍其用户。

但这个比喻适用于一系列事物:无论您购买多少书籍、视频或电动工具,您都不会在一夜之间成为橱柜制造大师。这需要技巧和实践。只是我们将“文本编辑器”与……记事本相关联。Emacs 远不止于此。

Emacs 已经比以前友好多了。更好的默认值;Emacs 附带的更明智的内含物。Emacs 29 添加了 tree-sitter 和 Eglot,这两个对编码人员来说非常重要的工具,对于那些热衷于尝试 Emacs 而无需花一个周末学习如何设置它的人来说,这应该会进一步减少摩擦。

对于新手来说最难的事情——我说这是作为一个不认为自己作为新手这样做的人——是阅读手册。它就_在_初始屏幕上,或者位于帮助菜单中的方便位置。但是太多“专家”建议您隐藏启动画面,并关闭工具和菜单栏。当我还是新人的时候,我也成了那个建议的受害者。这是个糟糕的建议。为什么要隐藏有助于您学习和探索的东西?

许多人建议更改键绑定或 Emacs 的独特词汇表,但我认为这是装点门面,它不会改变学习曲线,如果有的话。

所以我的建议是:修改教程 ( C-h t),使其更具交互性、更美观、更详细。它应该巧妙地延伸到 Emacs 的其他重要部分。用户范围广泛:散文作家;记笔记的人;编码员;命令行黑客;等等。Emacs 不仅具有这种交互性,而且本教程没有使用它。Emacs 对新手的建议应该更坚定一些。

有哪些特定于 Emacs 的工作流程可以帮助您完成工作(包、默认设置的更改等)?

对我来说,这是在需要时编写 Emacs 的能力。我不得不为电子邮件服务器编写一些电子邮件过滤器——众所周知的筛子。这很乏味,因为我必须测试它们是否有效;他们会影响哪些电子邮件(以免我搞砸并洗劫我的电子邮件);然后针对特定的电子邮件,以确保过滤器对该特定电子邮件正常工作。

为此,我编写了几行代码将 Emacs 的各个部分粘合在一起。我按下一个按钮,Emacs 使用 TRAMP 连接到远程服务器并调用它需要调用的程序,然后将结果显示在 Emacs 缓冲区中。

所以这是最重要的一个:适应不断变化的需求。

我主要使用普通的 Emacs 键绑定,并进行了一些更改以使某些事情更容易接受。M-o而不是C-x o; C-x C-k杀死当前缓冲区;F1 打开Mx外壳;和其他一些小事。

对于与生产力相关的东西,我经常使用 Helm 来完成特定任务。我可以使用 Helm 致电 Mastering Emacs 客户并找到他们的销售详细信息。非常适合人们忘记电子邮件或需要更改某些内容的情况。这是一个很棒的完成框架。我还将 IDO 用于文件和缓冲区,将 Selectrum 用于通用完成。

除了 Emacs,您还使用什么工具和装备(硬件、软件或想到的任何其他东西)?

我使用ZSA Moonlander Mark 1 。这是那些花哨的“机械”键盘之一。这很好。它是可编程和可扩展的,比普通键盘更舒适。我使用 MS Ergonomic 键盘大约 20 年,实际上我会在大约 2 年内将其磨损。

我偶尔会玩一些电脑游戏。所以我倾向于每隔几年超买,这样我就不必在意接下来几年的升级。所以我的主要工作站是一个超高规格的台式机(也兼作空间加热器),带有 39" 超宽显示器。我喜欢的显示器。我曾经使用过双显示器,但是......嗯。这更好. 一个巨大的 Emacs 框架,我可以轻松地将其拆分为多个窗口。

除了工具,还有哪些习惯和惯例可以帮助您完成工作?

我很少完成我的工作。除非有人付钱给我,否则!

我是一个习惯性的项目启动者,少数项目的完成者。半生不熟,半发明是我通常如何称呼我所做的事情。我倾向于构建一些东西,直到我满意我已经满足了我所有愚蠢的求知欲,然后我像石头一样扔掉它,因为它很少完美到足以让我释放。

我的项目文件夹中充满了这些东西。

你如何放松或休息一下?

我设定自己的工作时间,因为我通常按照自己的方式工作。对于客户来说,我的工作是就需要做的事情的范围达成一致,然后我继续做下去。但它本身不太可能遵循朝九晚五的时间表。所以当我想休息的时候,我就起身四处走走。住在伦敦让我有能力从事各种文化活动,如果我喜欢的话。

我已经意识到我幸福的关键是一些能给我带来快乐的小事:一杯咖啡;散步愉快;这是小事。我也喜欢做饭,每天都和我女朋友一起做。我们都喜欢美食和烹饪。

谁的作品启发或激励了您,或者您欣赏谁的作品?

嗯,你知道,这是个好问题。我认为主要是自我激励。我知道人们从别人的作品中寻找灵感是很常见的,我想这对我来说可能也是如此。但对我来说,它更像是一种空灵的东西:它是一系列的东西——概念、想法——驱动着我,而不是任何特定的人。所以当我坐下来半发明一些东西时,就是因为这个。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 EmacsTalk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux之父:我们不会用Rust取代C语言开发内核
Linux 诞生于 1991 年,距今已经 30 年了。虽然它一开始只是 Linus 的一个个人项目,而非出于要开发一个新操作系统的伟大梦想,但如今的 Linux 早已无处不在。
范蠡
2021/06/17
1.1K0
对 CIDER, Projectile, Prelude 作者 Bozhidar Batsov 的采访
我是 Bozhidar,我总体上喜欢计算机,尤其喜欢编程。我对 Emacs 的狂热热爱是举世闻名的。我在 GitHub 上花费了大量(空闲)时间,为各种开源 Ruby、Clojure 和 Emacs Lisp项目做出贡献。我最著名的开源项目是RuboCop (Ruby 的 linter/格式化程序)和CIDER ( Emacs 的 Clojure IDE)。
飞驰的西瓜
2022/12/14
6740
对 CIDER, Projectile, Prelude 作者 Bozhidar Batsov 的采访
写给新手程序员的一封信
  首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。   “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” – WhyTheLuckyStiff   对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员。我喜欢把事情做到最好,而不是对原来的东西修修补补。   仅仅是因为爱好开始做一些创新,这是一个很好的开始!如果你说“我要先学习一下再开始做”那么你永远不会真正开始。每个人都需要从某个地方开始,所
Crossin先生
2018/04/17
7090
编辑器之神?神的编辑器?对不起给我来打IDE
程序员的圈子里面,永远有几个话题是经久不衰的,其中随随便便一个话题不论在哪个地方都能轻而易举的引起一场圣战:
MCU起航
2020/06/29
1.9K0
Emacs 系列(一):抛掉一切,投入 Emacs 和 org 模式的怀抱
长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 GTD 和 ZTD 之类的方法,但是像邮件或是大型文件这样的事务真的很难来组织安排。
用户1880875
2021/09/23
8880
隐居、反内卷,不意味着躺平|专访2021年度“杰出新自由软件贡献者”奖得主
“我想强调,别被所谓的专业边界给限定住,因为这些边界根本不存在。我展示了人文学科出身的人也可以在软件社区中占有一席之地,哲学家们也可以投身于实践,比如编写程序等等。”
深度学习与Python
2022/04/19
4370
Hadley Wickham 采访节选(二)
Hadley (羞涩脸):“那总比别人叫他们 Hadley-verse好吧!” ╮(╯▽╰)╭
用户7652506
2020/10/23
7300
Hadley Wickham 采访节选(二)
10 个角度分析软件工程师应该知道的 100 件事
如果你的答案都是否定的,那么你必须考虑换公司或团队了。如果你在现在的公司已经工作了 2 至 3 年以上,并且你的答案都是肯定的,那么你应该考虑换公司,或者至少要对换公司持开放态度。
深度学习与Python
2021/10/13
2260
操作系统Emacs是如何沦落为一代编辑器的?
(本文根据史实改编,如有雷同纯属巧合) 我正在用Emacs替换IDE和Sublime Text,至于理由看另外一篇文章《Emacs是最好的编辑器~~》。 开始之前,先让我们知道今天的Emacs是长怎样
Phodal
2018/01/29
2.1K0
如何让你的开发效率提升 3 倍?
编程大牛、《Java 编程思想》一书的作者 Bruce Eckel 曾说过:在这个领域做得越多,我越觉得软件开发比任何行业都更接近于写作。
非著名程序员
2018/09/29
7360
如何让你的开发效率提升 3 倍?
Emacs 29快到了!我们能期待什么
几个小时前宣布,Emacs 29 的分支现在从 master 分支中切掉了!这意味着该emacs-29分支从现在起将不再接收任何新功能,而只会接收错误修复。
飞驰的西瓜
2022/12/14
2.7K0
Emacs 29快到了!我们能期待什么
用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器的特质
本文最初发布于 phaazon.net 网站,经原作者授权由 InfoQ 中文站翻译并分享。
深度学习与Python
2020/11/06
2K0
用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器的特质
005. 与 Emacs 高手陈斌闲聊 Emacs
本期节目请来了一位使用 Emacs 近十年的资深用户陈斌[1],他是著名文章《一年成为 Emacs 高手》[2]的作者,同时也是一位拥有近二十年软件开发经验的前辈。
飞驰的西瓜
2022/07/26
1.1K0
005. 与 Emacs 高手陈斌闲聊 Emacs
Emacs Lisp
然后为了印证我的所学,我自己写了一个小函数,用于这篇文章中输入两个由 ~~~ 来标识的代码块
franket
2021/08/10
2.4K0
《Python完全自学教程》免费在线连载1.8
所谓 IDE ,全称是 Integrated Development Environment ,或者 Integration Design Environment、Integration Debugging Environment ,中文全称是“集成开发环境”。一般来讲,它跟开发语言无关。参考“维基百科”的“集成开发环境”词条,对 IDE 如此解释:集成开发环境( IDE )是一种软件应用程序,为开发者提供软件开发所需的代码编写、自动化构建和调试等功能。
老齐
2022/04/01
8020
《Python完全自学教程》免费在线连载1.8
我的 IDE 太重了,所以迁到了 Emacs
作者 | Renato Athaydes 译者 | Sambodhi 策划 | 褚杏娟 IDE(Integrated Development Environment,集成开发环境)是一种伟大的工具,可以使开发者的生活更轻松。我简直不敢想象,没有它们的工作会是什么样子。 但是,它们为我们提供的帮助并非无偿,而我也正遭受着这种后果。我使用 2019 年左右生产的、性能不佳的 MacBook Air ,在它上面运行我最喜欢的 IDE、Jetbrains 的 IntelliJ IDEA 社区版,但整个经历
深度学习与Python
2023/02/28
1.2K0
我的 IDE 太重了,所以迁到了 Emacs
Linux 下 12 个最佳 Notepad++ 替代品
Notepadd++ 是一款完全免费的源代码编辑器,旨在替代 Windows 上的记事本 – 基于 Scintilla 用 C++ 编写,并实现 Win32 API 和 STL,以确保程序尺寸小且执行速度快 – 这些特性使其成为一个家族开发者中的名字。遗憾的是,没有适用于 Linux 用户的版本。
数据科学工厂
2023/11/01
2.4K0
Linux 下 12 个最佳 Notepad++ 替代品
玩转命令行之文本编辑器篇
折腾的时光总是快乐的,目前空闲下来了,就开始想象有啥活可以整的,老早就想着写一篇软件分享的文章,可是也没啥好推荐的,昨天在看到一篇介绍文本编辑器的文章后突然脑洞大开,那我就来点不一样的呗~命令行下的文本编辑器,硬核吧,(大佬请自行绕过,没错,就是来吓唬小白的)
T1Am0
2022/09/13
1.3K0
玩转命令行之文本编辑器篇
Emacs Lisp2
然后为了印证我的所学,我自己写了一个小函数,用于这篇文章中输入两个由 ~~~ 来标识的代码块
franket
2022/07/10
1.1K0
Emacs Lisp
前言Lisp 是一门很古老的语言LISP 是具有悠久历史的计算机编程语言家族,有独特和完全括号的前缀符号表示法,起源于1958年,是现今第二悠久而仍广泛使用的高级编程语言,只有 FORTRAN 编程语言比它更早一年,LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKIEmacs Lisp 是 Lisp 的一个分支Emacs Lisp,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用
franket
2022/07/10
6620
相关推荐
Linux之父:我们不会用Rust取代C语言开发内核
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档