自动将一个字符串包含在另一个字符串中?
Automatically enclose a string within another string?
假设我有一些字符串 X
,并且我希望将其包含在其他一些字符串中,例如:\emph{X}
。是否有一些工具可以让我快速完成此操作,例如通过选择文本并按键盘上的快捷键?我在 macOS Sierra 中使用 Sublime text。
这可以直接在 Sublime 中使用插入片段的键绑定来实现,其中片段正文被告知包含当前 selected 的文本。
对于上面的示例,以下键绑定会将 selection 包装在 \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
使键绑定仅在所有游标至少有一个字符 selected 时有效。如果需要,您可以完全删除 context
部分,在这种情况下,键绑定将插入代码段并将光标留在大括号之间,或者包裹 selection,具体取决于 select离子.
如果您的代码段比这更复杂和复杂(例如多行),尝试将其整个主体插入键绑定可能会有点费力。在这种情况下,您可能想改用外部代码段。
为此,您可以从菜单中 select 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
.
Snippets 通常也有自己的特殊字符,所以如果你需要插入一个 $
你需要将它引用为 $
以便 Sublime 知道你的意思;无论代码片段是在代码片段文件中还是内联,都是如此。
可以在 Unofficial Documentation 中找到有关键绑定和片段的更多信息,以更完整地了解它们的所有功能。
假设我有一些字符串 X
,并且我希望将其包含在其他一些字符串中,例如:\emph{X}
。是否有一些工具可以让我快速完成此操作,例如通过选择文本并按键盘上的快捷键?我在 macOS Sierra 中使用 Sublime text。
这可以直接在 Sublime 中使用插入片段的键绑定来实现,其中片段正文被告知包含当前 selected 的文本。
对于上面的示例,以下键绑定会将 selection 包装在 \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
使键绑定仅在所有游标至少有一个字符 selected 时有效。如果需要,您可以完全删除 context
部分,在这种情况下,键绑定将插入代码段并将光标留在大括号之间,或者包裹 selection,具体取决于 select离子.
如果您的代码段比这更复杂和复杂(例如多行),尝试将其整个主体插入键绑定可能会有点费力。在这种情况下,您可能想改用外部代码段。
为此,您可以从菜单中 select 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
.
Snippets 通常也有自己的特殊字符,所以如果你需要插入一个 $
你需要将它引用为 $
以便 Sublime 知道你的意思;无论代码片段是在代码片段文件中还是内联,都是如此。
可以在 Unofficial Documentation 中找到有关键绑定和片段的更多信息,以更完整地了解它们的所有功能。