ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

全宽制表符空格

创作于 woodmix ST3

Sublime Text 插件,用于优化包含全宽字符的行上的 translate_tabs_to_spaces 功能

详细信息

安装

  • 总数 74
  • Windows 45
  • Mac 19
  • Linux 10
8月6日 8月5日 8月4日 8月3日 8月2日 8月1日 7月31日 7月30日 7月29日 7月28日 7月27日 7月26日 7月25日 7月24日 7月23日 7月22日 7月21日 7月20日 7月19日 7月18日 7月17日 7月16日 7月15日 7月14日 7月13日 7月12日 7月11日 7月10日 7月9日 7月8日 7月7日 7月6日 7月5日 7月4日 7月3日 7月2日 7月1日 6月30日 6月29日 6月28日 6月27日 6月26日 6月25日 6月24日 6月23日
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

FullwidthTabSpaces (英文)

(使用 www.DeepL.com/Translator 免费版翻译)

Sublime Text 有一个名为 translate_tabs_to_spaces 的设置,如果设置为 true,则会使用空格字符插入水平制表符。然而,由于制表符停止位置是根据字符数计算的,如果行中有全宽字符,则停止位置将会偏移。此插件可以补偿此问题。

但是,它假定使用等宽字体。如果您使用的是比例字体,不推荐使用,因为水平制表符插入的空格字符将不一致。

内部,它通过拦截命令(“insert”,“{“characters”:”\t”}”),因此无需特殊配置,只需安装它,它就会工作。如果您想关闭此功能,请禁用或卸载它。

只有当 translate_tabs_to_spaces 设置为 true 时,它才会工作。

从 Sublime Text Build 4143 版本开始,对自动完成(autocomplete)进行了重大修改,因此在单词字符之后的插入位置按 Tab 键现在会发出“auto_complete”命令,而不是“insert”命令。如果没有完成候选项,则会执行制表符插入,但这无法拦截,因此无法修复。也可以通过 Alt+/ 或 Ctrl+Space 发出“auto_complete”命令,因此如果您想停止使用 Tab 键发出“auto_complete”命令,可以这样做。在“首选项”=>“键绑定”中添加以下设置。

{ "keys": ["tab"], "command": "insert", "args": {"characters": "\t"} ,
        "context":
        [
            { "key": "auto_complete_visible", "operand": false },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": ".*\\w", "match_all": true },
        ]
    },
    { "keys": ["tab"], "command": "expand_snippet", "context":
        [{ "key": "has_snippet" }]
    },

在“首选项”=>“设置”中,将“tab_completion”设置为 false 会使自动完成的行为略有改变,但不会改变发出“auto_complete”命令的事实。请将其设置为 true 以恢复上述设置。

此外,还包含一个命令,通过在多个光标前插入空格来对齐数字。您可以通过设置“首选项”>“键盘快捷键”来实现,例如:`{ "keys": ["ctrl+alt+a"], "command": "fullwidth_tab_align" },`等等。

* 我没有Mac,所以还没有在Mac上测试过。

FullwidthTabSpaces (ja)

Sublime Text有一个名为“translate_tabs_to_spaces”的设置项,将其设置为true后,水平制表符将使用空格符号插入。然而,由于它仅基于字数来计算制表位位置,包含全角字符的行的制表位位置会发生变化。此插件将纠正此问题。

但是,它基于等宽字体。如果您使用的是变宽字体,则插入的水平制表符中的空格字符串不会保持一定,所以不推荐使用。

内部通过截获(《插入”,{“字符”: “\t”}》)命令来操作,因此不需要特别的设置。安装后即可生效。若要停用此功能,请禁用或卸载。

此功能仅在“translate_tabs_to_spaces”设置为true时生效。设置为false时,它不会做任何操作。

从Sublime Text Build 4143开始,自动补全进行了重大修改,当在单词字符后按Tab键时,会触发“insert”命令而不是“auto_complete”命令。当没有补齐候选项时,会进行制表符插入,但由于无法截获,因此无法修复。由于“auto_complete”命令可以通过Alt+/或Ctrl+Space触发,因此如果可以停止使用Tab键触发“auto_complete”命令,则可以解决问题。请在“首选项”>“键盘快捷键”中添加以下设置:

{ "keys": ["tab"], "command": "insert", "args": {"characters": "\t"} ,
        "context":
        [
            { "key": "auto_complete_visible", "operand": false },
            { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
            { "key": "setting.tab_completion", "operator": "equal", "operand": true },
            { "key": "preceding_text", "operator": "regex_match", "operand": ".*\\w", "match_all": true },
        ]
    },
    { "keys": ["tab"], "command": "expand_snippet", "context":
        [{ "key": "has_snippet" }]
    },

即使将“首选项”>“设置”中的“tab_completion”设置为false,也只是会改变自动补齐的行为,但“auto_complete”命令的触发依然存在。进行上述设置时,请将其恢复为true。

此外,还包含一个命令,可以在多个光标的前方插入空格以对齐数字。您可以通过设置“首选项”>“键盘快捷键”(例如:`{ "keys": ["ctrl+alt+a"], "command": "fullwidth_tab_align" }`)来使用它。

※我没有Mac,因此没有在Mac上验证其功能。