Emacs 折腾日记(二)——Emacs简单入门

环境 准备

这里我们根据之前博客 配置的wsl2+archlinux环境,安装Emacs

sudo pacman -S emacs

如果之前配置的关于gui的部分正确,那么在终端输入 emacs 来启动 或者在Windows的开始菜单中能找到emacs(Arch) 之类的启动项目。

当然你也可以使用 emacs -nw 来开始一个终端的emacs程序

Emacs 主要界面展示

打开之后,映入眼帘的是一个比较丑陋原始的充满历史感的软件,看着都有点让人倒胃口
在这里插入图片描述
我们能不能将Emacs改造的漂亮一点呢?记住在Emacs上永远不要问能不能,而应该问怎么做。Emacs上没有不可能

上面的图中,我将Emacs的各个区域都给标记了一下,很好理解,一般的软件都有这些部分。
中间显示的是欢迎信息,欢迎界面中这些链接都是Emacs的帮助信息,都可以点进入看。
而下面的状态栏显示了一些基本的信息。
最下面的部分我们称之为mini-buffer,会显示一些运行信息

我们可以使用q 来退出欢迎界面,进入
在这里插入图片描述
该界面需要注意下面几个地方

  • 软件中间位置已经出现了输入的光标,我们可以在里面输入内容
  • 下面有一个 scratch 的字样,它表示当前处于scratch buffer (草稿),顾名思义,它就是一个输入临时内容的地方。它没有绑定任何的文件
  • 后面的 Lisp Interaction 和 ElDoc表示当前的mode,会加载一些有关mode的配置,例如lispmode会加载一些有关lisp的高亮等
  • 至于状态栏每个字符都代表什么意思,这里就不解释了,后面我们希望对Emacs进行一些美化,美化完成之后就看不到这些信息了。

Emacs 的一些概念介绍

在学习玩Vim之后,Emacs 的一些概念就变得很好理解了,很多东西都根vim是相似的

buffer

Vim 中的buffer与文件有关联,将来可以保存在文件中,但是Emacs的buffer除了包括vim中buffer相关的内容之外,也有一些其他类型的buffer,目前我知道的有:

  • minibuffer: 界面最下方的一栏,主要显示当前状态和一些其他内容,后续可以对它进行一些定制,可以显示很多有用的信息
  • scratch buffer: 顾名思义,就是草稿箱的概念,用来输入一些临时的内容
  • Message buffer: 用来显示一些信息,例如message 函数的内容

mode

mode,模式。Emacs中一个十分重要的概念,一般来说buffer都会有mode加载在其上,给buffer提供额外的支持。

mode 分为两种, major mode 和 minor mode。一般一个buffer只能有一个major mode,但是可以有多个minor mode。

每个mode都有一些额外的特征和快捷键绑定,与vim中的文件类型有点类似。不知道小伙伴还记不记得,我们可以针对vim中的文件类型,给每个类型指定额外的快捷键和语法高亮等信息。同样的Emacs的mode也具有这些功能。例如 elisp mode 里面有语法高亮、快速执行lisp代码的一些快捷键。另外也可以做到同样的功能在不同的mode中体现出不一样的效果。

相比于vim的文本类型来说,mode的方式更加的灵活,我们可以将一些在不同文件类型中同样的功能抽出来,放到一个mode中,然后在需要的时候以minor mode的形式加载到buffer中。

window

window的概念与vim中的相同,都是同时显示多个buffer。

frame

相比vim来说,Emacs多出来了一个frame的概念。上述emacs 的界面就是一个frame,每创建一个frame,就会多出来一个上面的带有标题栏的窗口。
相信各位读者也看出来了,只有gui的Emacs可以创建多个frame。
一般来说我们使用到window就已经足够了,特别是要进行全键盘操作的时候,多个frame反而是一个负担

Emacs 的重要快捷键

介绍快捷键之前,我们先来介绍一下Emacs相关的键位。

  • Ctrl:ctrl键,一般简写为C
  • Meta: 一般是Windows键盘布局中的 Alt 键盘,简写为 M
  • Supper: 一般是WIndows键盘布局中的Win 键,简写为S

因为vim利用不同的模式来映射快捷键,所以vim能用较少的按键实现很多的功能,而Emacs本身不具备mode的功能,所以它需要很多前缀来将不同的功能进行映射。

对于一个vim转Emacs的用户来说,Emacs的快捷键统统不重要,第一,后续肯定会将它改造成vim的按键模式。主要是相比于vim来说,Emacs的文本操作快捷键太长了,没有vim那么简洁。第二,没有人会去特意记忆那么多快捷键,以我使用vim的经验来说,都是慢慢用,慢慢形成肌肉记忆的。作为一个初学者一上来就告诉他,需要记住这些快捷键,很容易就把人吓跑了。

但是Emacs毕竟不同与vim,我们还是需要记忆一些特别重要的快捷键

快捷键 功能
C-h f 查看函数的帮助信息
C-h v 查看变量的帮助信息
C-f k 查看快捷键的帮助信息
M-x 执行命令

前三个主要是查看各种帮助信息,Emacs有一个特点叫自文档,就是它很多东西都自带文档,一切都可以通过查询文档来了解。所以在使用和熟悉的过程中,我们离不开前三个快捷键。它可以互相查,例如忘记了某个功能的快捷键,可以使用 C-h f 输入对应的函数就可以找到它对应的快捷键。或者忘记了某个快捷键绑定到哪个命令了,可以使用 C-h k来查看关于快捷键绑定命令的信息。

对于最后一个快捷键,一般来说Emacs的功能都绑定到了一个命令或者说一个函数上,即使我们忘记了快捷键,也可以通过M-x 输入命令来完成操作,有些时候配合自动补全,输入命令不比使用快捷键慢。

vim与Emacs的很多地方都是相通的,学习了vim之后,Emacs的很多概念都不需要细说,很快就能上手用了,但是想要用好,用出个性来,还是要对elisp有一定的了解,后面可以会陆续介绍一些elsip的知识。

posted @ 2024-12-07 21:03  masimaro  阅读(7)  评论(0编辑  收藏  举报