我正在使用auto-complete-mode
我认为非常棒的。我也是它的忠实粉丝,linum-mode
但是当两者一起使用时,我遇到了一个非常恼人的问题,尤其是当我在一个新缓冲区(或一个只有很少行的缓冲区)中工作时。
基本上缓冲区是“x”行长,但是当自动完成启动时,它会将行“添加”到缓冲区中,因此linum-mode
会不断切换,例如,在一列或两列上显示行号之间,这取决于是否auto-complete
建议完成或不。
因此,您键入一个句子,您会看到缓冲区的内容在每次按键时都从左到右疯狂地移动。这真的很烦人。
我认为解决方案涉及配置linum-format变量,但我不知道如何。
理想情况下,如果我的 linum 格式是:
- 动态的
- 右对齐
- 考虑到缓冲区的行数比缓冲区实际的行数多
我的理由是,auto-complete
建议的建议不超过“y”建议,因此,两者将开始很好地配合。
例如,如果 'y' 设置为 20 并且我的缓冲区有 75 行,那么 linum 应该使用两列:因为无论我在哪里auto-complete
,都不应使缓冲区“大于”99 行。
相反,如果 'y' 仍然设置为 20 并且我的缓冲区有 95 行,那么linum
应该使用三列,因为否则如果我接近缓冲区的末尾并且auto-complete
踢我的缓冲区将开始左右“摆动”当我打字的时候。
我宁愿不为linum
.
我想使用“动态但总是至少两列”会以某种方式解决大多数烦恼,但我所描述的仍然会很棒。
PS:我意识到我的“修复”意味着 linum 将始终显示在至少两列上,我对此很好......只要它保持右对齐并使用 2、3 或 4 列,具体取决于需求。