C/C++ 的 Yasnippet 片段无法正常工作
Yasnippet snippet for C/C++ while doesn't work correctly
我刚刚为 emacs 安装了 yasnippet 包,正在尝试配置片段。一切正常,除了一个特定的片段。
文件:~/.emacs.d/elpa/yasnippet-20150212.240/snippets/cc-mode/while
# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
[=11=]
}
问题是,当我使用代码片段时,输出是这样的:
while(condition)
{
}
我通过将原始 while 文件更改为以下文件来检查我是否拥有正确的文件:
# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
[=13=];
}
(添加了分号),输出为:
while(condition)
{
;
}
为什么我的牙套后面有一个标签?
注意:其他一切正常。 For 循环工作正常,switch 工作正常,类 工作正常......只有 while 循环有问题。有什么想法吗?
找到答案了。对于像我这样刚开始使用 emacs 的人来说,这很棘手。
看了一下here默认的c-style好像是这样的
if(foo)
{
bar++;
}
因此,当我按下 Tab 键使用代码片段时,我还自动将代码格式化为默认的 C 样式。这就是 "gnu" 风格。要将其更改为 "linux" 样式,只需添加
(setq c-default-style "linux"
c-basic-offset 4)
到您的 .emacs 或 init.el 文件。
更改后的输出:
if(foo)
{
bar++;
}
毕竟和yasnippet没有关系
我刚刚为 emacs 安装了 yasnippet 包,正在尝试配置片段。一切正常,除了一个特定的片段。
文件:~/.emacs.d/elpa/yasnippet-20150212.240/snippets/cc-mode/while
# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
[=11=]
}
问题是,当我使用代码片段时,输出是这样的:
while(condition)
{
}
我通过将原始 while 文件更改为以下文件来检查我是否拥有正确的文件:
# -*- mode: snippet -*-
# name: while
# key: while
# --
while (${1:condition})
{
[=13=];
}
(添加了分号),输出为:
while(condition)
{
;
}
为什么我的牙套后面有一个标签?
注意:其他一切正常。 For 循环工作正常,switch 工作正常,类 工作正常......只有 while 循环有问题。有什么想法吗?
找到答案了。对于像我这样刚开始使用 emacs 的人来说,这很棘手。
看了一下here默认的c-style好像是这样的
if(foo)
{
bar++;
}
因此,当我按下 Tab 键使用代码片段时,我还自动将代码格式化为默认的 C 样式。这就是 "gnu" 风格。要将其更改为 "linux" 样式,只需添加
(setq c-default-style "linux"
c-basic-offset 4)
到您的 .emacs 或 init.el 文件。
更改后的输出:
if(foo)
{
bar++;
}
毕竟和yasnippet没有关系