Reddit 上看到一个有意思的问题,作为一名律师我该如何使用 Emacs

没想到这个帖子下面有 42 条回复,而且不少人表示自己就是并非程序员,但用 Emacs 照样用得很爽。作为非程序员,有些帖子很有共鸣。

Emacs as a lawyer? (and a non programmer / writer) : emacs

2 个赞

非程序员刚上手不久,挺迷惑的一点是几乎所有教程建议都上来就让你写/抄配置而不是使用emacs自己的custom方案……我倒是能理解自带配置能力有限,可是对非程序员上手真的很友好,至少我自己尝试写字体配置在论坛wiki到处抄了好几种都没成功最后还是进options改成功的

确实。我有时也会去 option 里看看。但是 option 方式来配置 Emacs,在程序员圈子里会被笑话吧(代码是不是太差,连配置都不敢写

我到现在,倒还没找到怎么介绍 option 的文章。

我觉得 stallman 搞这么详细的 option,肯定有想着降低 Emacs 入手难度,而且让它广泛流传,让人人爱上计算机的理想——某种程度上,我觉得 Emacs 的著名插件,都有极其详细的教程,算是 Emacs 圈子里不成文的约定了。

1 个赞

你是做什么工作的?你平时是怎么用 Emacs 的呢?

考研失败的大四经管狗 :face_with_head_bandage: 刚开始学还谈不上怎么用,最近在EMACS里完成的工作大概是org-mode下写了实习报告,期间也是捯饬的时间更多,比如行号、shift选中、自动换行之类

下一步准备折腾的是切换buffer,默认的感觉不是太顺手,可能终于要开始抄配置了罢~

2 个赞

哈哈,加油。我现在想,可以用 option 的地方都可以先尝试用 option 来修改配置。

我觉得一开始就上spacemacs,doomemacs之类的挺好的,一来使用体验上有保障,毕竟好用才是最关键的;二来也完全不妨碍你学习emacs/elisp啊,相反还提供了更舒服的学习/编码环境,还能参与到这些社区中跟大佬学习。

赞同从 Spacemacs 等配置开始!

作为一个快40岁的非程序员,Emacs 已经成为我生命中不可缺少的东西了。Emacs 真的是一次投入终生受用那种。文本永不过时,尤其是完全在你掌控下的文本!我现在已经几乎弃用 Word、Bear、备忘录等等。

Love Emacs, Love Life!

12 个赞

spacemacs 和 doomemacs 适合有一定基础的人开始,对于毫无 vi/emacs 使用经验的人效果可能适得其反。

工具要匹配用户使用场景,否则再完善又有何益?杀鸡用牛刀,大炮打蚊子,过早引入不必要的麻烦。

1 个赞

我觉得能够开始考虑使用 EmacsVi 的人,应该基本可以定义为有一定基础的人,即使不具备这样的基础,如果能够安装并使用上,应该也获得了这样的基础!

不能这样认为。

当一个人决定用vi/emacs 通常只是看了别人的介绍觉得很酷,距离「有一定基础」还需要一段时间的摸爬滚打。在此期间慢慢建立起的认识,能解决一些小问题,对大问题力不从心。

如果一开始就spacemacs/doomemacs,过早陷入s/d 复杂迷宫,解决的是s/d 独有的问题,形成的思维概念也来自于s/d。恐怕跟其它用户交流会不太顺畅,我就常常看着有的s/d 用户的贴子不知道在说什么,毕竟这两个配置还没有占到统治地位。

https://emacssurvey.org/2020/is-your-configuration-based-on-any-starter-kit.svg

emacs survey 2020调查结果)

**使用Emacs 需要深度参与(折腾),不是选一个配置就完事。如果配置与使用场景不匹配,折腾就成了白忙活。**很多人用了一段时间spacemacs/doomemacs,最后不堪其扰(常常更新出问题,跟自己无关的问题),又回归自主配置。

我认为的spacemacs/doomemacs 最佳使用时机和方式:

  1. 有一定基础,能解决一些问题,想尽快有一套完整可用的配置时,入坑。
  2. 当s/d 已经开始烦恼你的时候,回归自主配置,把s/d 当作摘抄配置的来源。
8 个赞

“工具要匹配用户使用场景”,就是因为对新手来说,把原生的emacs舒服地用在自己的使用场景下很有难度,所以才建议用成熟的方案。我自己就是新手,起码我个人感觉在一个成熟完善的配置上去做减法要舒服得多。您可能见过很多从spacemacs/doomemacs上手不堪其扰回归自主配置的例子,但是很可能有更多从自主配置开始结果啥都弄不好直接脱坑的路人。

脱坑的人都不是长期的Emacs用户,Emacs需要其用户自学能力很强,然后它回馈你完全自定义的计算环境和超高的集成效率。

如果用户弄不懂Emacs配置不了解Elisp语言,他迟早都会离开Emacs的。

2 个赞

我觉得对很多人来说先有一个好的使用体验才会有入坑的动力,从spacemacs/doomemacs上手和去了解emacs/elisp并不冲突。拿我自己来说如果不是用了doomemacs我可能就脱坑去用vscode了,在保证了平时可以舒服的使用emacs的情况下,我也就更有兴趣去学习emacs/elisp了。

我们的讨论的可能不在一个点上。

我没说 spacemacs/doomemacs 不能用。而是建议有一定基础再用。的确,s/d 可以让你免于从零开始构建一份配置。但它也会出错,也会有不合理的地方,但它的 core 代码复杂度远超一般的包,如果没有一定的基础很难改动。而你能求助的 s/d 用户数只占整个社区的 9%和16%。

我们一直都在寻找简单的包,从 lsp-mode 到 eglot 到 lsp-bridge,从 helm 到 ivy 到 vertico。配置的结构也应该越来越简单,扁平,而 s/d 在 Emacs 和包之间塞入了太多魔法,它即是让你感到舒适的缓冲带,也是绕晕你的迷障。

5 个赞

我不是程序员。对于非程序员来说,应该都是奔着 org-mode 来的。

对 spacemacs 和 doom 的感觉就是好复杂,不知道要怎么去改设置以满足自己的要求。

刚开始使用 Emacs的时候,装了 spacemacs ,想在它的基础上改点东西,就觉的很复杂,改键牵一发动全身的感觉,要搞点自己的设置,要写层 layer,然而当时对于什么是 layer 完全没头续,只能去看 spacemacs的手册,头大的很。

对 Doom 的使用最大的感受就是它启动快。最开始尝试它的时候,改字体,怎么改都不起作用,受不了就删了(后来搜,说是bug)。后来也断断续续的装了几回,但是试用不到一天就删,它的配置文件实在是复杂。目前看 doom 的配置也很难直接抄过来直接用。

目前我是自己写配置,这边抄点那边抄点。setq, add-hook , advice-add, define-key, globa-set-key, with-eval-after-load 大概这些,基本上就足够了,简单清晰。use-package leaf setup 这些都不用,配置很扁平。写宏什么的,不存在的,目前还不会。顺便说一句,目前我的配置启动时间是 0.56 s , doom 启动快的特点,也做到了。

回头看,我觉得spacemacs和doom 这类巨型配置不适合非程序员的Emacs新手用,是真的没法自己配置。看purcell的配置和Organize Your Life In Plain Text感觉更简单明了。

附上我的配置文件,Jousimies’s Personal Emacs Configuration

7 个赞

对于新手来说,需要一个更能容易上手的 Emacs,比如说很多在其它编辑器默认统一的东西,在 Emacs 里也有类似的体验,这样才能用 Emacs 做一些基本的文本编辑工作,从而慢慢开始用上手,而不是折腾两下后完全不会编辑,就退坑了。

1 个赞

同为非程序员也现身说法一下我的 Emacs 之路。

从最早还是编辑 ~/.emacs 这个文件开始,慢慢的东抄一点西抄一点,你会发现,好像 Emacs 变”大“了,它能做的事更多了,它能解决更多的问题了。

当你用了一段时间,看了更多,有更多的诉求后,你会发现不满足。看着自己 ~/.emacs 里的那些杂乱无章的配置,你开始了第二阶段。也许你会把配置文件挪到 ~/.emacs.d/ 里,开始用 init.el

又过了很久,你发现好像 init.el 还是挺杂乱的,不成体系,相比.emacs好像也就是换汤不换药。于是,学习网上的大神们,把配置分模块,拆分成很多 init-xxx.el 然后统一在 init.elrequire

随着你日渐学习和每天使用,你会发现越来越多的不适,越来越多的需求,你会有欲望想解决它,想让它更顺你的意。

这时你会看更多的 manual,看更多网上优秀的配置,学会使用 C-h v/f/F,你也学到了如何用 org-mode 通过文学编程的方式来更好地组织你的配置。这个阶段,也许你会尝试使用一个 emacs-config.org 文件来管理所有的配置。

你像是着了魔,整天沉浸在学习 Emacs 的快乐中。

经历以上的阶段,你Emacs依然在变大,但你会慢慢更加深入了解,你会尝试解决包之间的冲突,你尝试作选择,渐渐的,你慢慢的删除一些对你无用的包,你开始有主见的作选择而不是无脑的 copy-paste。

再接下来,你可能学会了如何在一个 org 文件中通过 tangle 配置模块化的文件,依然是文学编程,让配置一目了然,同时又能够模块化。与此同时,进一步的做减法,删除用不到的包,尽可能使用内置的包。用好 Emacs 的原生功能。你可能会作一些类似 advice 之类的个性化定制,你也可能对启动动辄 10+s 的启动时间心存不满,慢慢地学会使用 after-init-hook

也许再下一个阶段,是更深入的了解和掌握 elisp,能够看懂大神们写的包的源码,能知晓大多数的函数,此时,你已经有能力造轮子了,我想到那时,Emacs 一定能让你的生活充满欣喜(对,是欣喜,每当你使用它的时候,都会有一种愉悦感和欣喜感)。

而我,正在通往我心中的目标的路上。

PS:直到现在,我也没有使用过 Spacemacs 和 Doomemacs,记得以前听过一期关于 Emacs 的播客,比较 Vanilla Emacs 和 Spacemacs/Doomemacs,里面有个观点我很喜欢,学会和习惯使用最通用最流行的版本(GNU Emacs 以及原生键位),这样你不至于到了某个新的环境或者别人的环境一无所措。

但我尊重他人的选择!

10 个赞

倒不是说不会编辑,只是想折腾到好用的程度要很花时间