自动补全

semantic 的 navigation + 基于 Clang 的 auto complete 比 semantic 的 补全好用.


另外, 补全时 : 还是和 yassnippet 冲突 ( yas-expand-from-trigger-key ) , capitaomorte 的 issue list 中 也表示 暂时无能为力.

虽然会自动弹出 imenu , 但用起来还是不顺手. 可以考虑改成别的 key sequence .


### 工作流程

auto-complete 是 自动开启的 , 输入 n 个字符后 , 跳出 candidate的 imenu 让你选择 , 在 TAB 选择了某个 candidate 之后 , 就 RET 来 ac-complete :

根据 candidate 的 数量  , TAB 会 呈现不同的功能.

  • Case that only one candidate remains

    If only on candidate remains, the candidate will be used to complete. 只有一个candidate 就是 ac-complete

  • Case that there is common part among candidates 多个 candidate , 补全 common part 

    For example, if all candidates start with "set", it means they have common part "set". So TAB completes "set" at first.

  • Otherwise, select candidates in cycle by typing TAB. 否则, 循环 多个 candidate .

### 一些设置

AC user manual 的 7.Tips 中 提到了一些. 其中 :

ac-dwin , ac-use-quick-help, ac-show-menu-immediately-on-auto-complete 和 ac-expand-on-auto-complete 都是实用的设置 .

然而 , 看了一下src,这些变量都是 defcustom option t , 也就是 默认打开. 所以, 就不再配置了. ( defcustom option standard doc [keyword value]... ).

至于 trigger key ( 开始 ac-expand ) , 只有当 ac-auto-start  为 nil 时 才有效 , 而 ac-auto-start  默认是打开的. trigger key 的 设置 于我,没有意义.


另外, ac-sources 也是很重要的设置 . 具体参考 manual .

但是,我的host 上 ac-source-semantic 有 bug .


### 有意思的特性 ,

1. auto-complete 的 fuzzy matching 


### 做的几个修改:

(1) 把 semantic 添加 include 文件的步骤作为 hook 的一部分 , 放到 my-variables.el 中去 .

(2) 取消了 ac-clang-config , 放到 my-variables.el 中去 ; 讲 属于 auto-complete.el 的 配置 全部放入到 auto-complete-init.el , 这样 , 这两个措施使得 auto-complete-config.el 更加干净.


### more advanced : 

ref : http://www.emacswiki.org/emacs/AutoCompleteSources 给出了 python , semantic 等的配置.

http://cx4a.org/software/auto-complete/manual.html#Filtering_Completion_Candidates AC user manual 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值