Vim:自动格式化长单行
我有一个写为一行的JavaScript代码,我想重新格式化,使每个语句都写在一行中。使用Vim可能吗?我尝试了gqq和==命令,但它们不起作用。首先使用regexp重新格式化可能会更容易:Vim:自动格式化长单行,vim,formatting,code-formatting,Vim,Formatting,Code Formatting,我有一个写为一行的JavaScript代码,我想重新格式化,使每个语句都写在一行中。使用Vim可能吗?我尝试了gqq和==命令,但它们不起作用。首先使用regexp重新格式化可能会更容易: :%s/;/\r/gc :%s/}/}\r/gc :%s/{/{\r/gc 等 在后面插入换行符;或{} (如果您有足够的信心或文件太长,请不要使用c它将要求确认每个匹配) 将文件拆分到不同的行后,可以使用gg=G获得正确的缩进 据我所知,用gq或=在多行上拆分一行是不可能的,最好将这些操作放到一个函数中,使
:%s/;/\r/gc
:%s/}/}\r/gc
:%s/{/{\r/gc
等 在后面插入换行符;或{} (如果您有足够的信心或文件太长,请不要使用
c
它将要求确认每个匹配)
将文件拆分到不同的行后,可以使用gg=G
获得正确的缩进
据我所知,用gq或=在多行上拆分一行是不可能的,最好将这些操作放到一个函数中,使 这项工作更简单
function! FormatJavaScript()
:%s/;/;\r/gc
:%s/}/}\r/gc
:%s/{/{\r/gc
endfun
map <F2> <esc>:call FormatJavaScript()<cr>
function!FormatJavaScript()
:%s/;/;\r/gc
:%s/}/}\r/gc
:%s/{/{\r/gc
结束
映射:调用FormatJavaScript()
函数的进一步改进是设置一个间隙,使函数作用于它,而不是作用于整个文件,现在不记得了。我来看看“help command”,有人能帮忙吗?有一个vim插件,可以从vim中对代码进行格式化(只需按下一个按钮).它称为vim自动格式化,您可以在此处下载: 它将外部代码格式化程序集成到vim中。 例如,如果你想格式化javascript代码,你只需要安装程序js beautifier(在repo中有解释),一切都可以运行,而不需要配置任何东西。
:%s/\([;}{]\)/\1\r/gc
更方便。