跳过正文
  1. 所有文章/

Emacs学习笔记一:选择Emacs的原因及基本安装

·2115 字·5 分钟· loading · loading · ·
Emacs Emacs Doom Emacs 笔记
作者
Ethan
家庭专用核动力驴
目录
Emacs 学习笔记系列 - 这篇文章属于一个选集。
§ 1: 本文

为什么选择 emacs?
#

我曾经在很多笔记软件中横跳,深度使用过 obsidianlogseq ,也试用过 anytypeappflowynotion思源笔记 等,基本上叫得上名的软件我都尝试过,却没有一款能够真正起到不折腾笔记软件回归记录本质的,而且每使用一个软件我都从功能性上下手,想要达到 all in one,或许是其中某一个小功能不满意,或许是某一个需求没有达到,一直反复调试,但是全部都是流于形式,真正写下来的没有多少东西,但是最后为什么选择了最折腾的 emacs 呢?

从长期的角度来看,如果长时间使用 emacs 的收益会非常大,虽然 emacs 的上手难度以陡峭著称,而且我完全没有代码基础,只能略微看懂一点配置文档的这种情况下,上手会非常困难,但是上手之后并且以十年这种跨度来看,emacs 这种开源稳定并且有着几十年发展历史的软件不用担心其跑路或者倒闭,哪怕以后缺乏维护也能继续使用,并且 org 和 markdown 格式的文本可读性非常强,随便使用一个文本编辑器至少能够确保内容可读,不用担心笔记丢失。

并且 emacs 的可定制性非常强,稍微学习一点 lisp 就可以实现非常多的功能,网上也有大量别人造好的轮子,但是也因为可定制性强,默认的 emacs 如果作为笔记软件使用的话,有大量配置需要调整,我在刚开始学习 emacs 的时候,甚至连其他软件中最基本的嵌入图片都实现不了,本地图片拖拽进 org 文档需要使用 org-download 包,网络图片需要使用 doom emacs 或者是 org-remoteimg 包,可以说任何功能都需要付出比其他笔记软件数倍的精力去调试和适应,但是一旦一个流程跑通了之后,可以很长时间不用修改。

我对笔记的需求大体上分为:

  • 本地化:或者说数据可控,例如 obsidian 虽然是闭源软件,但是文档存储为本地 markdown,能够有效避免数据绑定
  • 数据同步:我有多端使用的需求,目前是 windows 和 MacOS ,外加 IOS 手机,使用 emacs 能够用 webdav 同步,手机上则用 beorg
  • 可定制性:有很多比较小众的功能,如果笔记软件没有开放 api 或者没有插件系统的话,只能是开发者愿意为你提供什么功能,而不是你想要什么功能
  • 任务管理:将任务管理与笔记融为一体是一个比较小众的需求,但是在我较长时间的使用了 todoist滴答清单omnifocus 等任务管理软件后,感受到如果将任务管理系统与笔记割裂开,很多任务不方便联系到笔记中的参考资料和上下文,使用起来比较脱节。

obsidian 可以说除了在任务管理上没有办法做到移动端上比较方便的使用以外,其他方面都非常符合我的需求,而且上手难度较 emacs 低了许多,在不使用几个比较复杂的插件之外,可以说是开箱即用,唯独缺乏了我比较在意的任务管理, obsidian 有一个挺好用的任务管理插件,如果不在意手机上的使用以及对日历的联动外, obisidian 已经完全满足使用需求,并且可定制化程度非常高,UI 也现代很多。

但是最后还是选择了 emacs ,准确的说是 doom emacs ,作为一个封装了很多 packages 的开箱即用配置,对中文的支持比较友好,而且省去了大量的初始配置工作,我在刚入门的时候曾经尝试使用原版自己进行配置,最后发现可能花了一天时间配置出来的一个功能,在 doom 中早已经解决好了,虽然用到最后我可能还是会尝试搭建自己的配置,但是在入门学习过程中,使用别人开发好的初始配置对于新手来说是一个比较好的选择,在使用过程中学习,而不是花了一两个月时间一个字没写全都在研究配置。选择了 doom emacs 后,只需要比较少的初始配置就能开始写作,并且安装过程也比较简单,本系列笔记在未另作说明的情况下,均以 doom emacs 为配置基础,如果遇到什么问题,请结合 emacs 以及 doom emacs 的文档进行参考。

doom emacs 使用的个人体会
#

doom emacs 的优点在于提供了大量的初始优化和基本配置,省去了大量的前期配置时间,例如对中文的支持,只需要在 init.el 中启用 chinese 支持,就可以获得包括 pyim 等中文输入和中文搜索等功能,但是由于 doom 封装了许多宏,配置不太透明,例如 map! package! use-package! 等函数,如果遇到问题了很难排查,需要翻阅源码理解整个代码的工作流程,而且很多原版的设置无法直接在 doom 中生效,例如我在配置 org-roam 这个包的时候,想要调整 roam buffer 的尺寸,直接通过插件文档给出的方式无法控制,最后还是 AI 给出了答案,在 doom 中需要通过 set-popup-rules! 的形式对窗口进行控制。

doom emacs 的安装
#

windows 平台上的安装
#

Windows 上的安装较 MacOS 上的稍微复杂一点,可选直接下载可执行文件、使用 WSL 子系统或者通过包管理器安装,我平时用的是 scoop ,所以就选择了 scoop 的安装形式,无论哪种安装形式,建议在 Windows 上通过环境变量新增一个 HOME 目录,这样可以让 emacs 从用户目录开始引导,避免出现奇奇怪怪的路径问题。

安装依赖及 emacs :

scoop bucket add extras
scoop install git emacs ripgrep
# Optional dependencies
scoop install fd llvm

安装 doom emacs :

git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install

初次安装的时间较长,请耐心等待安装完成

MacOS 平台上的安装
#

doom 官方推荐使用 emacsmacport ,实际感受 macport 版本确实功能支持和兼容性都要好一点,我使用的是 homebrew 安装,安装时添加了编译选项增加了 xwidgets 的支持。

安装依赖:

# required dependencies
brew install git ripgrep
# optional dependencies
brew install coreutils fd
# Installs clang
xcode-select --install

安装 emacs :

brew tap railwaycat/emacsmacport
brew install emacs-mac --with-native-comp --with-xwidgets --with-natural-title-bar
ln -s /usr/local/opt/emacs-mac/Emacs.app /Applications/Emacs.app

安装 Emacs 这一步中将可执行文件链接到应用程序中,可能会因为 brew 或 macOS 版本不同导致路径不同,如果报错了根据上面的安装日志中的路径进行调整。

安装 doom emacs :

git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
~/.emacs.d/bin/doom install

在 MacOS 上的安装速度会比在 Windows 上快,但是还是需要大约十多分钟,根据网速情况不定。

下期预告
#

下一期准备写一下 doom emacs 的一些基本配置,都是我在使用过程中遇到的问题,并且参考了Emacs China以及大量文章进行的配置,由于每个人的 emacs 配置都非常个性化,我在作笔记时会尽量解释具体的 lisp 作用,提供给大家参考。

参考链接
#

Emacs 学习笔记系列 - 这篇文章属于一个选集。
§ 1: 本文

相关文章

Emacs Picgo插件
·992 字·2 分钟· loading · loading
Emacs Emacs Picgo
Kmonad的安装与配置
·2185 字·5 分钟· loading · loading
技巧 改键 Home Row Mods
群晖ABB套件在windows上备份不启动问题
·402 字·1 分钟· loading · loading
NAS 群晖 ABB套件
hugo博客使用git部署中遇到的问题
·187 字·1 分钟· loading · loading
博客 Hugo Git
Proxmox下安装Windows 11
·734 字·2 分钟· loading · loading
Homelab Proxmox Windows
怀孕有感
·1820 字·4 分钟· loading · loading
养娃心得 怀孕准备 孕期