灵巧模式非常慢

时间:2014-04-24 08:18:03

标签: emacs emacs24

我刚开始使用emacs24(Ubuntu附带的那个),以便使用deft mode来模仿Mac上notational velocity的行为。我的~/.emacs-d/init.el看起来像这样:

(add-to-list 'load-path "~/.emacs.d")
(require 'deft)
(setq deft-directory "~/Notes")
(setq deft-use-filename-as-title t)

为了使用txt文件加载我的文件夹。我在文件夹中有几千个文本文件,文件名包含CJK字符。现在,运行deft mode现在/非常/慢,甚至无法在文件中进行搜索。输入一个单词后,我必须等待几分钟才能显示在屏幕上并搜索笔记。即使关闭emacs也需要很长时间。我的电脑是联想W540 64位i7-4800MQ CPU @ 2.70GHz×8和23.2 GiB内存(它告诉我)。我正在运行Ubuntu 14.04。我的emacs可能有什么问题?

我是emacs的新手,坦白说我甚至不理解我上面写的内容,我只是想从我在网上找到的教程中拼凑出我想要的设置,所以原谅任何可能已经陷入困境的愚蠢行为我的问题。提前谢谢!

3 个答案:

答案 0 :(得分:3)

我很高兴被证明是错的,但我并不认为灵巧是为了与几百个文本文件一起工作"!您肯定需要某种专门的索引和搜索工具来有效地处理大量数据。

我有点过时,但我相信灵巧只是在Emacs中打开文件并使用正则表达式搜索来查找匹配(这对于较少数量的文件来说很好,但它不会缩放对你的用例)。

我能做的唯一建议是确保deft.el是字节编译的(即你有一个deft.elc文件)。否则请使用M-x byte-compile-file。但即使您目前使用未编译的版本,我也不相信这会提供您需要的性能改进,以使其成为可行的解决方案。

答案 1 :(得分:1)

我发现此解决方案限制了使用增量搜索时显示的笔记数量:https://github.com/jrblevin/deft/issues/43

  ;; Overwrite `deft-current-files` for the `deft-buffer-setup` and limit it to 30 entries
  (defun anks-deft-limiting-fn (orig-fun &rest args)
    (let
        ((deft-current-files (-take 30 deft-current-files)))
      (apply orig-fun args)))

  (advice-add 'deft-buffer-setup :around #'anks-deft-limiting-fn)

这对我有所帮助,尽管像我一样,当使用数千个音符时,灵巧仍然不是很灵活。

答案 2 :(得分:1)

从0.9版开始,变量deft-file-limitadded,设置了“要在Deft浏览器中列出的最大文件数”。

因此,要复制trmdttr's configuration answer for 30 files,请将其添加到您的配置中:

(setq deft-file-limit 30)