Emacs¶

概述¶
Emacs 是一个文本编辑器,采用 Emacs Lisp 作为配置语言。作为 Lisp 解释器,Emacs 功能强大 (包括但不限于发邮件,使用irc聊天,阅读新闻和RSS订阅,玩俄罗斯方块) 。
Emacs 是自由软件,采用GPL-v3发布。Emacs 是自由软件运动的一部分。
安装¶
Debian系:
sudo apt install emacs
如果您正在使用 Wayland
默认的 emacs-gtk 在 Wayland 下可能会导致各种问题。使用 emacs-pgtk:
sudo apt install emacs emacs-gtk- emacs-pgtk+ --purge
红帽系:
sudo dnf install emacs
Arch系:
sudo pacman -S emacs
Emacs 可以使用 Flatpak 安装,但我们不建议使用该方法。
flatpak install org.gnu.emacs
使用¶
快捷键¶
Emacs 风味的组合键描述
C-...:C是 CtrlM-...:M是 Alts-...:s是 Super,或者在大多数键盘上,Windows...-SPC:SPC是 space,空格
最后一项是基础键,前面的全都是修饰键。 C-c 是 Ctrl + C; M-c 是 Alt + C; C-M-c 是 Ctrl + Alt + C ...
Shift去哪里了? 没有 Shift!在 Emacs 里我们用已经“被大写”的字符来代替 Shift。比如
- `M`-`<`: Alt + Shift + ,
- `M`-`,`: Alt + ,
文件 C-x C-c 退出Emacs
C-x C-s 保存文件
光标 C-p/n/b/f 或 <up>/<down>/<left>/<right> 使光标上下左右移动
M-{/} 纵向移动一个段落 M-b/f 横向移动一个单词 C-a/e 移动到行头或行尾
M-</> 移动到文件头或文件尾
删除,撤销 C-k 删除光标后面的所有文本 C-d 向后删除 C-/ 或 C-x u 撤销操作
搜索 C-s 搜索关键词(向后) C-r 搜索关键词(向前) M-% 查找并替换
命令 M-x 输入命令
多任务 C-x C-f 打开一个文件 C-x b 切换到最近的Buffer
C-x C-b 打开Buffer列表(?获得帮助) C-x o 切换到另一个Window
C-x 0 关闭Window
C-x k 关闭一个Buffer
文档 C-h C-f Emacs常见问题解答
C-h r 官方手册(需要安装info) C-h t 官方快速指南
注意
显然这些不是所有的官方配置快捷键,事实上用户可以自己更改快捷键,受限于篇幅和难度这里不多赘述。请参阅 #关于更多。
简短教程¶
注意
这篇文章的标题不是《Emacs:从入门到精通》,本篇文章只介绍 Emacs 作为文本编辑器最基础的部分。如果读者想要一篇综合的,完整的教程,请参阅 #关于更多
虽然非常强大,Emacs 出了名地难以学习。下面是一篇入门级教程,以对本文源代码的编辑为例来阐述 Emacs 的基础部分。
下载并打开这篇文章¶
我不熟悉 Markdown
没有关系!我们不要求读者理解 Markdown 的语法。
用终端运行以下命令:
# 下载
curl https://codeberg.org/LinuxCabin/linux-handbook/raw/branch/main/docs/applications/editors/emacs.md --output emacs.md
# 打开
emacs emacs.md
移动光标¶
屏幕上闪烁的“小黑方框”就是我们的光标。我们用上下左右键来移动光标。
你应该会感到一格一格移动光标很慢,不妨试试下面的快速移动方法。
- 纵向移动一个段落:
M-{,M-} - 横向移动一个单词:
M-b,M-f
更多组合键
- 移动到行首或行尾:
C-a,C-e - 移动到整个文件的开头和末尾:
M-<,M->
现在试试把光标移到这一行吧。按住下箭头,或者感到足够勇敢,按几次 M-}。
写入,删除与撤销¶
和 GNU Nano 很相似,直接打字就可以在 Emacs 里写东西,按退格键就可以删除。
现在把光标移到这一行下面,写下 Hello world!
delete this
试试 C-<backspace>,这个组合键能删除一整个单词,用它删掉 delete this
d e l e t e t h i s
把光标移到 d e l e t ... 这一行,按下 C-a C-k,这个组合键能删除一整行。
按下 C-/,它能撤销刚刚做的更改(比如删除)。
更多组合键
用 C-d 或 <delete> 就能向后删除,用 C-<delete> 向后删除一个单词。
选中,拷贝和粘贴¶
想象我们在图形化的编辑器里。要选中一段文字,我们会把鼠标指针移到这段文字的头部,按下鼠标,再把指针移到尾部
在 Emacs 里也是这样的,只不过我们用键盘移动光标到头部,按一下 C-SPC,再移动光标到尾部。试试看吧:
选中这句文字。
提示
#移动光标 的内容可以在这里用哦。
连续按两下 C-SPC 以退出选区。
C-w 是剪切,C-y 是粘贴。现在选中上面那段文字,按下 C-w,再按下 C-y 试试。
M-w 是拷贝。把 C-w 换成 M-w,重复上面的步骤试试。
查找与替换¶
查找¶
- 向后查找:
C-s - 向前查找:
C-r
现在试试向前查找 backspace 吧。按 C-r,输入 backspace,回车。
回到搜索前的位置...
按 C-u C-SPC 就可以回到上一个标记的位置。搜索会留下标记,所以可以回到上一个搜索前的位置。
替换¶
下面的 Emacs 有拼写错误,我们使用 M-% 查找并替换它。按下 M-% ,输入 Eamcs ,再输入 Emacs ,输入 y 确认替换。
如果不想逐个确认...
Eamcs 有一个命令,叫 replace-string,但是默认不绑定至任何键位。如果要运行它,我们先按 M-x ,再手动输入 replace-string。
保存和退出¶
我们已经做好了所有更改,是时候保存了。按下 C-x C-s ,Emacs 就会保存未更改的内容。
如果要退出 Emacs,按下 C-x C-c。
退出且不保存
当未保存但是按了退出键时,Emacs 会问你需不需要保存,此时输入 n 就可以不保存并退出。
重置所有内容¶
Emacs 的 revert-buffer 命令能删除所有没保存的内容,但是默认不绑定至任何键位。先按 M-x ,手动输入 revert-buffer 来执行它。
关于更多¶
受限于我们的专门性,我们不能提供详尽的教程。如果对 GNU Emacs 感到有兴趣,可以前往其他专业性教程进行学习。