Personal tools
You are here: Home ブログ matsuyama テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました
Document Actions

テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました。 Visual Studio とか Eclipse には昔から搭載されている一般的な補完機能なのですが、どういうわけか Emacs にはないようなので作ってしまいました [*]

[*]僕の知るかぎりだと company-mode が一番近い

テキストが入力されたら、そのテキストにマッチする単語あるいはシンボルらしきものをバッファから探してきてポップアップします。よくあるインターフェースなので、スクリーンショットを見ればどういうものか一発で分かると思います。

http://dev.ariel-networks.com/Members/matsuyama/images/ac.png/image

まだよく分からないという人はデモを見てください。

http://www.cx4a.org/pub/ac-demo/ac-demo.html

情報は EmacsWiki のページに集約する予定です。

http://www.emacswiki.org/emacs/AutoComplete

auto-complete.el を使うには、 EmacsWiki のページあるいは下記の URL から auto-complete.el をダウンロードしてきて、

http://www.cx4a.org/pub/auto-complete.el

load-path の通ったディレクトリにコピーします。

後は、以下のコードを .emacs に書いておけば OK です。

(require 'auto-complete)
(global-auto-complete-mode t)

動作確認するには、適当なバッファ(例えば .emacs のバッファ)に移動して、適当な文字列を入力します。その文字列にマッチするバッファ内の文字列が候補されたら OK です。動作しなかったら M-x auto-complete-mode して auto-complete-mode が有効なことを確認してください。

使い方は、

TAB:
補完を実行する。すでに実行されていたら次の候補を選択する。
C-n/<down>:
次の候補を選択する。
C-p/<up>:
前の候補を選択する。
C-m/RET:
補完を実行して終了する。

です。

Enjoy.

Category(s)
emacs
The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/matsuyama/auto-complete/tbping

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by rubikitch at 2008-11-09 04:04
これはすごい。さっそく使ってみます。ブログで紹介しました。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2008-11-09 05:30
さっそく使ってみました。が、以下のようなエラーが出たあと、機能しなくなります。
"Error in post-command-hook: (wrong-type-argument wholenump -16)"
原因はわかっていません。補完候補に日本語が含まれているときに出やすいようです。
環境は、Mac OS X 10.5 GNU Emacs 22.2.1 (i386-apple-darwin8.11.1, Carbon Version 1.6.0) です。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-09 10:38
> rubikitch さん
バッファの最後にいる場合は適当にスクロールするようにしておきました。

> Anonymous User さん
最新にすれば直ってると思います。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2008-11-09 14:25
日本語がおかしいと報告した者です。
日本語対応ありがとうございました。
早速、最新版を試してみたのですが、まだ同じような現象が続いています。
補完候補に日本語などのMBCSが含まれるとき、menuが崩れ、エラーとなる状況です。
で、ac-menuを生成するところが怪しいと思い、ac-candidate-widthの値25->80に変えたところ。
menuの崩れは解消できないものの、エラーは出ないです。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Designer at 2008-11-09 22:29
thanks..... nice article.

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2008-11-10 13:52
これはすごい。早速つかわせていただきます(・∀・)

一応既存のものはあるっちゃあるみたいですねー。
http://cedet.sourceforge.net/intellisense.shtml
でもMeadowで動かないのでこっちはパス

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-11 11:43
> 早速、最新版を試してみたのですが、まだ同じような現象が続いています。
現在の最新ではどうでしょうか。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2008-11-11 14:36
> 現在の最新ではどうでしょうか。
最新版で試してみました。
menuの崩れもありませんし、ac-candidate-widthをデフォルト25のままでも問題なく動作しました。
ありがとうございました。愛用させてもらいます。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by paella at 2008-11-11 18:19
すばらしいです!皆さん同様、私も早速使わせてもらっています。

ところで動作についての質問があります。
CarbonEmacs(GNU Emacs 22.2.50.1)で実行しているのですが、TABキーを入力しなくても補完一覧がイキナリ表示されてしまっています。
これは意図してのものでしょうか。説明文だと、TABキー入力をトリガにして補完リストが表示されるように読めたのですが…。
勘違いしていたらすみません。

もし可能でしたら、設定で切り替えられるようにしてもらえると嬉しいです。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-12 22:32
> CarbonEmacs(GNU Emacs 22.2.50.1)で実行しているのですが、TABキーを入力しなくても補完一覧がイキナリ表示されてしまっています。
仕様です。が、いきなり補完されると邪魔という意見は聞いているので、次のバージョンでそのあたりを設定で切り替えられるようにします。しばしお待ちを。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by tomo at 2008-11-14 04:56
素晴らしいelispをありがとうございます。

リリース当日に試させてもらったのですが、該当候補があった場合、いちいちC-n, C-p, C-mが食われちゃうとプログラムを書く速度が劇的に下がった為、一旦外しました。

該当候補があった場合、自動で候補表示というアイデアは良いと思うのですが、キーバインドをM-n, M-p, M-m等別の別のキーにバインドするというアイデアはどうでしょうか?

僕が試した場合、自動で候補が表示されてから、補完が不要な場合はいちいちC-gで補完中止する等しないといけなくて、実用的に利用できないように感じたのですが、皆さんどうされてらっしゃるんでしょうか。

ご参考までに。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by rubikitch at 2008-11-18 06:34
ウィンドウ下部で補完をした場合、候補を上部に出すパッチを書いてみました。vimみたいに。
http://d.hatena.ne.jp/rubikitch/20081117/1226920228

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2008-11-18 15:04
こんにちは。

ウィンドウ右側の方で候補を出るケースでは、オーバーレイが折りかえされて、見た目がおかしくなるようです。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-19 00:36
> 該当候補があった場合、自動で候補表示というアイデアは良いと思うのですが、キーバインドをM-n, M-p, M-m等別の別のキーにバインドするというアイデアはどうでしょうか?
なるほど。非常に貴重な意見です。一応 ac-complete-mode-map を define-key で操作してやれば自分の好きなキーバインドに変更することができますが、何も考えずに今のようなキーバインドになっているので、もう一度一から考えなおしてみます。

> ウィンドウ下部で補完をした場合、候補を上部に出すパッチを書いてみました。vimみたいに。
ありがとうございます。早速取り込みました。

> ウィンドウ右側の方で候補を出るケースでは、オーバーレイが折りかえされて、見た目がおかしくなるようです。
次のバージョンで直ります。


もう少しで次のバージョンをリリースするのでもう少しお待ちを。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-19 10:37
とりあえず次のリリース候補です。下のリンクから取得することができます。

http://www.emacswiki.org/emacs/AutoComplete

一応テストしてますが、 unstable な扱いなので気をつけてください。今までのコメントで指摘された問題はほぼ全て解決してます。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by paella at 2008-11-20 17:42
0.1.0使ってみました。すばらしいです!まさにコレ、といった感じです。
ありがとうございました。

せっかくなので、自分のページでもauto-complete.elを紹介しておきました。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by k1LoW at 2008-11-26 00:46
auto-complete.elすばらし過ぎます!
直近で欲しかったauto-complete.el 0.1.0対応のdabbrev補完ac-sourceを書いてみました。
車輪の再発明ですが。。。。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by hirose31 at 2008-11-30 01:59
報告のみで恐縮ですが。。。
(load "wnn7egg-leim")
(set-input-method "japanese-egg-wnn7")
した環境だと自動的にac-startしませんでした。エラーは出ませんしdebug-on-errorしても何も出ませんでした。
# M-x ac-startしてあげると期待通りに動作します

参考までにwnn7egg-leimは
http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/wnn7egg_src.html
http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/wnn7egg/wnn7-elisp-el-1.02-1.tgz
から入手できます。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by matsuyama at 2008-11-30 15:55
> k1LoW さん
EmacsWiki に AutoCompleteSources というページを作ってソース定義を公開してくれると助かります。

> hirose31 さん
うーん、よくわからりませんが、

M-x help-for-help RET k <適当な文字>

を実行して、でてきたコマンド名が self-insert-command じゃない場合は、 ac-trigger-command-p という関数の or の中に

(eq this-command '<そのコマンド名>)

を記述して再定義すると動きだすかと思います。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by hirose31 at 2008-11-30 23:04
(eq this-command 'egg-self-insert-command)
でばっちし動きました!!!

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by rubikitch at 2008-12-01 02:23
遅くなりましたが、コードレビューもどきをしてみました。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by k1LoW at 2008-12-01 09:52
> matsuyama さん
すでにAutoCompleteSourcesを有志の方が作成してくれていました^^

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by norisuke3 at 2008-12-29 08:49
素晴らしいelispありがとうございます。
デフォルトで js2-mode でも動くようにしてもらえると嬉しいです。211行目のac-modesの定義に加えるだけだとは思いますが。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2009-03-04 13:18
auto-complete-modeとcompany-modeの比較をお願いします。見た感じはほぼ互角なんだけど。他にもCompletionUIとかIciclesとかあるみたいです。CompletionUIのauto-completion-mode(ややこしい)よりはauto-complete-modeの方が便利だと思いました。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Essay Writing at 2009-03-04 15:51
すでにAutoCompleteSourcesを有志の方が作成してくれていました^^

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Essay For Sale at 2009-03-04 15:52
参考までにwnn7egg-leimは
http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/wnn7egg_src.html
http://www.omronsoft.co.jp/SP/pcunix/wnn7/support/modules/wnn7egg/wnn7-elisp-el-1.02-1.tgz
から入手できます。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Norton 360 3.0 Coupon at 2009-05-22 03:09
egiuawhri rwoitjorwi tqopifegj eori[j gerqo[iy jeot je jer qeitujeroi[te

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by e cigarette at 2009-05-23 12:01
Interesting! Thanks!

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by club penguin at 2009-07-05 16:21
日本語対応ありがとうございました。
早速、最新版を試してみたのですが、まだ同じような現象が続いています。
補完候補に日本語などのMBCSが含まれるとき、menuが崩れ、エラーとなる状況です。
で、ac-menuを生成するところが怪しいと思い、ac-candidate-widthの値25->80に変えたところ

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Watch Whiteout Online at 2009-09-04 23:19
とりあえず次のリリース候補です。下のリンクから取得することができます。

http://www.emacswiki.org/emacs/AutoComplete

一応テストしてますが、 unstable な扱いなので気をつけてください。今までのコメントで指摘された問題はほぼ全て解決してます。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by payday loans online at 2009-11-04 03:55

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by melissa at 2009-11-04 06:52
I loved the editorial. It is very interesting. Thank you for the information. cash loan cash loan cash loan

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Beads at 2010-05-27 18:48
I have to say I find auto complete extremely annoying and would rather just type the text myself than have suggestions.

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by 99 cent items at 2010-08-28 16:15
Love this movie as well as the serial. Really funny, thanks for sharing it with us.

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2010-10-20 00:03
cygwinを入れたwindowsで使用した際、"//"後の補完が出るまで10秒以上応答がなくなってしまいます。
(add-to-list 'ac-ignore "//") も効果なく、どうにか対策する方法はないでしょうか。
unix(centOS)だと通常の反応速度のようです。

Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました

Posted by Anonymous User at 2010-12-10 15:45
Prom Dresses: Find Online fashionable prom dresses, 2011 Prom Dresses, prom gown, cheap prom dresses
bridesmaid dresses, bridesmaid gowns, cheap bridesmaid
Cheap Prom Dresses
Homecoming Dresses
Quinceanera Dresses
prom Dresses
wedding dress, wedding dresses, bridesmaid dress, bridesmaid dresses, mother of the wedding dress, mother of the wedding dresses,flowergirl dress
Ball Gown Wedding Dresses
Beach Wedding Dresses
Bridesmaid Dresses
Column Wedding Dresses
Prom Dresses, Homecoming Dresses, Quinceanera Dresses
Prom Dresses
wedding Dresses
evening Dresses

replica louis vuitton

Posted by Anonymous User at 2010-12-22 17:11
Fantastic blog! Very well written.*replica louis vuitton
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.