Vim:自动格式化长单行

时间:2011-01-05 08:25:31

标签: vim formatting code-formatting

我有一个JavaScript代码写成一个长行,我想重新格式化,以便每个语句写在一行。这可能使用Vim吗?我尝试了gqq和==命令,但它们没有用。

3 个答案:

答案 0 :(得分:7)

首先使用regexp重新格式化可能会更容易:

:%s/;/;\r/gc
:%s/}/}\r/gc
:%s/{/{\r/gc
等等

之后插入行返回;要么 { }。

(如果您有足够的信心或文件很长,请不要使用c,它会要求每场比赛确认一次)

将文件拆分为不同的行后,您可以使用gg=G来获得正确的缩进。

据我所知,无法使用gq或=

在多行上分割一行

答案 1 :(得分:3)

有一个vim插件可以在vim中启用代码格式化(按下一个按钮)。它被称为vim-autoformat,你可以在这里下载它:

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

它将外部代码格式化程序集成到vim中。 例如,如果你想格式化javascript代码,你只需要安装程序js-beautifier(它在repo中解释),一切正常,无需配置东西。

答案 2 :(得分:0)

将这些动作放入函数中会很好 工作更简单。

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

功能的进一步改进是设置间隙,以便函数作用于它,而不是作用于整个文件,此时此刻不记得。我会看看“帮助命令”,有人可以帮忙吗?