Fix Indentation and Tabs in VIM (Vim格式化操作)

來源:互聯網
上載者:User

2011-03-27 wcdj

 

先看一段簡單的tutorial。

 

Fix Indentation and Tabs in VIM

Thanks to the folks in #vim on freenode, here's a quick tutorial on how to fix the indentation and tabs
in an xml file from within VIM…

First find out what your current settings are by typing:
:filetype

Should return something like “filetype detection:ON plugin:OFF indent:OFF”
1) :set filetype=xml

2) :filetype indent on

3) :e

4) gg=G

Basically what this is doing is setting the filetype to xml (so it can pickup the XML indenting rules (see :e $VIMRUNTIME/indent
for a list of available languages
)

Then turn on indent, then reload it (:e).

The last step is ‘gg=G
'  which will acutally retab the entire file
(gg is line 1, and G is last line

).

You can find more info by reading vim help files:

:he gg
:he =
:he G
:he :filetype

Note: Most commands in vim are run with by typing “:command
, you can find help by typing “:help command
” or simply “:he cmd
”. HOWEVER, the main command to retab “gg=G” is NOT preceeded by a “:”
.

 

看完這段tutorial,我們遇到的問題基本就解決了。

 

 

 

 

Vim格式化代碼功能——gg=G

 

常用的幾個功能:

(1) gg=G 是一個自動縮排的命令 (在命令狀態下直接輸入,不需要輸入冒號),gg是檔案首,G是檔案尾,所以 gg=G 是整理全部代碼。
(2) == 整理當行,加行數整理多行。
(3) ={ 或者 =i{ 整理一個代碼塊。
(4) mG=nG 當 m 不等於 n 的時候能完成從 m 行到 n 行的局部的縮排。例如,從80行縮排直到100行,你可以用 80G=100G,在命令狀態下使用 :set nu 查看行號,一般更習慣將 se nu 直接寫入Vim的設定檔,這樣每次開啟都會顯示行號。
(5) 在寫代碼前,設定自己的代碼風格。在設定檔裡添加命令:
" 設定縮排和行號
set nu ru ai si ts=4 sw=4
(6) :set equalprg=indent
意思是用indent程式處理等號命令,indent預設是gnu風格。
建議不要改,代碼風格應該自己主動養成,=適用於修改代碼或者粘貼別處代碼後整理縮排。
這裡又體現出不用indent的好處了,如果用indent,單純格式化代碼塊會丟統一的行首縮排,而且選中的如果不是內部完整的代碼塊,會出錯,把出錯的輸出貼到了代碼裡....弊端很多。

參考:

http://forum.ubuntu.org.cn/viewtopic.php?f=35&t=296929&p=2145053

http://blog.zol.com.cn/808/article_807892.html

http://www.chovy.com/web-development/fix-indentation-and-tabs-in-vim/#comments

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.