Vim: автоматическое форматирование длинных строк - PullRequest
6 голосов
/ 05 января 2011

У меня есть код JavaScript, написанный одной длинной строкой, и я хочу переформатировать его так, чтобы каждое утверждение записывалось в одну строку. Это возможно с помощью Vim? Я пробовал команды gqq и ==, и они не работали.

Ответы [ 3 ]

7 голосов
/ 05 января 2011

Вероятно, будет проще сначала переформатировать, используя регулярное выражение:

:%s/;/;\r/gc
:%s/}/}\r/gc
:%s/{/{\r/gc
и т. д.

для вставки возврата строки после; или же { }.

(если вы достаточно уверены или файл слишком длинный, не используйте c, он будет запрашивать подтверждение для каждого матча)

Когда ваш файл разбит на несколько строк, вы можете использовать gg=G для получения правильного отступа.

Насколько я знаю, невозможно разбить строку на несколько строк с помощью gq или =

3 голосов
/ 04 декабря 2012

Существует плагин vim, который позволяет форматировать код изнутри vim (одним нажатием кнопки). Он называется vim-autoformat, и вы можете загрузить его здесь:

https://github.com/Chiel92/vim-autoformat

Интегрирует внешние программы форматирования кода в vim. Например, если вы хотите отформатировать код javascript, вам нужно только установить программу js-beautifier (это объясняется в репозитории), и все работает, без необходимости что-либо настраивать.

0 голосов
/ 05 января 2011

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

function! FormatJavaScript()   
    :%s/;/;\r/gc
    :%s/}/}\r/gc
    :%s/{/{\r/gc
endfun
map <F2> <esc>:call FormatJavaScript()<cr>

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

...