Dired:目录编辑器
Dired 会创建一个 Emacs Buffer,其中包含某个目录的文件列表,并且还可以选择性地包含该目录下的一些子目录的内容。
你可以使用 Emacs 的常规命令在这个 Buffer 中移动和浏览,也可以使用 Dired 专用命令对列表中的文件进行操作。
Dired 既支持本地目录,也支持远程目录。
Dired 缓冲区通常是只读的,不允许在其中插入文本。(不过,Wdired 模式允许这样做,详情请参阅《编辑 Dired 缓冲区》章节。)
普通的可打印字符(例如 d 和 x)被重新定义为 Dired 的专用命令。
一些 Dired 命令会对当前文件(即光标所在行对应的文件)进行标记(mark)或删除标记(flag);其他命令则对已标记的文件进行操作。
你可以先标记某些文件,以便通过一条命令对它们进行批量操作。Dired-X 扩展包为 Dired 模式提供了各种额外功能。
详情请参阅《Dired 扩展用户手册》(Dired Extra User's Manual)中的 Dired-X 章节。
你也可以使用 C-x C-d(list-directory 命令)查看某个目录中的文件列表。
与 Dired 不同,这个命令不允许你对列出的文件进行操作。
详情请参阅 File Directories(文件目录) 章节。
Emacs Dired 操作速查表
Dired(Directory Editor)是 Emacs 内置的文件管理器。以下整理日常使用中最实用的快捷键,适用于 GUI 和 TUI。
1. 目录导航
| 快捷键 | 功能 |
|---|---|
C-x d |
打开 Dired |
C-x C-j |
定位当前文件(需加载 dired-x) |
RET |
打开文件 / 进入目录 |
^ |
返回上一级目录 |
n / p |
下一个 / 上一个文件 |
j |
按文件名跳转 |
g |
刷新目录 |
q |
退出当前 Dired 视图 |
2. 文件操作
| 快捷键 | 功能 |
|---|---|
+ |
创建目录 |
C-x C-f |
新建文件(保存时创建) |
C |
复制文件(Copy) |
R |
移动 / 重命名(Rename) |
D |
删除文件(需确认) |
d |
标记待删除 |
x |
执行标记的删除 |
M |
修改文件权限(chmod) |
O |
修改文件所有者(chown) |
G |
修改文件所属组(chgrp) |
3. 文件标记与批量操作
| 快捷键 | 功能 |
|---|---|
m |
标记文件(Mark) |
u |
取消当前标记 |
U |
取消所有标记 |
t |
反转标记 |
% m |
按正则表达式标记文件 |
* / |
标记所有目录 |
* . |
按扩展名标记文件 |
* ! |
取消所有标记 |
标记多个文件后,可以直接按 C 批量复制、R 批量移动。
4. 搜索与排序
| 快捷键 | 功能 |
|---|---|
C-s |
搜索当前文件列表 |
s |
切换名称 / 时间排序 |
M-x find-name-dired |
递归搜索文件名 |
M-x find-grep-dired |
递归搜索文件内容 |
M-x dired-hide-details-mode |
隐藏 / 显示文件详细信息 |
5. 高级操作
| 快捷键 | 功能 |
|---|---|
C-x C-q |
进入 Wdired,直接编辑文件名 |
C-c C-c |
确认 Wdired 批量重命名 |
C-c C-k |
取消 Wdired 修改 |
! |
对文件执行 Shell 命令 |
& |
异步执行 Shell 命令 |
Z |
压缩或解压文件 |
i |
在当前 Buffer 插入子目录列表 |
= |
比较当前文件与另一个文件 |
h |
查看 Dired 简要帮助 |
C-h m |
查看 Dired 模式完整帮助 |
6. 最值得记住的 10 个快捷键
| 快捷键 | 功能 |
|---|---|
^ |
上一级目录 |
RET |
打开文件 / 目录 |
+ |
创建目录 |
C |
复制 |
R |
移动 / 重命名 |
m |
标记 |
u |
取消标记 |
d → x |
标记并执行删除 |
g |
刷新 |
C-x C-q |
批量重命名 |
使用提示: Dired 的快捷键区分大小写。例如 d 是标记待删除,而 D 是直接执行删除命令。
如果你想保存到 Org Mode 笔记,我也可以帮你将这份速查表转换成标准的 .org 表格格式,方便直接复制到 Emacs。
Dired 图标插件和配套字体
需要一个 Dired 图标插件和配套字体。推荐 nerd-icons-dired,它依赖的 nerd-icons 会随安装自动装上。插件说明 (https://github.com/rainstormstudio/nerd-icons-dired)
你的配置目前没有额外的软件包源,可以按下面配置:
- 在 init.el 中加入 MELPA 源,并执行这段代码:
bash
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
- 依次运行以下命令,刷新软件包列表并安装:
bash
M-x package-refresh-contents
M-x package-install RET nerd-icons-dired RET
- 在 init.el 中加入启用配置:
bash
(use-package nerd-icons-dired
:hook (dired-mode . nerd-icons-dired-mode))
终端版还需要设置字体:将终端字体设为 Nerd Font,例如 JetBrainsMono Nerd Font。图形版可以用 M-x nerd-icons-install-fonts 安装图标字体。字体说明 (https://github.com/rainstormstudio/nerd-icons.el#installing-fonts)
如果通过 SSH 使用 Emacs,字体应安装在显示终端的那台电脑上。配置量大约十行,主要工作是首次安装插件和设置字体。
官方文档:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html