wsl2 / ubuntu 安装和配置 Emacs + mit-scheme
2024-02-21 21:02:11

主要是看 SICP 书的时候配下环境

1 首先安装 Emacs 和 mit-scheme

第一条命令可以直接安装最新开发版的 Emacs, 目前是 GNU Emacs 30.0.50

1
2
sudo snap install emacs --edge --classic
sudo apt install mit-scheme

2 配置 Emacs

2.1 一些提示

先在这说几个可能有用的快捷键

  • Ctrl + x + f 打开文件
  • Ctrl + x + k 关闭/丢弃当前区域的缓冲区, 不严谨的说相当于关闭那个窗口
  • Ctrl + x + o 切换编辑窗口
  • Ctrl + x + s 保存当前缓冲区/文件
  • Alt + x + cua-mode 相当于激活复制粘贴模式, 也就是说可以从外部粘贴板复制和粘贴内容用 Ctrl + cCtrl + v 系列快捷键
  • Alt + x + eval-buffer 重新载入当前缓冲区, 更改配置文件后可以用这个重新加载
  • Ctrl + x + c 退出
  • 可以在 Ctrl + x 或者 Alt + x 后按空格或者 Tab 获得提示/联想

2.2 配置本体

  1. 这里我就直接用 Emacs 当编辑器, 首先用 emacs 进入 Emacs
    虽然是安装在 wsl 里的, 但是现在 wsl 支持在 windows 里打开 linux GUI, 然后进入 Emacs
  2. Ctrl + h 再输入 vuser-init-file
    user-init-file
    在下面的回显区就会出现配置文件路径, 通常为 ~/.emacs
    path
  3. 然后按 Ctrl + x + f 输入 ~/.emacs 作为文件路径在下面的命令区, 如果没有就创建
    emacs
  4. 在文件里添加包管理地址
    1
    2
    3
    4
    5
    6
    ;; add the melpa package
    (require 'package)
    (add-to-list 'package-archives
    '("melpa" . "https://melpa.org/packages/") t)
    (package-initialize)
    (package-refresh-contents)
  5. 用重启 Emacs 或者 Alt + x + eval-buffer 重载配置文件
  6. 然后用 Alt + x + package-install + 回车 + geiser 安装 geiser 用于 REPL, 也就是类似即使反馈代码的效果
  7. 安装完后重新用第2到3步打开配置文件
  8. 往文件里添加 mit-scheme 兼容
    1
    2
    3
    (use-package geiser-mit :ensure t)
    (setq geiser-mit-binary "/usr/bin/scheme")
    (setq geiser-active-implementations '(mit))
    可以放到文件末尾, geiser-mit-binary 的地址是你前面 apt 安装的地址, 也可以用 which mit-scheme 来看地址
    到目前为止基础的都配置完了

2.3 [可选] 配置主题

  1. 这里 找到个主题
  2. Alt + x + package-install + 回车 + <主题名>, 比如 zenburn-theme 或者 vs-dark-theme
  3. 用前面的方法打开配置文件
  4. 在文件里加入 (load-theme '<主题> t), 比如以 vs dark theme 为例子: (load-theme 'vs-dark t), 要去掉最后的 theme 后缀
  5. 重启 Emacs 或者重载缓冲区(Alt + x + eval-buffer)来查看效果

3 Hello world

  1. Alt + x + f 打开任意一个 scm / 或者不是 scm 文件, 比如 ~/sicp/test.scm
  2. 输入 “Hello world”
    hello
  3. Alt + x + run-geiser 激活 geiser
  4. 把光标移回到你文件(有”hello world”)的那个窗口, 比如用 Ctrl + x + o 或者鼠标点那个窗口
  5. 将光标移动到 “Hello world” 的后面, 用上下左右箭头/鼠标/或者 (Ctrl + b / Ctrl + f 之类的)
  6. Ctrl + Alt + x 跑光标这一行
  7. 在最下面的命令窗口就会有结果
    result

4 参考

Emacs 配置: https://github.com/bluemonk/modern-emacs
Emacs 使用习惯: https://www.masteringemacs.org/article/beginners-guide-to-emacs
Hello world: https://medium.com/@joshfeltonm/setting-up-emacs-for-sicp-from-scratch-daa6473885c5
内置 Emacs 文档: Ctrl + h + t

EOF
Prev
2024-02-21 21:02:11
Next