让我们说我有一些字符串X
,并且我希望将其包含在其他字符串中,例如:\emph{X}
。是否有一些工具可以让我快速完成这项工作,例如选择文字并按下键盘上的快捷键?我在macOS Sierra的Sublime文本中工作。
答案 0 :(得分:3)
这可以直接在Sublime中使用插入片段的键绑定,其中片段正文被告知包含当前选中的文本。
对于上面的示例,以下键绑定将包含\emph{}
中的选择。我使用 Super + W 进行自己的测试,但你可能想为自己的目的选择更好的东西。
{
"keys": ["super+w"],
"command": "insert_snippet",
"args": {"contents": "\\emph{${0:$SELECTION}}"},
"context": [
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true },
]
},
此处包含context
会使键绑定仅处于活动状态,而所有游标都至少选择了一个字符。如果需要,您可以完全删除context
部分,在这种情况下,键绑定将插入片段并将光标留在大括号之间,或者根据选择的状态包装选择。
如果您的代码段比此更复杂且更复杂(例如多行),尝试将其整个主体插入到键绑定中可能会有点麻烦。在这种情况下,您可能希望使用外部代码段。
为此,您可以从菜单中选择Tools > Developer > New Snippet...
,然后使用以下代码段,您应将其保存在Sublime默认的位置:
<snippet>
<content><![CDATA[
\emph{${0:$SELECTION}}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>
有了这个,需要修改上面的键绑定,告诉insert_snippet
命令插入带有特定文件名而不是原始内容的片段:
{
"keys": ["super+w"],
"command": "insert_snippet",
"args": {"name": "Packages/User/emph.sublime-snippet"},
"context": [
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true },
]
},
这里需要注意的是,密钥绑定文件是JSON,因此需要稍微调整代码段的内容以使其成为有效的JSON。在上面的示例中,这意味着使用\\
而非\
来指定\emph
。
一般来说,片段中也有自己的特殊字符,所以如果您需要插入$
,则需要将其引用为\$
,以便Sublime知道您的意思;无论代码段是在代码段文件中还是内联代码,都是如此。
可以在Unofficial Documentation中找到有关键绑定和片段的更多信息,以便更全面地了解所有可能的内容。