2013-02-08 83 views

回答

478

下面是崇高的文本2或3有一手您縮進間距轉換文件內。

TL; DR:

從2個空間轉換爲4位:

確保標籤寬度被設置爲2轉換您2空間縮進爲製表符,切換到標籤寬度4,然後將縮進轉換回空格。

詳細描述:

轉到:

View -> Indentation

它應該閱讀:

  • Indent using spaces [x]
  • Tab width: 2

選擇:

  • Convert Indentation to Tabs

然後選擇:

  • Tab width: 4
  • Convert Indentation to Spaces

完成。

+4

謝謝! :D節省了很多時間。注意。你也可以做「查找:空間=>選擇所有=>選項卡」 – Automatico 2013-05-04 21:11:45

+10

我創建了一個崇高的宏,爲你做這一切https://gist.github.com/joshmfrankel/5707020。享受:-) – 2013-06-04 15:53:03

+1

也適用於ST3。 – jolt 2013-10-08 06:55:07

9

我發現,在我心中,比馬格納簡單的解決方案:

在Mac上:

"cmd+f" => " "(two spaces) => "alt+enter" => "arrow right" => " "(two more spaces) => set tab width to 4(this can be done before or after. 

在Windows或其他平臺改變cmd+falt+enter與任何你findselect all熱鍵。

注意:如果您的代碼中有多個空格,則此方法很容易出現「錯誤」。因此它比Magne的方法更安全,但速度更快(至少對我而言)。

+0

我無法像這樣工作,但我使用了原理,只是做了一個找到並替換(Mac上的cmd-option-F),並用「」(2個空格)替換「」(4個空格)。它的工作! – evanbikes 2013-09-25 23:45:46

+0

我發現了另一種方法來實現這一點,但它是語言特定的。如果您有像RubyFormat這樣的格式化插件,那麼您可以簡單地設置所需的製表符大小,然後對代碼進行重新格式化。在'RubyFormat'的情況下,它將是'cmd + shift + R'。 – Automatico 2013-11-25 13:29:45

5

如果您發現搜索和替換更快地使用,你可以使用正則表達式替換這樣的:

查找(正則表達式):(^|\G) {2}(而不是「{2}」<space>{2}你可以只寫兩個空間這裏使用它的清晰度。)

有4個空格代替,或任何你想要的,喜歡\t

69

我竟然發現這是更好地爲我的理智有用戶的喜好被像這樣定義:

"translate_tabs_to_spaces": true, 
"tab_size": 2, 
"indent_to_bracket": true, 
"detect_indentation": false 

detect_indentation: false是特別重要的,因爲它迫使崇高的榮譽中的每個文件這些設置,而不是View -> Indentation設置。

如果你想獲得幻想,你也可以定義一個快捷鍵,自動重新縮進你的代碼(因人而異)粘貼在Sublime -> Preferences -> Key Binding - User如下:

[ 
    { "keys": ["ctrl+i"], "command": "reindent" } 
] 

,並以可視化的空白:

"indent_guide_options": ["draw_active"], 
"trim_trailing_white_space_on_save": true, 
"ensure_newline_at_eof_on_save": true, 
"draw_white_space": "all", 
"rulers": [120], 
7

雖然許多建議工作時轉換2 - > 4空間。轉換4時,我遇到了一些問題 - > 2.

這裏是我最終使用:

Sublime Text 3/Packages/User/to-2.sublime-macro

[ 
    { "args": null, "command": "select_all" }, 
    { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" }, 
    { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" }, 
    { "args": { "set_translate_tabs": true }, "command": "expand_tabs" }, 
    { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" } 
] 
5

我寫了一個插件它。你可以找到它here或在包控制中尋找「ReIndent」。它大部分與凱爾芬利寫的一樣,但是以便捷的方式使用2和4之間的轉換快捷鍵,反之亦然。

+0

這太棒了,謝謝! – Zach 2017-02-21 18:14:22

2

你必須將此代碼添加到您的自定義鍵綁定:通過按CTRL + F12

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} } 

,它會縮進你的文件的4選項卡的大小,如果你想有一個不同的標籤大小,只需更改「值」數字。 Te格式是一個簡單的json。

+0

我喜歡它,謝謝!我加了2和4像這樣:'{「keys」:[「ctrl + f10」],「command」:「set_setting」,「args」:{「setting」:「translate_tabs_to_spaces」,「value」:2}} {「keys」:[「ctrl + f11」],「command」:「set_setting」,「args」:{「setting」:「tab_size」,「value」:2}}, [「ctrl + f12」],「command」:「set_setting」,「args」:{「setting」:「tab_size」,「value」:4}},'' – JREAM 2017-06-08 10:46:21