http://www.ibm.com/developerworks/cn/education/aix/au-emacs5/section2.html
进入 Dired 模式的方法很简单,只要键入 ``ESC-x dired''即可。此时的 minibuffer 会显示出如下 的文字:
Dired (directory):
``:'' 之後是目前所在的目录,此时可以修改目录名。确定所要 使用的目录,按下 RET 後,系统会另开启一个视窗来显示此 目录下的所有档案。之後就可以对这些档案做运作。 Dired 所使用 的缓冲区是一个唯读(read-only)的缓冲区,所以 mode line 会出现二个 %% 来表示其为唯读的状态。如果要缓冲区的唯读 状态改为可读,可以键入Ctrl-x Ctrl-q 的指令,将缓冲区的状态改变。 运作此缓冲区有其特别的方法,因此对此缓冲区做编辑并无实质上 的作用。以下就介绍运作 Dired 的方法:
- 在 Dired 中删除档案
- Dired 最基本的指令,就是将要删除的档案做上旗标(flag)之後, 再将有旗标的档案删除。
- d
- 将游标移至所欲删除的档案列,键入 d。此列的最前方会出现 D,这就是删除的旗标。此时的游标会移至此列的下一列。
- u
- 若想放弃已定好的旗标,可以键入 u 使萤幕上的 D 消失。
- x
- 键入指令 d 只是将要删除的档案先做上旗标,并未真正执行 删除的动作。只有键入 x 才会将所有做上旗标的档案删除。 执行删除档案之前,会先询问是否真要删除的意见。此时如果 回答 ``yes''则执行删除的动作,若回答 ``no'' 不执行删除的动作, 但旗标依然存在著。
- 在 Dired 中将多个档案同时做上旗标
-
- -#
- 键入 #,系统会自动将所有的自动储存的档案(auto-save file) 做上删除的旗标。
- ~
- 键入 ~,系统会自动将所有的备份档(backup file)做上删除 的旗标。
- %d regexp RET
- 将所有适合的 regular expression 档案做上删除的旗标。
- 所有做上旗标的档案要执行删除的动作,都必需执行指令 x。
- 在 Dired 中访问档案
-
- f(dired-find-file)
- 如果想要访问目前游标所在列的档案,只要在此列上键入 f 即可。 此时,档案的内容会显示在原先显示 Dired 缓冲区的视窗上。 使用此方法访问档案,就如同以 Ctrl-x Ctrl-f 访问档案一样。
- o(dired-find-file-other-window)
- 此方法也是用来访问档案,但与键入 f 有些不同之处。键入 o 後,所访问的档案会出现在另一个视窗上而游标也会移至 所访问的视窗,显示 Dired 缓冲区的视窗并未消失在萤幕上。
- Ctrl-o(dired-display-file)
- 此方法与键入 o 雷同,二者不同之处在於键入 Ctrl-o 後所访问的档案会出现在另一个视窗上,但游标不会移至所访问 档案的视窗,依然留在显示 Dired 缓冲区的视窗上。
- v(dired-view-file)
- 此指令仅供流 档案之用,因为以此而开启的档案是唯读档案。
- 将 Dired 的档案做上标记
- m(dired-mark)
- 将目前游标所在的档案做上标记 ``*''。如果给予数值引数, 则做上标记的档案数目会依所给予的数目而定。
- *(dired-mark-exectables)
- 将所有的可执行档(executable files)做上标记 ``*,若给予 数值引数。则会将所有做上标记的可执行档的标记取消(unmark)。
- @(dired-mark-symlinks)
- 将所有的 symbolic files 做上标记 ``*,若给予数值引数。则会将 所有做上标记的 symbolic files 档的标记取消(unmark)。
- /(dired-mark-directories)
- 将所有为目录的档名,但除了 ``.'' 与 ``..'' 之外, 均做上标记 ``* 。若给予数值引数,则会将所有做上标记的 目录名称的标记取消(unmark)。
- ESC-DEL markchar(dired-unmark-all-files)
- 消除所有以字元(character)( markchar) 做为标记的记号。 如果给予数值引号,则在消除每一个记号时,会询问是否要 消除记号。 回答 ``y'' 则表示要将记号消除,回答 ``n'' 则表示 不要消除已做好的记号。若此时键入 !,则表示消除其余的记号 不再询问意见。
- c old new(dired-change-marks)
- 使用此指令,可将原本以 old 为标记的记号,换成以 new 为标记的记号。
- %m regexp RET(dired-mark-files-regexp)
- 可使用regular expression ,将具有某一类型的档案做上标记。
- 在 Dired 中的运作方式,有几件事情必需注意:
-
- 如果给予指令数值引数 n 时,此时指令所运作的档案是从 目前游标所在的档案起往後算 n 个档案(包括游标所在的档案)。 如果给予负数的数值,则往游标所在处之前算 n 个档案(包括 游标所在的档案)。
- 如果不给予任何的数值引数,则指令的运作范围会以做了 标记的档案为主。
- 如果不给予数值引数也不对任何档案做标记,则指令只对 目前游标所在列的档案运作。
- 所有运作 Dired 缓冲区的指令都是大写的英文字母,所有的 指令都是使用minibuffer 来接收所需的讯息。
以下就是运作 Dired 缓冲区的指令:
- C new RET (dired-do-copy)
- 拷贝档案。若有多个档案同时要拷贝,则引数 new 代表 档案所要拷贝到的目录。若只拷贝一个档案,可利用此引数 new 将档案从新命名。
- R new RET (dired-do-rename)
- 更换档名。若有多个档案同时要换档名,则引数 new 代表档案 换名称後所要放置的目录。若只有一个档案,此引数 new 代表更换的档名。当档名更换完毕, Dired 缓冲区的档案名称 会自动跟著更换。
- H new RET (dired-do-hardlink)
- 将档案标上 hard links 的标记。引数 new 代表 hard links所要连接 的目录。若只有一个连接时,此引数 new 代表连结的名称。
- S new RET (dired-do-symlink)
- 将档案标上 symbolic links 的标记。引数 new 代表 symbolic links 所要连接的目录。若只有一个连接时,此引数 new 代表连结的名称。
- M midespec RET (dired-do-chmod)
- 更改特定档案的模式(mode,permission bits)。此程式使用 chmod 的程式,所以 式适用的引数。
- G newgroup RET (dired-do-chgrp)
- 改变特定档案的团体(group)为新的团体( newgroup)。
- O newowner RET (dired-do-chown)
- 改变特定档案的拥有者(owner)为新的拥有者( owner)。
- P command RET (dired-do-print)
- 列印特定的档案,可利用 minibuffer 输入列印的指令 command。
- Z (dired-do-compress)
- 压缩或反压缩特定的档案。如果档案已被压缩则将其反压缩, 反之则将档案压缩。
- L (dired-do-load)
- 载入特定的 EMACS Lisp 档案。
- B (dired-do-byte-compile)
- 位元编译(byte compile)特定的 EMACS Lisp 档案。
- Dired 在编辑远方档案与使用 ftp 的用法 使用 EMACS 的远方编辑或使用 EMACS 来做 ftp 时,若只 给予目录名,系统会进入 Dired 的模式。此时可使用运作 Dired 缓冲区的指令来操作所要的档案。至於何为远方的编辑会在下一节 中讨论。