2009 年,我在匹兹堡一家创业公司努力工作,在深夜编码时,我养成了使用 GNU Emacs 的习惯。Emacs 的特点是功能太强大了,无法关闭。无论您是在编写代码、撰写关于开源的文章、快速记录任务列表,甚至是播放音乐,您都可以在 Emacs 中完成所有这些操作。而且每次您认为在 Emacs 之外找到一项任务时,您都会发现一种 Emacs 模式来证明您是错的。我不关闭 Emacs 的最喜欢的原因之一是它的文件管理器,称为目录编辑器,或者简称为 Dired。
安装 GNU Emacs
Dired 包含在 Emacs 中,因此除了安装 Emacs 本身之外,没有其他安装过程。
在 Linux 上,您可以在发行版的软件仓库中找到 GNU Emacs。在 Fedora、CentOS、Mageia 和类似的发行版上
$ sudo dnf install emacs
在 Debian、Linux Mint、Elementary 和类似的发行版上
$ sudo apt install emacs
在 macOS 上,使用 Homebrew 或 MacPort。
对于 Windows,使用 Chocolatey。

(Seth Kenlon, CC BY-SA 4.0)
使用 Dired 进行文件管理
Dired 模式是一个基于文本的文件管理系统。它可以运行在图形版本的 Emacs 或终端版本的 Emacs 中,使其成为一个灵活、轻量级且被批准在 僵尸末日 期间使用的工具。
要启动它,请按 Ctrl+X,然后按 d。系统会在迷你缓冲区(Emacs 窗口底部的字段)中提示您要打开的目录。它默认为您的主目录 (~
)。
/home/tux:
total used in directory 40 available 88.1 GiB
drwx------. 17 tux tux 4096 Sep 20 15:15 .
drwxr-xr-x. 5 root root 42 Sep 14 05:29 ..
-rw-------. 1 tux tux 938 Sep 20 15:28 .bash_history
-rw-r--r--. 1 tux tux 18 Nov 6 2021 .bash_logout
-rw-r--r--. 1 tux tux 141 Nov 6 2021 .bash_profile
-rw-r--r--. 1 tux tux 492 Nov 6 2021 .bashrc
drwxr-xr-x. 16 tux tux 4096 Sep 20 14:23 .cache
drwx------. 16 tux tux 4096 Sep 20 14:51 .config
drwxr-xr-x. 2 tux tux 59 Sep 20 15:01 Desktop
drwxr-xr-x. 2 tux tux 6 Sep 15 15:54 Documents
drwxr-xr-x. 3 tux tux 166 Sep 20 15:12 Downloads
-rw-r--r--. 1 tux tux 334 Oct 5 2021 .emacs
drwx------. 2 tux tux 6 Sep 20 14:25 .emacs.d
-rw-------. 1 tux tux 33 Sep 20 15:15 .lesshst
drwx------. 4 tux tux 32 Sep 15 15:54 .local
drwxr-xr-x. 6 tux tux 81 Sep 15 16:03 .mozilla
drwxr-xr-x. 2 tux tux 6 Sep 15 15:54 Music
drwxr-xr-x. 2 tux tux 59 Sep 20 14:52 Pictures
[...]
提供的文件列表对于任何习惯于终端中的 ls -l
命令的人来说都很熟悉。从左到右
-
标识条目是否为目录(如果适用),然后列出 文件权限
-
条目的硬链接数(例如,
Desktop
条目有 1 个硬链接代表它自己,以及其中的 1 个文件) -
用户
-
组
-
已使用的磁盘空间,以字节为单位
-
上次修改时间
-
文件名
导航
要导航 Dired,您可以使用方向键或 标准 Emacs 快捷键。在本文中,我使用 Emacs 表示法:C- 表示 Ctrl,M- 表示 Alt 或 Meta。
-
C-p 或 向上 箭头:列表中的上一个条目
-
C-n 或 向下 箭头:列表中的下一个条目
-
Enter 或 v:进入选定的目录
-
^:将目录树“向上”移动到当前目录的父目录
刷新视图
Dired 不会为每个操作重新绘制屏幕,因此有时您可能需要提示它刷新。按 g 重新绘制 Dired 列表。
打开文件
您使用文件管理器的原因之一是查找文件然后打开它。Emacs 无法打开每种文件类型,但您可能会惊讶于它可以处理的文件类型之多。当然,并非它可以处理的所有内容都对您有用。例如,Emacs 可以 打开 JPEG 文件,这很好,但我很少在 Emacs 中查看 JPEG 文件,而且我肯定不会用它来编辑 JPEG 文件。
假设您正在考虑您认为 Emacs 有用的文件类型,您可以直接从 Dired 打开它们。这包括文本文件(Asciidoc、Markdown、HTML、CSS、Lua、Python 等)以及压缩的 TAR 归档文件。
要关闭您已打开的文件,请使用 C-x C-k Emacs 快捷键来调用 kill-buffer
函数。
复制文件
要将文件从一个目录复制到另一个目录,请按 C(大写字母 C
,而不是 Ctrl 键)。系统会提示您在 Emacs 窗口底部的迷你缓冲区中提供目标目录和文件名。
移动文件
移动文件令人困惑地是重命名文件(与 Linux 中使用的术语完全相反,在 Linux 中,重命名文件实际上是移动文件。)我已经使用 Dired 多年了,但我仍然记不住这个语言上的怪癖。
要重命名文件,无论您是将其重命名回当前目录还是将其重命名为其他目录,请按 R(大写 R
)。系统会提示您在 Emacs 窗口底部的迷你缓冲区中提供目标目录和新文件名。
选择文件
在 Dired 中有几种标记选择的方法。第一种是将光标放在与文件或目录条目相同的行上。如果您的光标与条目在同一行,则该条目被视为隐式选择。您在 Dired 中对文件执行的任何操作都以该文件为目标。这顺便包括“标记”文件为已选择。
要将文件标记为已选择,请在光标位于其行上时按 m。您可以标记任意数量的文件,并且每个文件都被视为已选择。要取消选择(取消标记)文件,请按 u 键。
另一种一次选择多行的方法是使用专门的选择功能。Dired 有几个,包括 dired-mark-directories
用于标记列表中的所有目录,dired-mark-executables
用于选择列表中的所有二进制可执行文件,dired-mark-files-regexp
用于标记包含正则表达式模式的文件等等。如果您不是 Emacs 的常规用户,这被认为是高级的,因为它需要您调用 Emacs 函数,但这是执行方法以及需要注意的事项。
假设您要选择列表中的所有目录
-
按 M-x 激活迷你缓冲区提示。
-
键入
dired-mark-directories
,然后按键盘上的 Return 键。 -
查看迷你缓冲区。它会告诉您已标记了多少个目录,然后告诉您将来可以使用 * / 组合键再次调用此函数。
GNU Emacs 中任何具有关联快捷键的函数都会在您以完整形式调用它后向您显示快捷键。
创建归档文件
要创建文件或选定文件的归档文件,请按 c
(小写字母 c
,而不是 Ctrl)。如果您没有选择任何内容(或在 Emacs 术语中为“标记”),则当前行将被压缩。如果您标记了文件,则它们将被压缩到一个归档文件中。在 Emacs 窗口底部的迷你缓冲区中,系统会提示您输入文件名和路径。幸运的是,Emacs 是一个智能应用程序,可以从您提供的名称中派生出目标文件类型。如果您将归档文件命名为 example.tar.xz
,则 Emacs 会创建一个带有 lzma 压缩的 TAR 归档文件,但如果您将其命名为 example.zip
,则它会创建一个 ZIP 文件。
取消操作
如果您不小心调用了您不想完成的函数,请按 C-g(Emacs 表示法中的 Ctrl+G)。根据您在函数过程中的位置,您可能必须专门在迷你缓冲区中按 C-g 才能停止提示您继续。这对于整个 Emacs 都是如此,因此请学习 Dired 的这个宝贵技巧,并将其应用于您使用的每种模式。
Emacs 始终处于打开状态
要退出 Dired,您可以按 C-x C-k 来终止 Dired 缓冲区,就像终止任何 Emacs 缓冲区一样。
要完全退出 Emacs,请按 C-x C-c。
Dired 是一个功能非常强大的文件管理器,我在这里只介绍了基本知识。有关 Dired 可以执行的完整列表,请按 h
键。
我认为 Dired 可能对那些正在使用或打算使用 Emacs 的人最有用。我可能不会选择它作为图形系统上的通用文件管理器,因为已经有很多很棒的替代方案配置为与系统的其余部分协同工作以打开文件。当然,Emacs 是无限可配置的,因此如果您真的喜欢 Dired,您可以将其设置为执行您希望它执行的任何操作。
但是,对于无头系统,我发现 Dired 是一个很棒的文件管理器。Emacs 本身就是一个强大的操作环境,而 Dired 只会增加其多功能性。打开 Emacs 后,您就拥有了一个内置的文件管理器、shell、多路复用器、文本编辑器和文件预览器。您几乎可以将 Emacs 用作您的登录 shell。
Dired 是一个优秀的基于文本的文件管理器,非常值得一看。
评论已关闭。