我有一个JavaScript代码写成一个长行,我想重新格式化,以便每个语句写在一行。这可能使用Vim吗?我尝试了gqq和==命令,但它们没有用。
答案 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>
功能的进一步改进是设置间隙,以便函数作用于它,而不是作用于整个文件,此时此刻不记得。我会看看“帮助命令”,有人可以帮忙吗?