Modular in-buffer completion framework for Emacs

View on GitHub

狠狠干狠狠插狠撸撸科学家为拍科教片献上胳膊肘 让蟒蛇猛咬一口(图)


  張泰翻過了一頁,下一條是說乙未亭溺鬼求替代之事,很是不經。剛看了兩行,他心頭突然一凜,忽地又翻了回來。   張泰的回答一點也沒有遲疑。羅大人嘆道︰“曹官保得友如君,也算不枉此生。既然如此,張先生,羅某便成全你吧。”狠狠干   黎斯看了童百泉一眼︰“童村長有話直說,不必有顧慮。”狠狠插   “第二,自在堂門下,決沒有這等高明的武功。”   黎斯看了童百泉一眼︰“童村長有話直說,不必有顧慮。”狠撸撸   “小心。”方震叮囑了一句,他在電話另外一端的聲音沒什麼起伏,就像是例行公事。可我知道,他這個人從來不說廢話。不知道這一句小心,是指小心鐘愛華,還是指小心藥不然。

Company is a text completion framework for Emacs. The name stands for "complete anything". It uses pluggable back-ends and front-ends to retrieve and display completion candidates.

It comes with several back-ends such as Elisp, Clang, Semantic, Eclim, Ropemacs, Ispell, CMake, BBDB, Yasnippet, dabbrev, etags, gtags, files, keywords and a few others.

The CAPF back-end provides a bridge to the standard completion-at-point-functions facility, and thus works with any major mode that defines a proper completion function.


company-elisp company-semantic


This package is part of GNU ELPA (M-x list-packages).

Advanced users can also download the development snapshot.


Once installed, enable company-mode with M-x company-mode.

Completion will start automatically after you type a few letters. Use M-n and M-p to select, <return> to complete or <tab> to complete the common part. Search through the completions with C-s, C-r and C-o. Press M-(digit) to quickly complete with one of the first 10 candidates.

Type M-x company-complete to initiate completion manually. Bind this command to a key combination of your choice.

When the completion candidates are shown, press <f1> to display the documentation for the selected candidate, or C-w to see its source. Not all back-ends support this.

To use company-mode in all buffers, add the following line to your init file:

(add-hook 'after-init-hook 'global-company-mode)

To see or change the list of enabled back-ends, type M-x customize-variable RET company-backends. Also see its description for information on writing a back-end.

For information on specific back-ends, also check out the comments inside the respective files.

For more information, type M-x describe-function RET company-mode.

To customize other aspects of its behavior, type M-x customize-group RET company.

See Also


If you experience any problems or have a feature request, please use the issue tracker.


Company is subject to the same copyright assignment policy as Emacs itself, org-mode, CEDET and other packages in GNU ELPA. Any legally significant contributions can only be accepted after the author has completed their paperwork. Please ask for the request form, and we'll send it to you.

More Reading