當使用文本崇高3,我的大部分文件被設置爲使用空格縮進。不過,我有時希望插入一個文字標籤。當我使用vim我會使用<按Ctrl > + V <標籤>但是,這並不與崇高的文本3崇高的文本3插入製表符手動
我一直在尋找和搜索,並不能找到任何工作。請幫忙!
當使用文本崇高3,我的大部分文件被設置爲使用空格縮進。不過,我有時希望插入一個文字標籤。當我使用vim我會使用<按Ctrl > + V <標籤>但是,這並不與崇高的文本3崇高的文本3插入製表符手動
我一直在尋找和搜索,並不能找到任何工作。請幫忙!
有一個默認的鍵綁定Shift + Tab將原始製表符字符插入到文檔中,但在某些上下文情況下(例如在展開片段時)它改爲使用其他函數。
然而,Indent Using Spaces
由以下設置控制:
// Set to true to insert spaces when tab is pressed
"translate_tabs_to_spaces": false,
由於這裏看到它默認爲false
,但是當你有Indent using spaces
打開,它被設置爲true
。由於評論暗示,當此設置爲true
任何企圖插入原始的製表符被轉換到一些數量的空格來代替。
其結果是,即使官方的密鑰綁定在這種情況下不插入原始的標籤。
取決於你怎麼在意也常常要插入文字標籤中,您可以通過暫時打開,設置和關閉解決這個問題,但是這是很不理想,即使設置在狀態欄上的菜單切換。
由於崇高是如此定製的,我們可以把它自動進入這樣做,爲我們工作。
首先,創建一個包含以下內容的文件,並在您User
包保存爲literal_tab.sublime-macro
(使用Preferences > Browse Packages...
找到你User
包,如果你不知道它在哪裏):
[
{ "command": "toggle_setting", "args": { "setting": "translate_tabs_to_spaces" } },
{ "command": "insert", "args": { "characters": "\t" } },
{ "command": "toggle_setting", "args": { "setting": "translate_tabs_to_spaces" } }
]
然後,添加以下兩個鍵綁定到用戶綁定(Preferences > Key Bindings
菜單;如果有多個選項,選擇User
而不是Default
):
{
"keys": ["ctrl+k","tab"],
"command": "insert",
"args": {
"characters": "\t"
},
"context":
[
{ "key": "setting.translate_tabs_to_spaces", "operator": "equal", "operand": false }
]
},
{
"keys": ["ctrl+k","tab"],
"command": "run_macro_file",
"args": {
"file": "Packages/User/literal_tab.sublime-macro"
},
"context":
[
{ "key": "setting.translate_tabs_to_spaces", "operator": "equal", "operand": true }
]
}
個
兩個綁定包括導致它基於所述translate_tabs_to_spaces
設置的值來觸發或沒有,所以在任何給定時間只有其中的一個實際上是有效,而另一個是自動禁用的上下文。
第一個結合是針對情況下,當設置是關閉的,在這種情況下,只需要插入製表符,它的完成。第二種情況是從上面運行我們的自定義宏,這會關閉設置,插入選項卡,然後再次打開設置。
理論上,如果您始終保持打開縮進設置,您實際上只需要第二個,但由於「最小驚喜原則」,無論設置如何,都可以將其設置爲正常工作。
當然你可以使用任何你想要的擊鍵(我也用這一個從VIM),和宏文件的名稱,只要它具有正確的擴展並不重要,它匹配什麼該綁定嘗試執行。
注:雖然你在你的問題中提到崇高的文本3,你標記的崇高文字2爲好,所以我完整性也將注意到,這裏提供的信息和解決方案適用於這兩個版本也同樣。