Emacs,自动完成模式,CSS,痛苦.(图示!)

a p*_*erd 31 css emacs autocomplete

我为Emacs安装了自动完成模式.

第一:当我输入声明时,我得到了正常的自动完成行为:

主持者imgur.com

所以我点击Tab完成 - 没问题.但后来我点击;:

主持者imgur.com

它立刻试图完成一些事情!我不能打,Enter因为那会接受错误的完成!

主持者imgur.com

所以我必须打C-j.太痛苦了.

第二:一旦我完成了声明,我输入}:

主持者imgur.com

...但除非我打字,否则它不会缩进Tab.

是什么赋予了?

更新,设置:

我正在使用Emacs 23.我的css-electric-keys};.我的自动完成配置如下:

(ac-config-default)
(setq ac-auto-start t)
(setq ac-delay 0.1)
(setq ac-auto-show-menu nil)
(setq ac-show-menu-immediately-on-auto-complete t)
(setq ac-trigger-key nil)
Run Code Online (Sandbox Code Playgroud)

Ala*_*ain 11

以下是一些建议:

  1. (setq ac-auto-start t)自动开始自动完成.如果将其更改为(setq ac-auto-start 1)(或2或3),则只有在键入了许多字符后才会启动.这可能无法解决您的问题,但如果您键入后;,它会将整个前一个单词视为当前自动完成搜索的一部分.

  2. 也许问题是它没有将分号识别为分隔字符(如空格),所以它认为你还在添加到最后一个字.也许将分号字符串添加到ac-ignore可以解决问题吗?(不确定它的语法是什么)

  3. 也许你可以通过添加:(define-key ac-complete-mode-map "\t" 'ac-complete)和来阻止通过回车键自动完成(define-key ac-complete-mode-map "\r" nil).我不确定这将如何与DWIM交互(默认情况下启用).

  4. 尝试添加分号作为自动完成密钥?

我的.emacs知识在0到10的范围内就像1.5,但也许这会让一些更好的想法慢慢来.