【问题标题】:hl-line-mode + scroll-step + highlight-parentheses -> emacs goes crazyhl-line-mode + scroll-step + highlight-parentheses -> emacs 发疯了
【发布时间】:2012-04-03 17:15:00
【问题描述】:

昨天我正在自定义我的 emacs。今天我一直在用emacs工作,突然偶然发现了一个有趣的效果。经过一番调查,我发现了导致这种效果的最小初始化。仍然效果似乎不稳定。我希望你能重现它。

首先,评估以下 elisp 代码:

(add-to-list 'load-path "~/.emacs.d/")
(require 'highlight-parentheses)
(global-hl-line-mode 1)
(setq scroll-step 1)

为了确保没有其他扩展在路上,我使用带有此代码的文件作为初始化文件。

当然,您还需要 highlight-parentheses 模块。

然后你需要一个可以显示效果的文件。不幸的是,我无法弄清楚揭示这种效果的确切条件。尝试Visible bookmarks extension 的 README.md 文件。我很抱歉要求下载一些特定的文件来观察效果,​​但我不知道其他方式。

如果你仍然没有被吓跑,那么打开 README.md 文件并打开高亮括号模式:

M-x highlight-parentheses-mode RET

然后按住向下箭头键。指针将开始逐行向下移动。但是当它离开第 45 行(此时位于屏幕底部)时,它突然跳回到屏幕中间(第 24 行)。什、什么!?

每当您接近第 46 行时,它就会发生在屏幕底部边缘的正下方。此外,它似乎也会影响其他扩展(例如,视觉书签开始做出奇怪的事情,比如打乱书签顺序)。

我是 elisp 的新手,所以我几乎找不到这三种模式的源代码中的错误。如果这根本是一个错误。

如果重要的话,我在 Debian 挤压下使用 emacs 23.2.1。对不起我的英语,感谢您的关注。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    这应该在 Emacs-24, IIUC 中得到修复。顺便说一句,请删除您的(add-to-list 'load-path "~/.emacs.d/"),因为 .emacs.d 目录包含名称会发生​​冲突的文件。 IE。如果你想把 Elisp 包放在 ~/.emacs.d 的某个地方,把它们放在它的子目录中。

    【讨论】:

    • 所以只要外包在.emacs.d/somedir,就没有问题?
    • 我没明白他们会和什么发生冲突?这个目录有什么特别之处?将所有 .el 文件移动到子目录没有帮助。
    • .emacs.d 问题与您的问题无关(实际上您可以从示例代码中删除该行并重现相同的问题)。 Emacs 存储在 ~/.emacs.d 配置文件中(例如 ~/.emacs.d/foo.el),其名称可能与 foo.el 包发生冲突。
    猜你喜欢
    • 2011-05-28
    • 1970-01-01
    • 2011-04-02
    • 2016-10-27
    • 1970-01-01
    • 2010-12-18
    • 2022-12-02
    • 1970-01-01
    • 2013-04-01
    相关资源
    最近更新 更多