SublimeText 自帶格式化代碼功能


其實sublime自身就有格式化命令,就不再安裝插件,位置在[Preferences]->[Key Bindings]->[User]中,   中文版的位置在  [首選項]->[按鍵綁定-用戶],彈出的頁面中

,添加如下代碼,為其設置快捷鍵:Ctrl+Shift+r

復制代碼
{
 "keys": ["ctrl+shift+r"],
 "command": "reindent", 
 "args": {
    "single_line": false
    }
}
復制代碼

 

 

sublime是一款非常輕便,插件豐富,功能強大的編輯器。也正因為其通用性,所以很多功能需要安裝插件,通過插件來實現。

比如懸賞的代碼格式化功能,其實問題相當地不准確,因為不同語言的格式化功能是根據不同的插件來實現的。接下來,筆者就來講講sublime格式化代碼的處理方法。

首先聲明,筆者當前所用的sublime是最新的sublime text 3正式版,所以外觀上可能之前的版本稍有不同,但是sublime各版本功能基本一致,不影響使用。

工具/原料

 
  • sublime text 3

方法/步驟

 
  1.  

    第一部分,我們來講sublime自帶的、基本的代碼格式化功能——“reindent”。

    個人先建立了一個HTML頁面作為示例。多個元素的排列和縮進都被打亂。

    sublime如何格式化代碼
  2.  

    為了使其排列整齊,我們對文本進行全選(當然,如果只想重新排列部分代碼也可以選擇部分),然后選擇sublime菜單欄的“edit”-“line”-“reindent”選項。reindent即重新縮進,顧名思義,即對當前的文本進行重新縮進處理。也可以看到,在其上方還有indent 和 unindent兩個選項,分別代表增加縮進和減少縮進功能,並在后方寫有其快捷鍵,各位網友可以自行嘗試。

    sublime如何格式化代碼
  3.  

    在“reindent”后,可以看到,全部的代碼縮進都正常了。但是,sublime自帶的重新縮進功能較為單一,就像其名稱一樣,僅僅是保證縮進正常了而已。而對於代碼中寫法不規范的地方,無法進行處理,這不符合我們編碼的需求。接下來我們結合sublime插件,來講解更完善的格式化代碼功能。

    sublime如何格式化代碼
  4.  

    第二部分,筆者將結合sublime插件來進行代碼的格式化處理。由於不同的代碼有不同的格式化要求,本部分僅使用sql format來進行演示,其它語言的格式化大家可以自行查找插件安裝。首先,筆者在網上找了一段SQL代碼,並特地打亂了其排布。

    sublime如何格式化代碼
  5.  

    然后,使用快捷鍵Ctrl+Shift+P或者點擊sublime菜單欄的“Preferences”-“package control”, 打開命令面板。如果各位網友沒能打開,說明尚未安裝package control,可以看下方的注意事項。

    sublime如何格式化代碼
  6.  

    選擇命令面板中的Install package,在新彈出的搜索欄中輸入“format”可以看到有大量的格式化插件可供選擇。當然,並不是所有的格式化插件都要有format字樣。重新搜索,筆者選擇了名為“SQL Beautifier”的SQL格式化插件。

    sublime如何格式化代碼
  7.  

    安裝完成之后,該插件在Windows下提供了Ctrl+K 、Ctrl+F的格式化快捷鍵,從而提供格式化操作。注意,是先按Ctrl + K,再按下Ctrl + F,否則的話,單獨使用Ctrl+F是默認查找的快捷鍵。該格式化插件的GitHub主頁:https://github.com/zsong/SqlBeautifier 。格式化效果如下圖:

    sublime如何格式化代碼
  8. 8

    總結,sublime本身只提供基本的縮進重置功能,不同語言的格式化可以使用不同的插件來實現。開源社區的生命力是無與倫比的,各種層出不窮的插件為我們的開發工作提供了諸多便利。

    END

注意事項

 
  • 不同版本(sublime text2/3)的插件偶爾會不兼容,需要注意。
  • 部分插件的運行偶爾需要先決程序,比如需要電腦上安裝了Python,Ruby, Nodejs等,大家在使用過程中多看文檔。
  • 這里附上package control 的安裝經驗 http://jingyan.baidu.com/article/c14654134b8bde0bfcfc4c9a.html
 
經驗內容僅供參考,如果您需解決具體問題(尤其法律、醫學


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM