как указать VIM форматировать скобки функций, условий и циклов на новой строке?

Pulseaudio изначально работает только для вошедшего в систему пользователя.

Вам либо потребуется системный -широкополосный Pulseaudio , либо вы должны включить один из модулей метода связи, отличных от -по умолчанию , для root.

0
03.06.2021, 20:07
1 ответ

Да, вы можете сделать это достаточно легко :для замены существующих символов '{' в конец строк($)с возвратом каретки(\r)и новым '{', а затем отформатируйте вещи красиво, вы можете выполнить следующие две команды (, хотя см. отредактируйте в конце ответа для крайнего случая):

:%s/{$/\r{

:%norm ==

Первая команда доберется до этого:

public class Foo 
{
    private Foo(int a) 
{
        if (a > 30) 
{
            // do stuff
        }
        for (int i = 0; i < a; i++) 
{
            // more stuff
        }
    }
}

Вторая команда доберется до этого:

public class Foo 
{
    private Foo(int a) 
    {
        if (a > 30) 
        {
            // do stuff
        }
        for (int i = 0; i < a; i++) 
        {
            // more stuff
        }
    }
}

(Знак %в приведенных выше командах означает, что они применяются ко всем строкам файла. Ты вместо этого можно указать диапазон, например :5,10s/{$/\r{, или вы можете использовать относительную строку номера, такие как -2,+3s/{$/\r{, или выберите строки в визуальном режиме и нажмите :и к этим строкам будет применена команда подстановки ).

(Вы также можете применить форматирование с помощью =apдля форматированияapаграфа, см. :help =подробнее)

Редактировать

Из комментария @blackyellow :Это хорошее решение, но есть одна проблема: он также заменяет строки на «}», которые уже отформатированы правильно. А лучший шаблон — :%s/[^( |\t)]}$/\r{, который не будет заменять строки на '}' в конце, если перед '}' стоят два пробела или табуляция, что означает, что это наверное правильно поставил отступ.

1
28.07.2021, 11:27

Теги

Похожие вопросы