2013-02-08 84 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