【问题标题】:Sublime Text C89 autocompletionSublime Text C89 自动补全
【发布时间】:2018-07-24 16:31:49
【问题描述】:

我正在使用 ST3 和 C89 标准中的代码。 超级有用的 for 循环自动完成完成:

for (int i = 0; i < count; ++i)
{
    /* code */
}

但这不符合标准。是否可以在某些配置文件中更改此行为以完成:

int i = 0;
for (i < count; ++i)
{
    /* code */
}

?

【问题讨论】:

    标签: sublimetext3 sublimetext c89


    【解决方案1】:

    这实际上是一个 sn-p,它由 sublime 附带的 c++ 包提供(由于它们的相似性,该包涵盖了 C 和 C++)。

    负责自动补全的sn-p在Packages\C++\Snippets\030-for-int-loop-(fori).sublime-sn-p中,看起来像这个:

    <snippet>
        <description>For Loop</description>
        <content><![CDATA[for (int ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
    {
        ${0:/* code */}
    }]]></content>
        <tabTrigger>for</tabTrigger>
        <scope>source.c, source.objc, source.c++, source.objc++</scope>
    </snippet>
    

    您可以根据需要进行修改。为此,

    1. 为 sublime 安装 PackageResourceViewer。它可以让您查看 sublime 包的内部。
    2. 使用 ctrl+shift+p 打开 命令调色板
    3. 输入 prv:o 并从列表中选择 PackageResourceViewer: Open Resource
    4. 键入 C++ 并导航到 Snippets\030-for-int-loop-(fori).sublime-sn-p
    5. 用这个修改代码。

      <snippet>
           <description>For Loop</description>
           <content>
           <![CDATA[int ${2:i} = 0;
      for ( ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
      {
           ${0:/* code */}
      }]]></content>
          <tabTrigger>for</tabTrigger>
          <scope>source.c, source.objc, source.c++, source.objc++</scope>
      </snippet>
      
    6. 并保存文件。

    【讨论】:

    • 很高兴听到这个消息。请注意,一旦安装或更新 sublime,更改将丢失。你必须再次这样做。你可以创建一个新的 sn-p 以避免使用 tools->developer->new sn-p
    【解决方案2】:

    您可以在此处的 Sublime Text 文档中找到如何添加特定的自动完成 - http://docs.sublimetext.info/en/latest/extensibility/completions.html。如果你已经有一个为你执行 C 自动完成的 Sublime Text 包,你可能需要禁用它。

    【讨论】:

      猜你喜欢
      • 2014-04-06
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2012-11-19
      相关资源
      最近更新 更多