重新格式化emacs缓冲区列表中的“文件”字段?

时间:2010-03-19 19:02:42

标签: emacs

上下文:使用Emacs中的缓冲区列表查看我正在做什么,选择要访问的缓冲区等。仅供参考,我使用相当深的(子)目录组织来组织我的文件

当我从同一个子目录打开大量文件时,“文件”字段主要显示所有文件的路径名部分,即我的目录层次结构中的前2-3层。所以它给了我一些不太有用的高级信息。 “缓冲区”字段显示文件名。这给了我太具体的低级别信息。

有没有办法重新格式化'文件'字段,以显示文件路径中最有用的部分,即文件包含的最后几个子目录和文件名?从字面上看,可能是路径的最后一个字符,而不是第一个字符?

2 个答案:

答案 0 :(得分:1)

我更喜欢ibuffer这样的事情而不是缓冲菜单。它允许您按名称对文件名进行分组。

例如,我的.emacs中有这个(大部分都是从emacs-fu偷来的。)

(require 'ibuffer) 
(setq ibuffer-saved-filter-groups
  (quote (("default"      
           ("MyProject"
            (filename . "/path/to/my/project/"))
           ("Programming"
            (or
             (mode . sh-mode)                 
             (mode . c-mode)
             (mode . cperl-mode)
             (mode . python-mode)
             (mode . emacs-lisp-mode)

             ;; etc
             ))
           ("Org" ;; all org-related buffers
            (mode . org-mode))                 
           ("ERC"
            (mode . erc-mode))
           ("Jabber"
            (or  ;; jabber-related buffers
             (mode . jabber-chat-mode)
             (mode . jabber-mode)
             (mode . jabber-roster-mode)
             ;; etc.; all your mail related modes
             ))))))

(add-hook 'ibuffer-mode-hook
      (lambda ()
        (ibuffer-switch-to-saved-filter-groups "default")))

(global-set-key (kbd "C-x C-b") 'ibuffer)

答案 1 :(得分:0)

这可能也会有所帮助,但它不能直接解决您的问题: Buffer Menu+

  • 您可以使用 + - 来调整BufferSize列的大小,从而为其他列提供更多空间。

  • 您可以切换列TimeMode的显示,为其他列提供更多空间。 (您也可以切换Time格式,将其缩短而不删除。)