2011-01-05 103 views
5

我有一段JavaScript代碼寫成一條長行,我想重新格式化,以便每條語句都寫在一行中。這有可能使用Vim嗎?我嘗試了gqq和==命令,但它們不起作用。Vim:自動格式化長單行

回答

6

它可能會更容易首先使用正則表達式來重新格式化:

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

插入線後返回;要麼 { }。

(如果你有足夠的信心或文件長,不使用c它會要求每場比賽確認)

一旦你的文件在不同的行拆分,可以使用gg=G獲得正確的縮進。

據我知道這是不可能的多條線路上有任何GQ或分割線=

+0

太好了。謝謝! – Rafid 2011-01-05 09:26:08

+1

':%s/\([;} {] \)/ \ 1 \ r/gc'更加方便。 – zsrkmyn 2017-08-19 16:44:55

0

將是很好的把這些行動統一到一個功能,使得 的工作更簡單。

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

在功能上的進一步改善將是把一個缺口,所以該功能的作用,而不是作用於整個文件,不記得的那一刻就可以了。我會看看「幫助指揮」,有人可以幫忙嗎?

3

有一個vim插件,可以在vim中對代碼進行格式化(只需按一下按鈕)。這就是所謂的VIM,自動套用格式,你可以在這裏下載中心它:

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

它外部代碼格式化程序集成到VIM。 例如,如果你想格式化javascript代碼,你只需要安裝程序js-beautifier(它在回購中解釋過),並且一切正常,不需要配置任何東西。