有没有一款 Emacs 工具可以将目录结构显示为树形结构?

15

我知道 Speedbar(我更喜欢与其他工作在同一框架中的结构),而且 dired 显示了太多信息。我想要像 svn-status 树形表示那样的东西。有类似的东西吗? 谢谢。

编辑:下面是我发现最直观的:

我正在使用来自 这里 的以下 hack 与 Speedbar 一起使用。需要注意的是,我必须使用注释的“尝试这个”部分。

  (require 'speedbar)
  (defconst my-speedbar-buffer-name "SPEEDBAR")
  ; (defconst my-speedbar-buffer-name " SPEEDBAR") ; try this if you get "Wrong type argument: stringp, nil"
  (defun my-speedbar-no-separate-frame ()
    (interactive)
    (when (not (buffer-live-p speedbar-buffer))
      (setq speedbar-buffer (get-buffer-create my-speedbar-buffer-name)
            speedbar-frame (selected-frame)
            dframe-attached-frame (selected-frame)
            speedbar-select-frame-method 'attached
            speedbar-verbosity-level 0
            speedbar-last-selected-file nil)
      (set-buffer speedbar-buffer)
      (speedbar-mode)
      (speedbar-reconfigure-keymaps)
      (speedbar-update-contents)
      (speedbar-set-timer 1)
      (make-local-hook 'kill-buffer-hook)
      (add-hook 'kill-buffer-hook
                (lambda () (when (eq (current-buffer) speedbar-buffer)
                             (setq speedbar-frame nil
                                   dframe-attached-frame nil
                                   speedbar-buffer nil)
                             (speedbar-set-timer nil)))))
    (set-window-buffer (selected-window) 
                       (get-buffer my-speedbar-buffer-name)))
4个回答

6

我想快速打印一棵树,所有基于Emacs的解决方案似乎要么非常陈旧,要么非常庞大(例如ECB / CEDET),而我对其了解不够。为了快速解决问题,我做了以下操作:

sudo apt-get install tree

然后从dired缓冲区中进行操作。

M-! tree --dirsfirst RET

看这里!目录树不需要任何特定的库,额外加分的是使用 tree -f 命令可以输出带有完整路径的目录树,这使得直接从目录树输出缓冲区跳转到文件更加明显和容易,只需按下 C-x C-f 快捷键即可。


4

2

有一个Emacs代码浏览器。据我所知,如果使用最新版本的Emacs可能会比较棘手或困难,因为它使用了一些最近通过CEDET集成到Emacs中的工具。


2
我建议使用 NeoTree。它易于安装和使用。

NeoTree screenshot, from EmacsWiki


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