- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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/
我可能遗漏了明显的,但似乎无法解决这个相当简单和典型的案例(在 Debian 或 XP 上使用 v3 build 3022,以防万一): 启动 Sublime Text 打开一个项目“myprj”,在
在 Sublime 的精神中,我知道即使您以后不将更改保存到一个文件中,也可以从上次中断的地方开始。在保存文件之前,我在sublime中打开了一个新标签,并关闭了该应用程序。升华是否将临时文件保存在计
我有两个关于 Sublime Text Editor 2 的问题。 我的第一个问题是,我在 Packages/User 文件夹中保存了几个不同的 .tmLanguage 文件(例如:Console.t
我在 Mac 上。 另外,需要注意的是,路径段为“Packages/Solarized Color Scheme/Solarized (Dark).tmTheme”的文件在文件系统上任何地方都不存在。
我正在使用第三个 Sublime 版本,我想使用这个 CSS 梳子:https://github.com/vitaligo/CSScomb.sublime-settings/blob/master/C
我正在尝试创建一个 Sublime Text 3 插件,它从 .html、.css、.js 和 .php 等文件复制代码,然后将其粘贴到 txt 文档中。 我的问题是,有时当我从包含大量代码的文档中复
使用 Anaconda IDE package 运行 Sublime Text 3在 Mac OS X 上,当我编辑 .sublime-project 文件时,由于某种原因,某些更改将在一段时间后被删
这是我的 Preferences.sublime-settings文件: { "bold_folder_labels": true, "highlight_line": true,
我正在寻找一种方法来右键单击 Windows 10 中的文件,选择“打开方式”->“Sublime Text”,然后出现一个新的 Sublime Text 窗口。 如果 Sublime 已经打开,默认
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我根本不想要它们,更喜欢 git 命令行,但它们被添加到我的命令中,就好像它们已安装一样,即使我从未安装过 sublime merge。 有没有办法从 sublime text 命令面板中完全删除它们
我根本不想要它们,更喜欢 git 命令行,但它们被添加到我的命令中,就好像它们已安装一样,即使我从未安装过 sublime merge。 有没有办法从 sublime text 命令面板中完全删除它们
我在 Ubuntu 12.04 LTS 上。调用 sublime foo.txt 通常会在 Sublime Text 2 中打开 foo.txt。最近我安装了 Sublime Text 3 .除此之外
有没有办法在Sublime Text Build中使用Windows变量?我有一个S搭建的系统:。有没有办法在Sublime Text Build中使用Windows变量?我有一个S搭建的系统:。我会
当我在 Sublime Repl 控制台 (Python) 中输入并按回车键运行命令时,我得到了 super 烦人的自动完成接管并更改命令。 如何在 SublimeRepl 控制台中关闭此功能? 谢谢
我需要从 sublime text 2 迁移到 sublime text 3,以获得与我在 sublime text2 上安装的所有相同的配置/插件。 我安装了 sublime text 3,但它没有
Sublime Text 2 无法打开。我不断收到此错误: (Error trying to parse file: Unexpected character, expected a comma or
只是尝试在 Windows 8.1 上为我的 OpenGL 编码设置 sublime-build。 这就是我所拥有的: { "cmd": [ "gcc -o \"$file\" \"$file_bas
所以我有一个错误,当我尝试构建时,命令行显示: grunt-cli: The grunt command line interface. (v0.1.13) [Finished in 0.1s wit
我正在尝试安装 https://github.com/alek-sys/sublimetext_indentxml在 Sublime Text 3中。我读了 In Sublime Text 3 - c
我是一名优秀的程序员,十分优秀!