【问题标题】:Sublime Text 3 insert tab character manuallySublime Text 3 手动插入制表符
【发布时间】:2017-08-09 10:14:25
【问题描述】:

使用 Sublime Text 3 时,我的大部分文件都设置为使用空格缩进。但是我有时希望插入一个文字标签。当我使用 vim 时,我会使用 +v 但这不适用于 Sublime Text 3。

我一直在寻找和寻找,但找不到任何东西。请帮忙!

【问题讨论】:

    标签: tabs sublimetext3 sublimetext2 sublimetext sublime-text-plugin


    【解决方案1】:

    Shift+Tab 的默认键绑定可以将原始制表符插入到文档中,尽管在某些上下文情况下(例如扩展 sn-p 时)它具有其他功能而是。

    但是,Indent Using Spaces 由以下设置控制:

    // Set to true to insert spaces when tab is pressed
    "translate_tabs_to_spaces": false,
    

    如此处所示,它默认为false,但当您打开Indent using spaces 时,它会设置为true。正如评论所暗示的,当此设置设置为 true 时,任何插入原始制表符的尝试都会被转换为一定数量的空格。

    因此,在这种情况下,即使是官方的键绑定也不会插入原始选项卡。

    根据您插入文字选项卡的频率,您可以通过暂时打开和关闭该设置来解决此问题,但这远非理想,即使从状态栏中的菜单切换设置也是如此。

    由于 Sublime 如此可定制,我们可以将其自动化,以便为我们完成这项工作。

    首先,创建一个包含以下内容的文件并将其保存在您的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),宏文件的名称并不重要,只要它具有正确的扩展名并且它匹配什么绑定尝试执行。


    注意:虽然您在问题中提到了 Sublime Text 3,但您也标记了 Sublime Text 2,因此为了完整起见,我还要注意此处提供的信息和解决方案同样适用于两个版本.

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      相关资源
      最近更新 更多