我刚开始使用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的新手,坦白说我甚至不理解我上面写的内容,我只是想从我在网上找到的教程中拼凑出我想要的设置,所以原谅任何可能已经陷入困境的愚蠢行为我的问题。提前谢谢!
答案 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-limit
为added,设置了“要在Deft浏览器中列出的最大文件数”。
因此,要复制trmdttr's configuration answer for 30 files,请将其添加到您的配置中:
(setq deft-file-limit 30)