Мой .vimrc показывает вертикальные линии, так что я могу легко следить за блоками идентификации, как почти каждый текстовый редактор /IDE.

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

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

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

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

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

2 ответа2

0

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

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

Кроме того, FWIW, я также имел обыкновение использовать
if(statement){
// code here...
}

при работе с менее сложным кодом (например, с сотнями LOC и не более, чем с несколькими файлами). Как только я начал работать над проектами с тысячами до миллионов LOC и сотнями файлов, я начал использовать
if ( (complexStatement) )
{
// code here...
}

таким образом, скобки выстроятся в ряд (немного той же идеи, что и после, IMO). Это действительно помогает, когда вы также используете % для переключения между скобками в vim. Я также использую горизонтальное разделение окна, так как иногда некоторый код бывает слишком длинным (умоляя о собственной функции и т.д.).

НТН

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .