Kate

Kate 用製表符替換對齊空間

  • May 9, 2014

在 Kate (3.11.2) 中縮進一段程式碼時,用於對齊的空格被製表符替換,破壞了所有對齊,讓我陷入了恢復所有這些空格的地獄。

例子:

if (true)
{
—→$foo = 'bar'.
—→•••••••'baz';
}

—→是製表符,空格)

我使用兩個字元寬的製表符縮進。問題是當我選擇這些行並按下Tab鍵以添加縮進級別時:它用一個選項卡替換兩個空格的組:

—→if (true)
—→{
—→—→$foo = 'bar'.
—→—→—→—→—→'baz';
—→}

刪除最後一個(奇數)空格。這是錯誤的,因為標籤寬度是未定義的,並且必須能夠在不破壞程式碼表示的情況下改變。

在我的設置 ( Editor Component → Editing → Indentation) 中,我設置Indent using為 onTabulators and Spaces但它不保存它並立即返回 on Tabulators

它是一個錯誤嗎?還是我的凱特配置錯誤?

作為一名 Kate 開發者,答案如下:

Kate 的縮進系統支持縮進和對齊的概念

或者,可以返回一個包含兩個元素的數組:

   return [ indent, align ];

在這種情況下,第一個元素是縮進深度,與上面的特殊值含義相同。但是,第二個元素是表示“對齊”列的絕對值。如果該值高於縮進值,則差值表示在第一個參數縮進後要添加的空格數。否則,忽略第二個數字。使用製表符和空格進行縮進通常被稱為“混合模式”。

所以理論上它是有效的。然而,在實踐中,“C 風格”壓頭和大多數其他壓頭不支持這一點。相反,它們只是返回縮進級別,而不區分縮進和對齊。

換句話說:您想要的功能沒有實現。

好消息是所有這些縮進器都是用 JavaScript 編寫的,因此可以很容易地更改。隨時歡迎通過 kwrite-devel@kde.org 投稿。因此,如果您對此感興趣,請聯繫我們!

引用自:https://unix.stackexchange.com/questions/96440