删除 Emacs 模式下的"-"文件名



我想在可编辑模式下删除文件名的"-"以下是文字

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

请给出一些建议。

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

M-%是query-replace的快捷方式;它会提示你想要替换什么(-)和什么(空字符串),然后它会把你置于交互模式,键!告诉它替换所有出现的情况。

wdired 将正确处理(替换时不包含)DIRED 列表权限部分的"-"字符。

我的第一直觉,特别是如果这只是一次性更新,是录制键盘宏。

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

我很有兴趣了解这个问题的任何正则表达式解决方案!

相关内容

  • 没有找到相关文章