Как сделать автоформат (а не просто авто-отступ) в vim? - PullRequest
3 голосов
/ 27 октября 2011

Есть ли способ разрешить gVim автоформатировать мой (c #) код?Я говорю не только об отступах, а о форматировании.

Как изменение

public void Program() {
    ...
}

на

public void Program ()
{
    ...
}

и наоборот.Будь то макрос, плагин или что-то еще (formatexpr?).

Я пытаюсь подражать форматированию Visual Studio здесь.Я бы с удовольствием набрал }, чтобы все выглядело красиво.

Ответы [ 2 ]

1 голос
/ 27 октября 2011

У Vim нет родного способа сделать это. Однако вас может заинтересовать AStyle , который имеет много опций

astyle --help скажет вам, какие варианты доступны. Доступно много предустановок.

В vim вы можете отфильтровать документ с помощью :%!command, где команда получает текущий буфер в stdin; текущий буфер заменяется выводом вашей команды. Если команда не читает из стандартного ввода, но вместо этого ожидает имя файла в качестве аргумента, используйте %.

Таким образом:

:%!C:\astyle\bin\astyle.exe -A1

сделает это (при условии, что вы замените его на хороший путь).

0 голосов
/ 08 ноября 2011

Команда gq форматирует код.Если вас не устраивают стандартные правила форматирования (:help formatexpr), я думаю, вы можете использовать собственный форматировщик кода (через formatprg). Для отступа в C (или аналогичных языках) вы также можете прочитать о vim native c-indent, * 1004.*.Метод cindent должен иметь возможность делать то, что вы хотите.

...