![Kate 用制表符替换对齐空格](https://linux22.com/image/51502/Kate%20%E7%94%A8%E5%88%B6%E8%A1%A8%E7%AC%A6%E6%9B%BF%E6%8D%A2%E5%AF%B9%E9%BD%90%E7%A9%BA%E6%A0%BC.png)
当在 Kate (3.11.2) 中缩进代码块时,用于对齐的空格被制表符取代,破坏了所有对齐,并使我陷入恢复所有这些空格的地狱。
例子:
if (true)
{
—→$foo = 'bar'.
—→•••••••'baz';
}
(—→
是制表符、•
空格)
我使用两个字符宽的制表符缩进。问题是,当我选择这些行并按按键添加Tab
缩进级别时:它用一个制表符替换两个空格的组:
—→if (true)
—→{
—→—→$foo = 'bar'.
—→—→—→—→—→'baz';
—→}
删除最后一个(奇数)空格。这是错误的,因为选项卡宽度未定义,并且必须能够在不破坏代码表示的情况下变化。
在我的设置 ( Editor Component → Editing → Indentation
) 中,我设置为Indent using
onTabulators and Spaces
但它不会保存它并立即返回到Tabulators
。
这是一个错误吗?或者我的凯特配置错误?
答案1
作为一名Kate开发者,答案如下:
Kate 的压痕系统支持缩进和对齐的概念:
或者,可以返回两个元素的数组:
return [ indent, align ];
在这种情况下,第一个元素是上面的压痕深度,与特殊值的含义相同。然而,第二个元素是表示“对齐”的列的绝对值。如果该值高于缩进值,则差值表示在第一个参数的缩进后添加的空格数。否则,第二个数字将被忽略。使用制表符和空格进行缩进通常称为“混合模式”。
所以理论上它是有效的。然而,实际上“C 型”压头和大多数其他压头并不支持这一点。相反,它们只是返回缩进级别,而不区分缩进和对齐。
换句话说:你想要的功能没有实现。
好消息是所有这些压头都是用 JavaScript 编写的,因此可以很容易改变。随时欢迎您的贡献[电子邮件受保护]。因此,如果您有兴趣从事这方面的工作,请联系我们!