我在用着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(使用前将#替换为@)