2011-04-26 16 views
0

的Unix shell腳本來重新格式化互聯/基於大括號代碼文件縮進代碼文件。的Unix shell腳本來重新格式化互聯/縮進基於大括號

環顧四周,發現了一種在vim做到這一點,利用可視化模式和等號,但我似乎無法找到一個辦法做到這一點使用外部UNIX shell腳本。這個想法是能夠運行的:

./scriptName filename(s) 

並且所有文件都會根據花括號的深度縮進。它不需要添加額外的換行符/退貨車,只需根據深度縮進即可。

namespace Mine { 
    Class Yours 
    { 
     Yours() { something something; } 
     ~Yours() { something 
      something more } 
     Yours(too) 
     { 
      etc. 
     } } // Programmer put two braces on the same line, don't do anything 
} 

我可以排序的想象使用環境變量來跟蹤括號的深度,然後修剪每行的空間,增加空間的需要,但我似乎無法弄清楚。任何幫助將非常感激!

回答

2

嘗試indent

+0

indent'相當全面的來'選項。如果我沒有記錯,您可以保存一個cfg文件以進行縮進。找出你喜歡的選項設置,將它們保存到cfg文件中,然後每次都按照你想要的方式工作。祝你好運。 – shellter 2011-04-26 17:50:56

+0

不幸的是,'indent'不理解''//註釋,這對於GNU indent來說很奇怪,因爲gcc中有C擴展。請參閱http://www.gnu.org/software/indent/manual/indent.html#SEC15 – lhf 2011-04-26 18:14:31