分页: 1 / 1

[版本问题] emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突

发表于 : 2012-12-22 18:02
bluebirdshao
首先,我从 auto-complete 的官网下载了最新 auto-complete 并按照 README 配置好
http://cx4a.org/software/auto-complete/
此时在 emacs 上使用 TAB 按键进行补全一切正常

然后我又根据提示使用 git 下载了最新的 yasnippet 。
git clone https://github.com/capitaomorte/yasnippet
同样根据上面的提示配置好了 yasnippet

然后就是恶梦的开始了,原本工作得好好的 TAB 键被 yasnippet 抢劫了,
现在 auto-complete 无法使用 TAB 键来进行补全了。

查看了下 plugins 下的 auto-complete-config.el 文件,有清楚地写着
;; yasnippet
的代码,可是为什么还是产生冲突了呢

求最优解决方案,最好就是 TAB 键同时能够应付这两种最需要的功能。

已解决:见 4 楼。

:em11

Re: Help: emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突,如何最优

发表于 : 2012-12-22 18:05
bluebirdshao
将配置文件上的内容贴上:
auto-complete

代码: 全选

;; Auto-Complete-Mode
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/plugins/ac-dict")
(ac-config-default)
yasnippet

代码: 全选

(add-to-list 'load-path
              "~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas/global-mode 1)
都是 README 文件上标准配置。
求解!

Re: Help: emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突,如何最优

发表于 : 2012-12-22 18:26
gy619
ac 里面优先yas, 这样是最佳设置. 举例:输入defun, 按下tab触发ac, 如果defun这个关键词,刚好yas也定义了,则按tab的时候,第一个出来的是yas的定义,后面的是ac的定义.
解决方法:设置ac的规则.

Re: Help: emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突,如何最优

发表于 : 2012-12-22 19:08
bluebirdshao
原来是 auto-complete 的源代码还未正确支持 yasnippet 0.8.0 的版本,
仅仅还只是支持 yasnippet 0.6.0 的版本。
我在 auto-complete 1.3.1 版本中看到这么一段代码:

代码: 全选

             (if (fboundp 'yas/snippet-table)
                 ;; <0.6.0
                 (yas/snippet-table major-mode)
               ;; 0.6.0
               (yas/current-snippet-table))))
具体未考究,说明 auto-complete 支持的最高版本是 yasnippet 0.6.0 版本,

只好乖乖使用 0.6.0 版本的 yasnippet 了。

问题解决。

Re: Help: emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突,如何最优

发表于 : 2012-12-23 11:47
Fermat618
bluebirdshao 写了:原来是 auto-complete 的源代码还未正确支持 yasnippet 0.8.0 的版本,
仅仅还只是支持 yasnippet 0.6.0 的版本。
我在 auto-complete 1.3.1 版本中看到这么一段代码:

代码: 全选

             (if (fboundp 'yas/snippet-table)
                 ;; <0.6.0
                 (yas/snippet-table major-mode)
               ;; 0.6.0
               (yas/current-snippet-table))))
具体未考究,说明 auto-complete 支持的最高版本是 yasnippet 0.6.0 版本,

只好乖乖使用 0.6.0 版本的 yasnippet 了。

问题解决。
好办法

Re: [版本问题] emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突

发表于 : 2012-12-23 13:11
gy619
搞不明白,怎么ac 和yas都用这么旧的版本呢?
ac 目前1.4了.
yas 目前0.8了.

Re: [版本问题] emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突

发表于 : 2012-12-23 16:18
bluebirdshao
因为是从官网 http://cx4a.org/software/auto-complete/
下载的 Last Stable v1.3.1

Re: [版本问题] emacs 上的 auto-complete 和 yasnippet 的 TAB 按键冲突

发表于 : 2012-12-31 1:00
Eastsun
这个问题折腾了我好一段时间。

后来发现stable版本不够新,要下载daily build版,一切ok。