gpt4 book ai didi

tabs - Sublime Text 3 手动插入制表符

转载 作者:行者123 更新时间:2023-12-03 01:20:54 27 4
gpt4 key购买 nike

使用 Sublime Text 3 时,我的大多数文件都设置为使用空格缩进。然而,我有时希望插入一个文字选项卡。当我使用 Vim 时,我会使用 Ctrl+v Tab 但这不适用于 Sublime Text 3。

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

最佳答案

有一个默认的键绑定(bind) Shift+Tab 用于将原始制表符插入到文档中,尽管在某些上下文情况下(例如扩展片段时)它会使用其他功能。

但是,使用空格缩进由以下设置控制:

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

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

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

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

由于 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" } }
]

然后,将以下两个键绑定(bind)添加到您的用户绑定(bind)(菜单中的首选项 > 键绑定(bind);如果有多个选项,请选择 User 而不是 >默认):

{ 
"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 }
]
}

这两种绑定(bind)都包含一个上下文,该上下文会导致其根据 translate_tabs_to_spaces 设置的值触发或不触发,因此在任何给定时间,只有其中之一实际上有效,而另一个则自动生效已禁用。

第一个绑定(bind)是针对关闭设置的情况,这种情况下只需要插入一个制表符就可以了。第二种情况而是从上面运行我们的自定义宏,这会关闭设置,插入选项卡,然后再次打开设置。

理论上,如果您始终打开缩进设置,则实际上只需要第二个,但由于最小惊喜原则,无论设置如何,都将其设置为工作是个好主意。

当然,你可以使用任何你想要的击键(我也习惯了 vim 中的这个击键),并且宏文件的名称并不重要,只要它具有正确的扩展名并且与绑定(bind)尝试执行。

<小时/>

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

关于tabs - Sublime Text 3 手动插入制表符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com