用于C / C ++的Yasnippet片段虽然无法正常工作

时间:2015-03-05 09:37:45

标签: emacs yasnippet

我刚为emacs安装了yasnippet软件包,我正在尝试配置代码段。除了一个特殊的snipet之外,一切都很好。

档案:〜/ .emacs.d / elpa / yasnippet-20150212.240 / snippets / cc-mode / while

# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
    $0
}

问题在于,当我使用片段时,输出如下:

while(condition)
    {

    }

我通过将原始文件更改为此来检查我是否有正确的文件:

# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
    $0;
}

(添加了分号),输出结果为:

while(condition)
    {
        ;
    }

为什么我的牙套后面有一个标签?

注意:其他一切正常。对于循环工作正常,切换工作正常,类工作正常...只有while循环有问题。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

找到答案。对于刚开始使用像我这样的emacs的人来说,这很棘手。

看了here之后,似乎默认的c风格是这样的

if(foo)
      {
        bar++;
      }

所以当我按Tab键使用该片段时,我也自动将代码格式化为默认的c样式。那是" gnu"样式。将其更改为" linux"风格只需添加

(setq c-default-style "linux"
      c-basic-offset 4)

到您的.emacs或init.el文件。

更改后的输出:

if(foo)
{
    bar++;
}

毕竟它与yasnippet毫无关系。