spacemacs 中使用 yasnippet 不能补全,求赐教!

spacemacs

#1

由于以前很依赖 yasnippet,现在用spacemacs后,不用不舒服斯基,配置yasnippet如下图所示 aaaaaaaaaaaa

现在却不能补全,请问还有什么需要设置的吗,求教!!!


#2

我用 TAB键不能补全,但手动 M-x yas-expan 可以补全,似乎spacemacs改变了默认的TAB补全方式,那么我是不是要创建一个layer,把TAB键重新绑定成TAB呢!


#3

目前的解决办法是直接在 .spacemacs 文件里进行键绑定到TAB,不晓得以后会不会有什么问题


#4

把那行 (setq yas-snippet-dirs ...) 删了。

另外再开个 auto-completion


#5

自己查看auto-completion layer. M-x ivy-spacemacs-help -> auto-completion, 打开一个文件后浏览该目录下的readme.

.emacs.d/snippets.spacemacs.d/snippets目录都是默认的private的yasnippet目录。

我的配置:

     (auto-completion :variables
                      auto-completion-enable-sort-by-usage t
                      auto-completion-return-key-behavior 'complete
                      auto-completion-tab-key-behavior 'complete
                      auto-completion-enable-snippets-in-popup nil
                      auto-completion-idle-delay 0.2)

#6

谢谢答主,请问 我设置 yasnippet,怎么还要开 auto-completion呢~


#7

谢谢答主的回答,请问 我设置 yasnippet,怎么还要开 auto-completion呢~


#8

就能有這个。


#9

谢谢答主里 !


#10

因为spacemacs的yasnippet的包是配在auto-completion的layer下的啊


#11

好的谢谢老铁了!!!我去了解下


#12

不知道你有没有碰到yas active时不能补全单词的问题(tab一下就到下一个field了),可能需要改一下按键,我是tab补全,(yas active时)enter到下一field:

(define-key yas-keymap (kbd "<return>") 'yas-next-field)

另外要普通状态下tab同时展开yas或company补全需要判断一下:

stackexchange上原版是有yas active时tab可以补全或next-field的功能的,我把这个去掉改成上面说的enter了,另外修正了两个已经不存在的yas函数。


#13

yas和company同时补全的还没试过,我去看看,谢老铁!