3

我正在进行一个包含一万多个文件的项目。我希望能够轻松浏览这些文件。

iswitchb有这么多文件,模式非常糟糕;icicles速度更好,但我喜欢 iswitchb 的 UI。

建议?


Stefan 请求在iswitchb-mode执行时运行分析器:

- call-interactively                                             2740  79%
  - iswitchb-buffer                                              2628  76%
    - iswitchb                                                   2628  76%
      - iswitchb-read-buffer                                     2628  76%
        - completing-read                                        2599  75%
          - completing-read-default                              2596  75%
            - read-from-minibuffer                               2596  75%
              - iswitchb-post-command                            1034  30%
                - iswitchb-exhibit                               1034  30%
                  - iswitchb-set-common-completion                947  27%
                    - iswitchb-find-common-substri                925  26%
                      - mapcar                                    925  26%
                        - iswitchb-word-matching-s                922  26%
                          + iswitchb-case                          10   0%
                            string-match                            1   0%
                  + iswitchb-set-matches                           63   1%
                  + iswitchb-completions                           24   0%
              + redisplay_internal (C function)                   869  25%
              - timer-event-handler                               499  14%
                - byte-code                                       499  14%
                  - apply                                         499  14%
                    - jit-lock-context-fontify                    491  14%
                      + buffer-list                                15   0%
                    + show-paren-function                           6   0%
                    + display-time-event-handler                    2   0%
              + call-interactively                                 34   0%
              + icicle-unhighlight-lighter                          3   0%
              + iswitchb-pre-command                                1   0%
        + iswitchb-make-buflist                                    15   0%
4

5 回答 5

3

刚刚在具有 10000 个缓冲区的会话中尝试了 iswitchb,我确实看到它的速度非常慢。

我建议您尝试一下M-x icomplete-mode:在 Emacs-24.3 中,默认C-x b完成已经接受子字符串匹配,就像 iswitchb 一样,所以唯一缺少的功能是 提供的功能icomplete-mode,但icomplete-mode在我的会话中仍然非常快,有 10000 个缓冲区。基本上,从 Emacs-24.3 开始,iswitchb 被icomplete-mode.

于 2013-11-06T19:13:31.567 回答
3

如果您想使用Icicles,但您希望交互行为更接近iswitchb,那么您可以尝试几种自定义,具体取决于您喜欢iswitchb交互的哪些部分。请参阅Icicles文档的这一部分:Icicles - Ido 和 IswitchB

Wrt 使用大量文件:请记住,您还可以使用Icicles定义项目- 您一起使用的相关文件集。这与etags和其他方法一样,是预过滤可能的文件名候选的一种方法。

于 2013-11-06T00:23:40.877 回答
0

你的数以万计的文件可以组织成有用的集合——甚至可能是重叠的集合吗?

书签对这种组织有很大帮助。使用Bookmark+,您可以添加书签:

  • 单个文件。
  • 文件集。
  • 单独的 Dired 缓冲区,记录它们的标记、“省略”设置和插入的子目录。
  • Dired 缓冲区的稀疏树,基于标记的子目录,递归地。
  • Emacs 桌面。
  • 书签文件,即书签集。
  • 书签列表显示及其设置(标记、省略等)。

你可以标记书签,美味的风格。标签是您用来对书签或文件(即自动文件书签)进行分类的名称(任意字符串)。您可以为书签分配任意数量的标签。标签甚至可以有关联的(任意的)Lisp 值。

您可以多次为同一个文件(或文件集)添加书签,并为这些不同的书签赋予不同的标签。

IOW,有多种方法可以定义文件和文件集的不同“视图”。

于 2013-11-06T17:35:58.183 回答
0

你可以试试 Helm。它可用于切换缓冲区等等:http ://amitp.blogspot.hu/2012/10/emacs-helm-for-finding-files.html

于 2013-11-06T06:57:29.533 回答
0

你试过这个吗?

iswitchb-max-to-show is a variable defined in `iswitchb.el'.
Its value is nil

Documentation:
If non-nil, limit the number of names shown in the minibuffer.
If this value is N, and N is greater than the number of matching
buffers, the first N/2 and the last N/2 matching buffers are
shown.  This can greatly speed up iswitchb if you have a
multitude of buffers open.

You can customize this variable.
于 2013-11-06T02:31:26.657 回答