我有一段JavaScript代码,它是一行写的,我想重新格式化它,使每个语句都写在一行上。使用Vim是否可能实现这一点?我尝试了gqq和==命令,但它们没有起作用。
我有一段JavaScript代码,它是一行写的,我想重新格式化它,使每个语句都写在一行上。使用Vim是否可能实现这一点?我尝试了gqq和==命令,但它们没有起作用。
使用正则表达式重新格式化可能更容易:
:%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>
:%s/\([;}{]\)/\1\r/gc
更方便。 - zsrkmyn