首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Yasnippet

如何使用Yasnippet
EN

Stack Overflow用户
提问于 2021-05-25 20:45:47
回答 1查看 89关注 0票数 3

我最近观看了这段精彩的视频关于如何在Emacs中使用Yasnippet的节目。

有人能解释一下如何使用这个片段吗?

具体来说,对于这个片段的预期用途,ifstring-match的条件/函数是做什么的?

这个片段可以在Yasnippet c++模式> printf中找到。

代码语言:javascript
复制
# -*- mode: snippet -*-
# name: printf
# key: printf
# --
printf("${1:%s}\\n"${1:$(if (string-match "%" yas-text) ", " "\);")
}$2${1:$(if (string-match "%" yas-text) "\);" "")}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-25 21:28:25

因此,如果您可以正确地将其加载到模式中(有几个yasnippet模式未能为我正确加载--如果所有其他模式都失败了,那么在代码片段文件本身中使用M-x yas-load-snippet-buffer并查看它是否有效),它就会工作。

对于宏,第二个参数基本上取决于第一个包含"%“号的参数。如果是,则在结束引号之后插入逗号,然后从正在编辑的字符串跳转到点击选项卡。如果它在任何地方都不包含%,那么它将被删除。换言之:

如果您在第一个参数(字符串)中键入"hello world“而没有%s,则得到:

代码语言:javascript
复制
printf("hello world\n");

没有第二个值来填写。但是,如果您添加了%s,那么在单击选项卡(我输入CURSORHERE的位置)时,将光标放在,之后以填充第二个:

代码语言:javascript
复制
printf("hello %s\n", CURSORHERE)); 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67695426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档