标签: yasnippet

显示yasnippet的所有片段

有什么方法可以显示yasnippet可用于当前主要模式的所有片段?

emacs yasnippet

24
推荐指数
4
解决办法
4259
查看次数

当Yasnippet宏可以触发时,如何触发事件?

我喜欢yasnippet,但需要时间记忆.我想做的是当我处于可以扩展宏的点时(当没有宏时再次返回),更改光标颜色.但是,从我记忆中yasnippet如何工作,这可能不完全是高性能的.

一位朋友建议我在这里想要的是一个yasnippet-can-fire-p,但我仍然不确定这样做的最好方法.实现这一目标最干净的道路是什么,不会让我的系统停止运转?

emacs elisp yasnippet

11
推荐指数
1
解决办法
377
查看次数

emacs 24自动完成yasnippet

我已经有一段时间遇到了问题,这让我很头疼.我正在使用emacs 24.2.1

下一个代码是我自动完成的配置,当我在没有yasnippet的情况下运行它时,一切都运行顺畅.

(add-to-list 'load-path "~/.emacs.d/autocomplete/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/autocomplete/ac-dict")
(ac-config-default)
Run Code Online (Sandbox Code Playgroud)

这是yasnippets的配置

(add-to-list 'load-path "~/.emacs.d/yasnippet")
(require 'yasnippet)
(yas/global-mode t)
Run Code Online (Sandbox Code Playgroud)

在这段代码之后,yasnippet运行正常但是自动完成停止了c-mode,c ++模式,java-mode和php-mode的工作,但是它与lisp和python一起使用(我只测试了这些语言).

我已经尝试过我发现像自动完成代码这样的代码

(set-default 'ac-sources
             '(ac-source-abbrev
               ac-source-dictionary
               ac-source-yasnippet
               ac-source-words-in-buffer
               ac-source-words-in-same-mode-buffers
               ac-source-semantic))

(ac-config-default)

(dolist (m '(c-mode c++-mode java-mode))
  (add-to-list 'ac-modes m))

(global-auto-complete-mode t)
Run Code Online (Sandbox Code Playgroud)

一段时间后,我意识到当我没有yasnippet时,自动完成工作正常,所以这不是解决方案.我也试过(yas/initialize)(yas - initialize),但它没有任何区别.我还在自动完成之前和之后启动了yasnippets,结果是一样的.我也尝试修改yas/trigger-key变量,并且总是得到相同的结果.希望你能帮助我.

emacs autocomplete yasnippet emacs24

9
推荐指数
1
解决办法
5324
查看次数

关于emacs中的自动完成和yasnippet

我在Emacs中使用自动完成和yasnippet,我对它们的设置感到困惑.我在下面放了以下代码.emacs:

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas/global-mode 1)
(global-set-key (kbd "C-i") 'yas/expand)
(setq yas/also-auto-indent-first-line t)

(add-to-list 'load-path "~/.emacs.d/plugins/autocomplete/")
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/plugins/autocomplete/ac-dict")
(ac-config-default)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-n" 'ac-next)
(define-key ac-menu-map "\C-p" 'ac-previous)

(defun ac-js-mode()
(setq ac-sources '(ac-source-yasnippet
                 ac-source-symbols
                 ac-source-words-in-buffer
                 ac-source-words-in-same-mode-buffers
                 ac-source-files-in-current-dir
                 )))
(add-hook 'js-mode-hook 'ac-js-mode)
Run Code Online (Sandbox Code Playgroud)

我试图将yasnippet设置为自动完成弹出菜单中的第一个候选者.但是,如下面的示例所示,这不适用于我当前的设置:当我键入单词时for,formatItem处于第一个位置和for第二个位置.formatItem只是当前缓冲区中的本地函数.

 for_____________
|formatItem      |
|for            a|
|for            s|
|force          s|
|foreachv       s|
 ----------------
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:如何让yasnippet成为自动完成的第一个候选人?我的.emacs配置中是否缺少某些内容?

任何帮助表示赞赏.

macos emacs autocomplete yasnippet

8
推荐指数
1
解决办法
2944
查看次数

如何使用YASnippet在代码段中展开代码段?

YASnippet网站上,我注意到以下描述yas/triggers-in-field:

如果非零,则yas/next-field-key可以触发堆叠扩展,这是另一个代码段扩展内的代码片段扩展.否则, yas/next-field-key只是尝试继续下一个字段.

我不清楚如何实现这一目标.

我假设在设置之后:#expand-env: ((yas/triggers-in-field #t))每当我在字段中键入一个缩写并按下Tab它时它会扩展,但事实并非如此.

emacs code-snippets yasnippet

7
推荐指数
1
解决办法
1564
查看次数

触发键在 Yasnippet emacs 中不起作用

Yasnippet 似乎可以工作,但触发键却不能。我可以加载片段、查看片段表和 Mx yas/expand。但是,在输入触发键(即时间)后,我想使用不起作用的 TAB 键来扩展代码片段。我检查了 yasnippet.el 文件,发现 yas-trigger-key 设置为 。我尝试更改它,但仍然无法使其工作。有人知道发生了什么事吗?我试图首先在 LaTeX 模式下使其工作。Yasnippet 告诉我我还应该尝试抄送 Cs,但这似乎只是插入“\end”。

我通过 el-get 打包管理器下载了 Yasnippet。我正在使用 OSX 和 emacs 23.4.1

emacs latex code-snippets yasnippet

6
推荐指数
1
解决办法
3198
查看次数

取消设置yasnippet的'Tab'绑定?

Tabyasnippet 的键绑定通常会覆盖其他有用的键.

有没有办法禁用TabYasnippet的绑定以启用其他Tab用法?

emacs yasnippet emacs-prelude

6
推荐指数
2
解决办法
2434
查看次数

正则表达式作为触发器

其中一个代码约定是在方括号和括号内包含一个空格的填充.所以list[ index ],不是list[index].添加这些空格可能很烦人,所以我尝试编写一个片段:

# name: Bracket
# key: [
# --
[ ${1:exp} ]
Run Code Online (Sandbox Code Playgroud)

当开头方括号前面有一个空格或一行的开头,而不是前面有一个标识符时,这种方法有效.我认为一种方法是将触发器设置为正则表达式:

# key: "[:ascii:]"[
Run Code Online (Sandbox Code Playgroud)

或类似的东西.这甚至可能吗?或者还有其他一些聪明的方法可以使这项工作?我正在为python编写这个,但我认为这不重要.

谢谢!

regex emacs yasnippet

6
推荐指数
1
解决办法
435
查看次数

在 Emacs 中停用特定的 yasnippet

随着Yasnippet近日从MELPA更新,我希望能够结束只有片段xxx,并todo附带文本模式。第一个扩展为x,另一个扩展为t,这让我很困扰,因为我在组织模式下编写数学文本,我需要自己写几个x's 和t's,然后按TAB退出括号。

yas-buffer-local-condition来看,如果#condition:片段中有指令,我似乎可以做一些事情,但提到的片段没有。

如果我只是删除文件,我就可以了,但不幸的是,它们会在 Yasnippet 的每次更新时重新出现。

emacs yasnippet

6
推荐指数
1
解决办法
899
查看次数

如何在yasnippet中为python-mode删除一行的缩进?

我想关闭我的if语句,注释指示在if语句中检查的条件.我正在使用带有emacs的yasnippet,我使用的代码是:

# -*- mode: snippet -*-
# name: if
# key: if
# group : control structure
# --
if ${1:cond}:
    $0
# endif $1
Run Code Online (Sandbox Code Playgroud)

我的问题是最终的#endif注释与$ 0对齐.有没有办法让它与if语句一致?

emacs yasnippet

5
推荐指数
1
解决办法
687
查看次数