【问题标题】:ido-mode distinguish dired-mode buffer namesido-mode 区分dired-mode缓冲区名称
【发布时间】:2010-04-25 13:57:49
【问题描述】:

有谁知道在使用 ido-mode 时区分 dired-mode 缓冲区名称和 minibuffer 中其他类型缓冲区的好方法?例如...在 dired-mode 缓冲区名称的末尾显示一个正斜杠?

【问题讨论】:

  • 似乎没有办法,但该功能看起来很有用。我建议向 bug-gnu-emacs@gnu.org 发送功能请求。
  • 谢谢 - 但是 Trey 的解决方案对于 ido 和 dired 模式都非常好......可能会坚持使用这个......

标签: emacs elisp


【解决方案1】:

您可以简单地将dired-mode 缓冲区更改为始终在其名称末尾添加/s。这段代码就是这样做的。

(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))))

【讨论】:

  • 但有一个问题:当两个目录具有相同名称时,它不能很好地解决名称冲突。
  • @WeiHu - 当然不是,问题不是要解决这个问题。我个人使用 uniquify 来解析类似命名的缓冲区:gnu.org/software/emacs/manual/html_node/emacs/Uniquify.html
  • 我的观点是,使用您的解决方案,打开两个同名目录会发出烦人的错误消息,而稍后打开的目录末尾不会有/
  • @WeiHu 知道了,已修复。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
相关资源
最近更新 更多