textmate重新格式化2个空格

时间:2011-04-01 16:12:19

标签: javascript textmate indentation

我已经将textmate设置为在我的文件上使用softtabs 2空格。但是当我尝试重新格式化整个文档时,它使用2个硬标签作为缩进。

常规缩进按我的意愿工作,只是文档格式没有。无论如何让textmate顺从吗?

感谢。

2 个答案:

答案 0 :(得分:2)

JavaScript包的“重新格式化文档/选择”命令将文档的文本传递给bundle的beautify.php文件中的js_beautify函数(可在我的系统中找到,可能默认情况下在/Applications/TextMate.app/Contents/SharedSupport/Bundles/JavaScript.tmbundle/Support/lib/beautify.php)。如果你看一下函数定义,你会看到第二个参数$ tab_size,默认值为4.在包中有一行读取print js_beautify($input);。将其更改为print js_beautify($input, 2);,我希望您可以使用两个空格获得制表位。

为了使其更灵活,请使用TextMate环境变量TM_TAB_SIZE,如print js_beautify( $input, getenv('TM_TAB_SIZE' ) );中所示,如果您更改标签大小,则应更新命令的运行方式。

注意,我已经测试了 none 。 :)只是看看捆绑包并找出了似乎必要的东西。

答案 1 :(得分:1)

所以,我试过了查克的建议而且它给了我一个错误。我这样做是为了“修复它”。我相信它可以做得更优雅,但这对我有用。

打开同一个文件Chuck说打开,第50行(左右)应该是这样的:

function js_beautify($js_source_text, $tab_size = 4)

将$ tab_size更改为1

function js_beautify($js_source_text, $tab_size = 1)

现在,在第56行附近:

$tab_string = str_repeat(' ', $tab_size);

将空格更改为如下标签:

$tab_string = str_repeat("\t", $tab_size); 

这对我有用。