【问题标题】:remove "-" of the file names in emacs dired mode在 emacs dired 模式下删除文件名的“-”
【发布时间】:2014-11-21 07:32:40
【问题描述】:

我想在可编辑目录模式下删除文件名的“-” 下面是正文

  • -rw-r--r--+ 1 dayua mkpasswd 663 Nov 14 18:11 Add-Binary.py
  • -rwxr-xr-x+ 1 dayua mkpasswd 799 Nov 14 18:11 add-two-link-list.py
  • -rw-r--r--+ 1 dayua mkpasswd 571 Nov 14 18:11 Anagrams.py
  • -rwxr-xr-x+ 1 dayua mkpasswd 1041 Nov 14 18:11 Balanced-Binary-Tree.py
  • -rwxr-xr-x+ 1 dayua mkpasswd 1241 Nov 14 18:11 Best-profit-III.aux.py
  • -rwxr-xr-x+ 1 dayua mkpasswd 830 Nov 14 18:11 Best-Time-to-Buy-and-Sell-Stock-II.py
  • -rwxr-xr-x+ 1 dayua mkpasswd 1605 Nov 14 18:11 Best-Time-to-Buy-and-Sell-Stock-III.py
  • -rw-r--r--+ 1 dayua mkpasswd 5323 Nov 20 14:48 Binary-Search-Best-Practice.py

请给点建议。

【问题讨论】:

  • 你想做什么?您是想更改文件系统中文件的文件名,还是只想查看不带“-”号的文件?

标签: emacs elisp


【解决方案1】:

简短回答:进入 dired 可编辑模式(又名wdired)后,转到缓冲区的开头并执行 M-% - RET RET !

M-% 是query-replace 的快捷方式;它将提示您要替换的内容(-)和替换内容(空字符串),然后它将使您进入交互模式,其中键 ! 告诉它替换所有匹配项。

wdired 将正确处理(替换时)dired 列表的权限部分的“-”字符。

【讨论】:

  • 非常感谢。我有一个更复杂的案例。如果我上面有纯文本,我只想删除最右边的文件名,不包括左边的属性,我该怎么办?
  • 我不确定您的示例中的“最右边的文件名”和“左边的属性”是什么。
  • "-rw-r--r--+ 1 dayua mkpasswd 663 Nov 14 18:11 Add-Binary.py" 只需从 "Add-Binary.py" 中删除 "-",不包括文本“-rw-r--r--+”
  • 如果您使用 wdired 模式,Emcas 应该忽略替换该文本
【解决方案2】:

我的第一反应是录制键盘宏,尤其是如果这只是一次更新的话。

C-x (                        ; to begin macro
C-e                          ; to end of line
M-<space>                    ; mark beginning of region
C-r :                        ; search backward to time delimiter (:)
M-x replace-string - <blank> ; replace - with nothing
C-a                          ; beginning of line
C-n                          ; next line
C-x )                        ; end macro

那么这只是重复宏直到完成的问题

C-x e

如果你有很多行,你可以在宏调用前加上重复次数(本例中为 50)

<ESC> 50 C-x e

我很想学习任何正则表达式解决这个问题的方法!

【讨论】:

    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多