美文网首页
【转】Emacs中的文件操作:dired mode

【转】Emacs中的文件操作:dired mode

作者: p1uxtar | 来源:发表于2019-04-22 19:05 被阅读0次

    在了解了dired mode后,今天才遇到需要使用的实例:将多个文件重命名并修改扩展名。

    用到了标记的操作m,与未标记互换的t,以正则方式替换文件名的% R,均学习自这篇文章

    DIRctory EDitor, emacs中的文件管理器.
    dired是直接对硬盘文件进行操作,三思而后行!

    注 :
    []中的符号的意义
    [*] 作用在已标记的所有文件(目录)或光标所在当前文件(目录)上。
    [p] 用前缀参数表示文件个数,从当前文件开始,正数向下、负数向上。
    [u] 用前缀参数改变默认行为。对于设置标记的命令一般变为去掉标记。
    [x] 需要加载 dired-x。

    1. 查看帮助

    • ? 简单帮助
    • h 模式帮助

    2. 移动光标

    • n, p, SPC 上、下移动光标 [p]
    • C-n, C-p 上、下移动光标 [p]
    • M-{, M-} 已标记的文件之间移动 [p]
    • C-M-p, C-M-n 缓冲中的子目录间移动 [p]
    • <, > 缓冲中的目录行间移动 [p]
    • C-M-u 缓冲中的目录树上移动 [p]
    • M-g 光标移动到某个文件上
    • M-G 光标移动到某个缓冲中的子目录上,(用 i 插入的)

    3. 标记文件

    • m 标记文件,下移一行 [p]
    • u 去掉标记,下移一行 [p]
    • U 去掉缓冲中所有的标记
    • M-Backspace 去掉缓冲中所有的某个标记,缺省为 * 标记
    • Backspace 并去掉上一行标记,并上移一行 [p]
    • t 标记/未标记互换
    • D 删除所有标记的文件/目录 [*]
    • d 设置“删除标记”(字符D),并且光标下移一行 [p]
    • x 删除用 d 标记的文件/目录
    • ~ 将缓冲中备份文件做删除标记 [u]
    • & 没用的文件,做删除标记
    • # 将缓冲中自动保存的文件做删除标记 [u]
    • . 按备份文件版本,将备份文件做删除标记 [u]
    • % g 标记所有“含有”regexp 的文件 [u]
    • * * 标记所有可执行文件 [u]
    • * . 标记所有同扩展名文件 [ux]
    • * / 标记所有目录 [u]
    • * @ 标记所有符号连接 [u]
    • * c 改变标记的符号
    • % d 通过匹配 regexp 标记删除
    • % m 通过匹配 regexp 标记 [u]

    4. 复制、移动、创建 文件或目录以及连接

    • C-x C-f 创建文件
    • + 创建目录
    • R 文件的重命名/移动 [p*]
    • C 复制文件 [*]
    • S 创建文件的 Symbol link (绝对路径) [p*]
    • Y 创建文件的 Symbol link (相对路径) [px*]
    • H 创建文件的 Hard link [p*]
    • % C 复制匹配 regexp 的文件 [p*]
    • % S 创建匹配 regexp 的 Symbol link (绝对路径) [p*]
    • % Y 创建匹配 regexp 的 Symbol link (相对路径) [p*]
    • % H 创建匹配 regexp 的 Hark link [p*]
    • w 复制文件名,如果通过 C-u 传递一个前缀参数 0 ,则复制决定路径名, 如果只是 C-u 则复制相对于 dired 当前目录的相对路径。

    5. 修改文件名、属性

    • M 修改文件 rwx 权限属性 [*]
    • G 修改文件 Group 属性 [p*]
    • O 修改文件 Owner 属性 [p*]
    • T 修改文件的时间戳 [p*]
    • % l 文件名逐一改为小写 [p*]
    • % u 文件名逐一改为大写 [p*]
    • % R, % r 重命名/移动匹配 regexp 的文件 [p*]

    6. 访问文件,目录

    • e, f, RET 打开文件或目录
    • a 打开文件或目录,并替换当前缓冲
    • v 使用 view 模式查看文件,q 退出,有些文件使用外部查看程序调用
    • o 另一个窗口中,打开文件或目录
    • C-o 另一个窗口中,打开文件或目录,但当前窗口不变
    • F 打开(多个)文件 [x*]
    • I 使用 Info 模式查看文件
    • N 使用 man 模式查看文件,若有前缀参数,提示输入处理命令 [ux*]
    • V 使用 RMAIL 模式查看文件 [x]

    7. 退出

    • ^ 访问目录的父目录,若有前缀参数在另外的窗口中打开 [u]
    • q 退出缓冲,若有前缀参数则关闭缓冲 [u]

    8. 隐藏/刷新缓冲中内容

    • s 互换缓冲中“文件名/时间”排序 [u]

    • C-u s 修改传递给 ls 的参数,即修改每行的内容

    • M-o 隐藏/显示部分次要文件,使缓冲更简便,若有前缀参数标记隐藏的文件 [ux]

    • $ 隐藏/显示当前目录中内容 [p]

    • M-$ 隐藏/显示缓冲中所有目录内容

    • k 隐藏文件,按 g 可以再显示出来 [p*]

    • l 刷新缓冲文件 [p*]

    • g 刷新缓冲所有文件

    • C-/, C-_, C-x u dired 模式的 undo

    • i 把当前行的子目录插入缓冲中

    • C-u k 把光标放在子目录的header上按此组合,将会把子目录内容从当前buffer移除

    9. 其他

    • = 比较文件
    • M-= 文件和备份之间比较,若有前缀参数,提示输入 diff 选项 [u]
    • w 复制文件名到 kill-ring [p*]
    • Z 压缩/解压缩文件 [p*]
    • X 在文件上执行 shell 命令 [p*]
    • B 编译(Emacs Lisp)文件 [p*]
    • L 加载(Emacs Lisp)文件 [p*]
    • y 给出文件类型信息 (通过 file 命令)
    • P 打印文件 [p*]

    10. dired-x.el 中的其他有用的函数

    • dired-mark-extension 按后缀标记
    • dired-flag-extension 按后缀标记删除
    • dired-clean-patch 标记删除 patch 文件
    • dired-clean-tex 标记删除 tex 编译文件
    • dired-very-clean-tex 标记删除 tex 编译文件
    • dired-jump 跳转到当前缓冲所在目录
    • dired-jump-other-window 在另一个窗口中跳转到当前缓冲所在目录
    • dired-omit-here-always 在当前目录生成 .dired 文件

    应用实例:交互查找替换多个文件中的字符串

    1. Call dired to list files in dir, or call find-dired if you need all sub directories;

    2. Mark the files you want. You can mark by regex by typing 【% m】.

    3. Type Q to call “dired-do-query-replace-regexp”.

    4. Type your find regex and replace string.

    5. For each occurrence,

      • y to replace
      • n to skip
      • Ctrl+g to abort the whole operation
      • ! to replace all occurrences in current file without asking
      • N to skip all possible replacement for rest of the current file
      • YTo do the replacement on all files without further asking
    6. Call ibuffer to list all opened files. Type * u to mark all unsaved files, type S to save all marked files, type D to close them all.

    这篇博文应该是更全面的解释。

    相关文章

      网友评论

          本文标题:【转】Emacs中的文件操作:dired mode

          本文链接:https://www.haomeiwen.com/subject/lebugqtx.html