ido-mode区分dired-mode缓冲区名称

6
有没有好的方法可以在使用ido-mode时区分dired-mode缓冲区名称和其他类型的缓冲区?例如...在dired-mode缓冲区名称的末尾显示一个斜杠?

似乎没有直接的方法,但这个功能看起来很有用。我建议向bug-gnu-emacs@gnu.org发送一个功能请求。 - user319799
谢谢 - 不过Trey的解决方案对于ido和dired模式都很不错...可能会坚持使用这个... - hatmatrix
1个回答

7
您可以简单地更改dired-mode缓冲区,使其名称始终以/结尾。以下代码可实现此功能。
(add-hook 'dired-mode-hook 'ensure-buffer-name-ends-in-slash)
(defun ensure-buffer-name-ends-in-slash ()
  "change buffer name to end with slash"
  (let ((name (buffer-name)))
    (if (not (string-match "/$" name))
        (rename-buffer (concat name "/") t))))

然而有一个问题:当两个目录具有相同的名称时,它无法很好地解决名称冲突。 - Wei Hu
@WeiHu - 当然不是,问题并没有要求解决那个问题。我个人使用uniquify来解决名称相似的缓冲区:http://www.gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html - Trey Jackson
我的观点是,使用您的解决方案打开两个名称相同的目录会发出令人讨厌的错误消息,并且稍后打开的那个目录末尾不会有“/”。 - Wei Hu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接