如何像程序员一样记笔记

Table of Contents

1 Emacs是什么

Emacs被公认为是最受专业程序员喜爱的代码编辑器之一,它用来编写文本文档也是很好的。这里介绍用Emacs记笔记的方法。

Emacs软件界面.png

Figure 1: Emacs软件界面

2 相比写字板、office word、WPS软件的优势

2.1 摆脱鼠标、按钮这样的图形操作界面

处理文字流更加专业、高效。通过纯键盘操作,可以像写代码一样做文字处理工作,效率大大提升。

2.2 强大的自定义快捷键

如默认绑定的快捷键,快速移动定位光标,选择文本,执行文本操作。

  • C-f 前进一个字符
  • C-b 后退一个字符
  • M-f 前进一个单词
  • M-b 后退一个单词
  • C-a 移到行首
  • C-e 移到行尾
  • M-a 移到句首
  • M-e 移到句尾
  • C-p 后退一行
  • C-n 前进一行
  • C-v 向下翻页
  • M-v 向上翻页

2.3 org-mode使用结构化文档来记笔记

结构化文档使大量的文字内容具备层级组织,便于浏览和编辑。
org mode中可以通过给文本添加特定的符号,来实现文本的结构化和多样属性。

2.3.1 标题元素

由星号 * 开始的行被称作章节标题(heading)。
一个星号 * 代表一级章节标题,两个星号 ** 代表二级章节标题,等等。
图中使用了至少三级章节标题,使用Tab按键可以切换视图为全文视图和一级标题视图、多级标题视图(标题下的章节内容被折叠)。折叠后的视图可以方便于在文本中进行导览,对比word这类常用的笔记软件,更能够胜任大量文本内容的编写任务。

Emacs org mode界面.png

Figure 2: Emacs org mode界面

2.3.2 其他元素

org mode中可以通过标记符号设置的内容元素还有标记文字(加粗、斜体、下划线)、列表、图片、链接、文本块、表格、注释等。

2.3.3 其他

由于org mode中插入图片其实是插入了对于已有文件(图片文件需存放于电脑本地)的引用,所以图片的插入并不占用存储空间,插入大量图片也不会造成文件操作卡顿。

2.3.4 导出html文件

使用org mode编辑好了文件内容后,可以导出为html格式,设置好的标题、标记文字(加粗、斜体、下划线)、列表、图片、链接、文本块、表格等都能在html文件中显示,导出后html文件的顶部还会自动插入文件目录(即org mode中设置的多级标题)。由于html文件在手机、平板、电脑等终端设备中都能按照统一格式方便地浏览,对于喜欢使用html文件浏览笔记的用户来说,确实是很方便的。
本文就是通过org mode直接导出的html文件。

2.4 零基础学习编程技巧

Emacs内置了用于软件扩展二次开发的脚本语言emacs lisp语言。emacs lisp语言很强大,通过emacs lisp语言,可以为软件安装插件或自定义实现很多强大功能。


;;; 以下命令将指定按键绑定到指定的命令
(define-key global-map [(meta w)] 'kill-ring-save)
(define-key global-map [(ctrl _)] 'undo)
(define-key global-map [(ctrl o)] 'open-line)
(define-key global-map [(ctrl k)] 'kill-line)
(define-key global-map [(meta q)] 'set-mark-command)

;;; 以下命令用于配置emacs中的Common Lisp编程环境,将emacs作为Lisp语言的集成开发环境。
(setq inferior-lisp-program "sbcl -K utf-8")
(add-to-list 'load-path "/data/cloud/lisp-environment/slime-master/")
(require 'slime)
(require 'slime-autoloads)
(slime-setup '(slime-fancy))

有了Emacs,可以体验黑客文化,获得可以一生陪伴的玩具

3 Emacs下载

Emacs官网链软件下载链接,windows系统可以下载emacs-29.1-installer.exe文件直接安装。

4 Emacs常用命令

  • 打开文件 Ctrl+x Ctrl+f
  • 关闭文件 Ctrl+x k
  • 保存文件 Ctrl+x s
  • 搜索文本 Ctrl+s
  • 选择文本 Ctrl+@
  • 复制文本 Alt+w
  • 撤消上一个操作 Ctrl+_

Author: LispSu