问题标签 [yasnippet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
641 浏览

emacs - 如何在 yasnippet 中报价 1 美元

假设,我有以下 yasnippet:

$1这是正则表达式的第一个匹配项。不是 yasnippet 特殊符号。我怎样才能引用它,所以它按原样插入到代码中?

0 投票
1 回答
147 浏览

emacs - Emacs:如何摆脱 perl 模式 yasnippet 中不需要的选项卡

我在 perl 模式中有以下 yasnippet 来创建子:

但是当 Emacs 展开它时,它会生成一个不需要的选项卡:

我在片段定义中没有这个选项卡,所以它似乎是由 cperl-mode 添加的(perl-mode yasnippets 在 cperl-mode 中激活)。如何摆脱它?

0 投票
1 回答
457 浏览

emacs - 如何在 html 文件中扩展 yasnippet 片段

我有一个创建空 html 文件的 lisp 脚本:

然后我使用 yasnippet 生成基本的 html 文件:我有一个名为“base”的片段(我按 TAB 键将其展开)

有没有办法在我的 lisp 脚本中使用这个片段?

我尝试了,但没有成功使用(yas/expand-snippet base)

谢谢。

古尔文。

编辑

使用 abo-abo 的代码,我得到了一些效果很好的东西:

我只需要使用 Mx cd 将当前目录设置到正确的位置。可能有一个更有效的解决方案,无需在缓冲区中打开文件。但是这个已经很酷了。谢谢 abo-abo

0 投票
2 回答
131 浏览

emacs - 从菜单栏中删除 Yasnippet

如何从 Emacs 菜单栏中删除 YASnippet 类别?

0 投票
1 回答
457 浏览

emacs - 如何选择带有前导 \$ 的区域,并用 yasnippet 将其包围

任何人都可以建议一种方法来包围包含前导的区域\$并用片段包围它。在latex-mode中,我经常在应付款项下划线或双下划线,并且使用的 yasnippet 删除了反斜杠。我希望能够在所有情况下使用相同的代码段——有没有前导\$.

0 投票
1 回答
337 浏览

c++ - 如何将 Emacs 24 配置为 K&R(或 Stroutrup)样式?

我想要这样的代码。

for (;;) {

}

但是 YASnippet 总是输出这个。

有没有办法改变 C++ 风格?

这是我的 .emacs 文件。

(setq c-default-style "stroustrup")

(add-to-list 'load-path "~/emacs/yasnippet/") (require 'yasnippet) (yas-global-mode 1)

0 投票
1 回答
285 浏览

elisp - 目录中的 yas-choose-value 文件

我正在尝试使用默认值作为目录中的文件进行剪辑,但失败了。似乎在 yas-choose-value 中调用 elisp-code 需要特殊处理?

我知道你可以硬编码它。就像是

但我想调用“目录文件”,它应该返回列表(“foo”“bar”)。所以,像:

但是我这样做会遇到各种各样的错误。最经常:

我哪里错了?

0 投票
1 回答
99 浏览

emacs - 在替换区域中键入字母“t”时,YASnippet 失败

创建了以下 YASnippet(在 Org 模式下自动创建标题):

在大多数情况下一切都是正确的,除非我在标题中输入“t”字符......

它适用于其他字母,而不是那个。找不到原因。任何想法?

0 投票
3 回答
792 浏览

emacs - yasnippet 离场条件转换

我正在编写一个片段(用于 Go),并且希望在移动到下一个字段时有条件地转换一个字段。具体来说,如果我不对其进行编辑,我希望该字段为空,如果我不对其进行编辑,则将其括在括号中。

我不成功的片段,表达了我想要的但未能转换已编辑的字段:

我想要的是,t Type在该字段中输入时,该片段将扩展为:

当跳过未经编辑的字段时,它会像这样扩展:

我知道条件按预期执行,因为如果我更改(concat ...)(message "XXX"),我会看到打印在迷你缓冲区中的跟踪,但我无法弄清楚为什么我的转换不起作用。

0 投票
2 回答
4225 浏览

emacs - 如何使用 yasnippet 和 abbrev 进行自动完成工作?

我希望 Emacs 像这样工作:

  • auto-complete自动弹出菜单:

    /li>
  • 使用C-n/p/M-n/p选择auto-complete弹出菜单候选:

    /li>
  • 选择候选人时

    • 禁用TAB/S-TAB在弹出菜单选择中:

      /li>
    • Enter选择候选,不插入换行符

      /li>
    • 如果候选人是abbrevEnter应该只选择候选人:

      ... 并按下Space应该会导致 Emacs 自动扩展缩写。

    • 如果候选人是dabbrev,按下M-\候选人应该触发dabbrev-expand

    • TAB/C-i展开候选yasnippet

      我设置了这个,但是当我按下时触发器没有展开TAB

    • TAB在字段中按下以展开片段触发器:

      /li>
    • C-j跳到下一个字段:

      /li>
    • 如何使用 展开片段中的片段yasnippet


一些解释

TABEmacs中有两个:

  • (kbd "TAB")/(\t, [9])
  • (kbd "<tab>")/([tab])

如果模式喜欢yasnippet并且auto-complete想要绑定到TAB,它们的触发键必须与原始的 tab 命令相同。由于 Emacs 绑定indent-for-tab-command(kbd "TAB"),因此最好使用它作为触发键。yasnippet默认情况下绑定到它,并且很容易设置auto-complete为触发使用TAB

但在某些模式下(ruby-modemarkdown-modeorg-mode等),该命令绑定到 (kbd "<tab>"). 当真正的 tab 键被键入时,绑定到的函数(kbd "<tab>)具有更高的优先级,所以yasnippetauto-complete不会被调用。这很容易通过移动键绑定来解决:

我的设置

我通过打包管理器yasnippet下载了 。我正在使用 Ubuntu 12.04 和 Emacs 24.3.50.1。auto-completeel-get

包起来

我知道这个问题有点长,但它确实让我很难使用auto-completeyasnippet. 如果基本键绑定不能顺利进行,这会大大减慢我的工作流程。我想很多人都有类似的问题,因为我在互联网上发现了一些类似的问题(尽管没有一个与我的完全一样)。

正如你在上面看到的,一些我已经知道的相关设置。(但如果您认为我在某处犯了错误,请告诉我。)还有一些我仍然不知道如何设置的东西(???)。也许没有办法让所有这些设置一起工作?让我知道是否是这种情况,否则请确保这些设置都不会相互干扰。

在我得到这个问题的答案后,我希望编写一个 Emacs 扩展来自动初始化所​​有这些设置。

谢谢你的帮助!