【问题标题】:abbreviation in atom and sublimeatom 和 sublime 的缩写
【发布时间】:2017-09-12 19:15:35
【问题描述】:

有没有办法像使用 notepad++ 一样在 atom 和 sublime 中创建自己的缩写?

例如: 我有一大段代码:

<!DOCTYPE html>
<html>
blah... blah... blah...
</html>

使用记事本++,我可以使用快捷方式将其包装为缩写(例如:html),下次我可以输入html 并展开它,它会弹出所有代码。而不是像 Sublime 中的所有$&gt;&gt;&gt;&gt;**。 我已经在网上阅读了很多关于 sublime 和 atom 的手册,但老实说,我仍然不明白。

更新:

Sublime > Tools > Developer > New Snippet...

<snippet>
    <content><![CDATA[
<!DOCTYPE html>
<html>
Blah blah blah
</html>
]]></content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <tabTrigger>html-blah</tabTrigger>
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <scope>source.python</scope>
</snippet>

所以成功保存sn-p后,我输入html-blah,没有tab选项。

【问题讨论】:

    标签: sublimetext3 atom-editor


    【解决方案1】:

    您的问题的答案(在 Sublime 的情况下)确实是您提到的 Snippets。它们是一种包含各种文本的强大方式,包括放置占位符字段的能力,让您可以快速轻松地填写更复杂的结构。

    正如您的问题中所述,您定义的 sn-p 只会在 Python 源文件中生效,因为 scope 设置为 source.python

    假设您想使用它来创建存根 HTML 文档,您需要将范围更改为 text.html,以便它将从 HTML 文档中触发。

    <snippet>
        <content><![CDATA[
    <!DOCTYPE html>
    <html>
    Blah blah blah
    </html>
    ]]></content>
        <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
        <tabTrigger>html-blah</tabTrigger>
        <!-- Optional: Set a scope to limit where the snippet will trigger -->
        <scope>text.html</scope>
    </snippet>
    

    您可以通过将光标放在要触发 sn-p 的文件中并从菜单中选择 Tools &gt; Developer &gt; Show Scope Name 来确定要使用的范围。该命令向您显示光标处字符的完整范围,并且您在scope 中包含的字符越多,在您的 sn-p 中拨打的次数就越多。

    例如,text 的范围适用于所有文本文件,text.html 适用于 HTML 和 Markdown 等基于 HTML 的文件,text.html.basic 仅适用于 HTML 文件,但不适用于 Markdown(即 text.html.markdown) .

    需要记住的是,范围基于为文件设置的语法,默认情况下,Sublime 中的所有新选项卡都是使用纯文本语法创建的,所以在 sn-p 之前会触发你需要分配适当的语法。

    你可以这样做:

    • 使用适当的扩展名保存文件
    • 从菜单中的View &gt; Syntax 中选择适当的语法,或单击窗口右下角的当前文件类型(都打开同一个菜单)
    • 从命令面板中选择适当的Set Syntax: 命令。

    有关 sn-ps 功能的更多信息,我推荐Unofficial Documentation,其中包括section on Snippets


    请注意,Sublime 附带的现有 sn-p 名称为 html,它的功能与您的示例类似。

    【讨论】:

      【解决方案2】:

      在 sublime 中你需要安装 Emmet 包。使用 Package 控件更容易完成。 github repo中有关于如何安装的说明:https://github.com/sergeche/emmet-sublime#available-actions 很抱歉将您的问题误认为是 sn-ps :)

      【讨论】:

      • 谢谢,我认为它们不一样。另外,我尝试在 sublime 中创建一个新的 sn-p,它只是说错误:没有 sn-p 的内容,即使我确实有新的 sn-p 的内容
      • 嗯,如果不是 sn-ps,我无法弄清楚它是什么。根据您上面的 html,您可以尝试以下操作:从菜单中创建一个 sn-p 并将其所有内容替换为:&lt;snippet&gt; &lt;content&gt;&lt;![CDATA[ &lt;!DOCTYPE html&gt; &lt;html&gt; blah... blah... blah... &lt;/html&gt; ]]&gt;&lt;/content&gt; &lt;!-- Optional: Set a tabTrigger to define how to trigger the snippet --&gt; &lt;tabTrigger&gt;html&lt;/tabTrigger&gt; &lt;!-- Optional: Set a scope to limit where the snippet will trigger --&gt; &lt;!-- &lt;scope&gt;source.python&lt;/scope&gt; --&gt; &lt;/snippet&gt;
      • 然后保存文件。现在,当您在某处键入“html”然后按 tab 按钮时 - 将出现来自 sn-p 的文本。
      • 它不起作用:让我编辑我的问题并向您展示我到目前为止所做的工作。
      • 在记事本++中,你是从 Plugins->Emmet->Wrap with abbreviation right?
      猜你喜欢
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 2017-08-21
      • 2015-05-12
      • 2012-02-26
      • 2016-03-26
      • 2018-09-02
      • 2012-06-01
      相关资源
      最近更新 更多