TextMate 缩进级别为 2 或 4,但列数为 8 \t

TextMate 缩进级别为 2 或 4,但列数为 8 \t

如果由我决定的话,我会从源代码中完全禁止使用 \t 字符,而只使用普通空格 - 但很多源代码,尤其是 C 语言,都是像这样缩进的:

  • 无缩进
  • 4 个空格
  • \t
  • \t + 4 个空格
  • \t\t

TextMate 在这方面遇到了麻烦 - 它只有一个缩进设置(通常为 2 或 4,具体取决于语言,8 很少见),并且 \t 的含义(如果存在则普遍为 8)。

我是否缺少一些设置才能使其正常工作?

答案1

这是 emacs 默认插入缩进的反向方式(一级 4 个空格,二级 1 个制表符,三级 1 个制表符 + 4 个空格,等等)。您可以通过将缩进设置为 8 个空格来解决这个问题……但这样您就会始终插入 8 个空格(或者始终插入一个制表符,如果您以这种方式设置了 TM)。据我所知,没有办法在 TextMate 中处理愚蠢的 emacs 样式缩进。

答案2

一种方法是在编辑时用空格替换制表符:

# Replace tabs with 8 spaces in C sources
perl -lape 's/\t/        /g' -i *.c *.h;

# Now edit your files

# Replace 8 spaces with tabs
perl -lape 's/        /\t/g' -i *.c *.h

未经测试,但这是解决问题的一种方法。这也会弄乱不在行首的制表符/空格,但您可能没有这些。

相关内容