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