在Textmate编程时如何默认使用软制表符?

25

我在TextMate中的“软制表符”设置不稳定。每次重启TextMate后,我经常需要重新为同一文件设置选项。如何使这个设置成为所有文件的默认设置?

8个回答

45

针对Textmate 1的设置

经过一些研究,我发现可以将TextMate 1设置为默认使用软制表符。

在“高级”首选项面板的“Shell变量”区域中,添加一个名为TM_SOFT_TABS的新条目,值为YES

从那时起,TextMate 应该默认使用软制表符,但至少有一两种语言需要指定制表符数量。完成后,在我所做的所有事情中似乎都生效了。


2
除此之外,您还可以找到一份文本编辑器TextMate的Shell变量列表,您可以在以下网址查看:http://manual.macromates.com/en/environment_variables.html - hellatan
请在此页面上查看TextMate2-Answers。 - Matthias
我不得不从你的帖子中删除图片,因为ImageShack已经将其删除并替换为广告。请参见http://meta.stackexchange.com/q/263771/215468获取更多信息。如果可能的话,您可以重新上传它们。谢谢! - Undo

27

20

来自文档:

4.11 使用空格代替制表符

TextMate 可以使用空格代替制表符。通过在状态栏中单击“制表符大小”弹出菜单并启用“软制表符”即可实现。

此设置仅影响当前语言以及所有具有共同根源且尚未启用该选项的语言。拼写检查、软换行和实际制表符大小的状态也是如此。

当启用软制表符时,TextMate 的大部分操作与硬制表符相同,但文档确实包含空格。

看起来 Textmate 会为当前语言进行设置,但我认为 Textmate 会分析您打开的文件并调整其设置以匹配文件。您可以在“文本”菜单中将文件中的制表符转换为空格,反之亦然。


Textmate确实会根据语言调整软制表符设置。但问题是,关闭Textmate后再重新启动,该设置就无效了。我经常需要为相同的语言再次设置软制表符。 - Kelvin
对我来说它很顽固。尝试下载最新版本或检查您的权限。(虽然我不知道TextMate存储这个信息的位置...) - Georg Schölly

9

您不需要任何特殊的东西,只需要调整您的Python包。

进入“Bundle Editor”,找到Python。打开它的小三角,然后向下滚动并找到“杂项”选项。应该会显示类似以下内容:

{   decreaseIndentPattern = '^\s*(elif|else|except|finally)\b.*:';
increaseIndentPattern = '^\s*(class|def|elif|else|except|finally|for|if|try|with|while)\b.*:\s*$';
shellVariables = (
    {   name = 'TM_COMMENT_START';
        value = '# ';
    },
    {   name = 'TM_LINE_TERMINATOR';
        value = ':';
    },
);
}

这些是环境变量。你需要的是将环境变量TM_SOFT_TABS设置为'YES'。很简单,只需插入一个新的赋值语句,像这样:

    {   name = 'TM_SOFT_TABS';
        value = 'YES';
    },

完成后,你就可以在Python模式下每次使用Textmate时都获得软性的标签效果。

有关您可以设置的所有不同环境变量,请查看此处的手册: http://manual.macromates.com/en/environment_variables.html


1
这对我不起作用,将TM_SOFT_TABS添加到首选项也不起作用。我已经尝试重新启动TextMate,但制表符仍然会产生\t。我感到困惑。 - neoneye
最终,我采用了Georg Schölly的答案所提供的解决方案。 - neoneye

4
除了@Ivan Sviatenko的答案之外,
对于Textmate 2,语言特定的softTabs默认值
编辑~/.tm_properties,例如:
# Default editing configuration
#
tabSize = 2
softTabs = true
softWrap = true  

# Defaults for c
#
[ source.c ]
softTabs = true
tabSize = 8

# Defaults for python
#
[ source.python ]
softTabs = true
tabSize = 4

3

在 TextMate 底部还有一个下拉菜单,允许您设置制表符大小以及是否使用软制表符,而且它是粘性的。


1
  1. 在桌面上为TextMate创建一个别名图标。
  2. 将要打开的文件拖到该图标上。
  3. 文件现在应该在TextMate中打开。
  4. 使用状态栏选项设置软制表符。
  5. 关闭TextMate。
  6. 对于您想记住软制表符设置的每种文件类型,重复步骤2-5。
  7. 每次想要使用TextMate打开文件类型时,请将该文件拖到桌面图标上。
  8. 不要同时打开多个文件类型,第二个打开的文件类型将擦除其软制表符设置。

这是我能够获得软制表符设置一致行为的唯一方法。


0
我发现了一个叫做“TabMate”的流行TextMate插件,它已经为我解决了这个问题。虽然它要求我在每个文件中添加一个tabline,但是TextMate会根据tabline中的描述来调整我的tab设置。
此外,技术上gs上面的答案应该可以工作,但出于某种原因它对我不起作用,我找不到其他方法来将SoftTabs设置为所有语言的默认设置。
TabMate: http://konstochvanligasaker.se/tabmate/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接