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 源,并执行这段代码:
(require'package) (add-to-list 'package-archives '("melpa"."https://melpa.org/packages/")t)- 依次运行以下命令,刷新软件包列表并安装:
M-x package-refresh-contents M-x package-install RET nerd-icons-dired RET- 在 init.el 中加入启用配置:
(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