如何在 vim 上显示标识级别而不是制表符标记?

如何在 vim 上显示标识级别而不是制表符标记?

我的.vimrc显示垂直线,以便我可以轻松地跟踪识别块,就像几乎每个文本编辑器/IDE 一样。

if(x == 1){
|   if( y == 1){
|   |   y();
|   }
}

有什么方法可以让它更有用,并显示标识级别?我不会把它误认为是实际代码,因为我已经为它们使用了极低对比度的颜色。

if(x == 1){
1   if( y == 1){
1   2   y();
1   }
}

这对于我在工作中必须重构的一些疯狂方法中的嵌套级别非常有帮助。我目前的解决方法是使用水平窗口,这样当块开始变得疯狂时,我就可以离开顶部窗口,而底部窗口则是我导航以更改代码的地方。

附言:我已经有彩虹括号插件。但是它们不再有帮助了。

答案1

我没有足够的声望来评论你的问题,所以我会发布一个答案,如果我能找到更好的答案,我会更新它。这是我的“答案”:

这并不是你想要的,但你试过“:set list”了吗?(“:set nolist”用于停用)。如果它们是硬制表符(真正的制表符,例如^I),这^I将为每个制表符显示一个。这样,你既可以直观地看到,也可以计算任何给定行的制表符数量。这就是为什么我说这不是你想要的,例如你在问题中提供/建议的格式。

此外,FWIW,在使用不太复杂的代码(例如数百行代码,最多几个文件)时,我也习惯使用它。一旦我开始处理包含数千到数百万行代码和数百个文件的项目,我就会开始使用,这样括号就会对齐(在我看来,这与你想要的想法有点相似)。当您也使用在 vim 中在括号之间摆动时,这确实很有帮助。我还使用水平窗口分割,因为有些代码有时太长(需要自己的函数等)。
if(statement){
// code here...
}


if ( (complexStatement) )
{
// code here...
}

%

高血压

答案2

嗯,它并没有完全按照你的要求去做,因为这是不可能的。但你可以使用我的动态标志插件用于在边线列中显示缩进级别。设置:let g:Signs_IndentationLevel=1并运行:Signs

请参阅帮助:h DynamicSigns.txt以了解您可以使用它做什么。

相关内容