- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我输入 (
并点击 Space 时,我希望 Sublime Text 自动添加空格并移动插入符号,以便最终结果为 ( ^ )
,其中 ^
是光标。
如何调整按键绑定(bind)以实现此目的?
我已经能够使用调整键绑定(bind)
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "( $0 )"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
]
}
但是在输入 (
时,它总是将其格式化为 ( ^ )
。我宁愿在点击 space
后将其格式化。
我可以在默认绑定(bind)中看到在输入 {
后点击 enter
时的情况,这将运行一个宏,所以我认为我可以将它用作模板,但我在我的文件系统上找不到该宏来了解它是如何工作的。
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
[
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
]
},
最佳答案
您的初始绑定(bind)想法是正确的,但您想要的是将其绑定(bind)到按空格而不是按左括号;这需要您首先手动打开配对的括号,然后按空格键插入所需的代码片段:
{ "keys": [" "], "command": "insert_snippet", "args": {"contents": " $0 "},
"context": [
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
]
},
现在按空格键将在光标之间插入两个空格,但前提是光标直接位于两个括号之间。
但请注意,此绑定(bind)将停止默认存在的 Backspace 上的绑定(bind),以便在退格时删除两个括号,因为该绑定(bind)要求光标被括号包围,就像这个一样,但是一旦此绑定(bind)触发,情况将不再如此。
因此,您也可以包含此绑定(bind),它会检测光标何时处于该情况并运行与默认绑定(bind)相同的宏;这将允许您按 Space 插入空格,然后决定不需要它们并按 Backspace 删除它们。
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\( $", "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^ \\)", "match_all": true }
]
},
I can see in the default bindings a case when hitting enter after typing { which will run a macro so I thought I could use it as a template, but I can't find that macro on my filesystem to see how it works.
Sublime 附带的包存储在 sublime-package
文件(扩展名已更改的 zip 文件)中。从 sublime 核心查看它们内部的最简单方法是使用命令面板中的View Package File
,它会显示当前加载的每个包中的每个文件。然后,您可以输入筛选文本以缩小要查看的文件的范围,然后选择它来打开该文件。
请注意,以这种方式打开的文件是只读的(因为它们源自包文件),以提醒您编辑它们没有任何效果。
关于javascript - 如何在 Sublime Text 3 中按空格后自动在括号之间插入空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59024996/
我可能遗漏了明显的,但似乎无法解决这个相当简单和典型的案例(在 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
我是一名优秀的程序员,十分优秀!