修复自动完成模式和 linum 模式的烦恼

2023-11-21

我在用着auto-complete-mode我认为这太棒了。我也是的忠实粉丝linum-mode但是当两者一起使用时,特别是当我在新的缓冲区(或行数很少的缓冲区)中工作时,我遇到了一个非常恼人的问题。

基本上缓冲区的长度是“x”行,但是当自动完成启动时,它会“添加”行到缓冲区,所以linum-mode不断切换,例如在一列或两列上显示行号之间,具体取决于是否auto-complete正在建议是否完成。

因此,您输入一个句子,然后您会看到缓冲区的内容在每次按键时疯狂地从左向右移动。这是really恼人的。

我认为解决方案涉及配置linum 格式变量,但我不知道如何。

理想情况下,如果我的 linum 格式是:

  • dynamic
  • 右对齐
  • 考虑到缓冲区的行数比缓冲区实际的行数多“y”

我的理由是auto-complete不得提出超过“y”的建议,因此,两者将开始很好地合作。

例如,如果“y”设置为 20 并且我的缓冲区有 75 行,那么 linum 应该使用两列:因为无论我在哪里auto-complete不应使缓冲区“大于”99 行。

相反,如果 'y' 仍然设置为 20 并且我的缓冲区有 95 行,那么linum应该使用三列,因为否则如果我接近缓冲区的末尾并且auto-complete当我打字时,我的缓冲区中的踢将开始左右“摆动”。

我不想硬编码“3 列宽”linum.

我想使用“动态但总是至少两列”会以某种方式解决大多数烦恼,但仍然像我所描述的那样会很棒。

PS:我意识到我的“修复”意味着 linum 将始终显示在至少两列上,我对此很满意......只要它保持右对齐并使用 2、3 或 4 列,具体取决于需求。


只需将以下行放入 .emacs 即可解决此问题。它位于 auto-complete.el 中。

(ac-linum-workaround)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复自动完成模式和 linum 模式的烦恼 的相关文章

随机推荐