更改Atoms自动完成功能

4

好的,所以Atom默认安装了autocomplete-plus。当我编写代码时,它非常有帮助,但例如当我写cout时,它会自动写出std::cout << "/* message */" << '\n';,但我希望它写出std::cout << "/* message */" << std::endl,因为这两者之间存在区别,后者会刷新缓冲区。我该如何让它按照我的方式工作?

1个回答

4
你可以在 snippets.cson 文件中指定所需的自动完成行为。
  1. 打开编辑器,进入 Edit -> Snippets... 菜单。
  2. 将以下内容添加到文件中:
        '.source.c':
          'cout':
            'prefix': 'cout'
            'body': 'std::cout << "/* ${1:message} */" << std::endl$2'

第一行选择要激活的语法(本例中为C语言,您可以在此处找到更多介绍)。 第二行是代码片段的描述;它可以是任何内容。 第三行(前缀)指定您需要在C文件中键入的内容才能让代码片段生效。
在本示例中,在C文件中键入cout将在自动完成菜单中显示该描述,并允许使用Tab键进行补全。最后一行指定了代码片段应该展开的方式。使用$语法来指定Tab键顺序。
请注意,您可以使用语法${1:message}为代码片段内的Tab键停靠点指定默认值。在这种情况下,代码片段将会展开并自动选择文本message以供快速编辑。再次按下Tab键将移至第二个Tab键停靠点或该行的末尾。
请注意,您可以为每个语法指定任意数量的其他代码片段,例如:
    '.source.c':
      'cout':
        'prefix': 'cout'
        'body': 'std::cout << "/* ${1:message} */" << std::endl$2'
      'Another snippet description':
        'prefix': 'something'
        'body': 'Something is ${1:nice}'

耶稣,老兄,你太棒了!谢谢! - user6827707
顺便问一下,我能在哪里看到其他人是怎么写的吗?只是为了复制示例并稍微更改一下?(因为我不太清楚如何为“for循环”编写它) - user6827707
在 Atom 中,所有与 C 有关的代码片段都包含在 language-c 包中。如果您转到 设置 -> 包 -> language-c 并向下滚动,您将看到所有代码片段。我忘了提到您也可以编写多行代码片段(在 此页面 底部有描述)。 - Alexander Von Moll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接