Как отобразить уровень идентификатора в vim вместо меток вкладок?

Как отобразить уровень идентификатора в vim вместо меток вкладок?

у меня .vimrcотображаются вертикальные линии, поэтому я могу легко отслеживать блоки отступов, как и практически в любом текстовом редакторе/IDE.

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

есть ли способ сделать это более полезным и вместо этого показывать уровень идентификации? Я не буду путать это с реальным кодом, так как я уже использую для них цвет с чрезвычайно низкой контрастностью.

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

Это было бы очень полезно для поиска уровня вложенности в некоторых безумных методах, которые мне приходится рефакторить на работе. Мой текущий обходной путь заключается в наличии горизонтальных окон, чтобы я мог оставить верхнее, когда блоки начинают сходить с ума, и нижнее, куда я перехожу для изменения кода.

PS: у меня уже есть плагины радужных скобок, но они больше не помогают.

решение1

У меня недостаточно репутации, чтобы прокомментировать ваш вопрос, поэтому я публикую ответ и обновлю его, если найду что-то лучшее. Вот мой «ответ»:

Это не совсем то, что вы просите, но вы уже пробовали ":set list"? (":set nolist" для деактивации). Если это жесткие табуляции (истинные символы табуляции, например ^I), это покажет ^Iдля каждой табуляции. Таким образом, вы сможете визуально увидеть и посчитать количество табуляции для любой заданной строки. Вот почему я говорю, что это не совсем то, что вы ищете, например, формат, который вы предоставили/предложили в своем вопросе.

Также, кстати, я также привык использовать при работе с менее сложным кодом (например, сотни строк кода и максимум несколько файлов). Как только я начал работать над проектами с тысячами или миллионами строк кода и сотнями файлов, я начал использовать , чтобы скобки выстраивались в линию (немного похоже на ту же идею, что и вы, на мой взгляд). Это действительно помогает, когда вы также используете для перемещения между скобками в vim. Я также использую горизонтальное разделение окна, так как некоторый код иногда слишком длинный (просит своей собственной функции и т. д.).
if(statement){
// code here...
}


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

%

НТН

решение2

Ну, это не совсем то, что вы хотите, потому что это невозможно. Но вы можете использовать мойДинамическиеЗнакиплагин для отображения уровня отступа в колонке желоба. Установите :let g:Signs_IndentationLevel=1и запустите :Signs.

:h DynamicSigns.txtЧтобы узнать, что с этим можно сделать, ознакомьтесь с справкой по адресу .

Связанный контент