2

私はemacsのオートコンプリートelispを使用しています。現在M-TABを押して使用していますが、4文字後にオートコンプリートもしたいです。

yasnippet をオートコンプリートのソースとして使用しているため、4 文字の後にオートコンプリートに設定すると、if、for、inc、main のような補完は表示されません。

オートコンプリートをすぐに開始するように設定すると、入力の邪魔になります。

キー バインディングを設定し、4 文字の後に自動補完を開始するように指示すると、キー バインディングが無視され、補完が開始されません。

(setq ac-auto-start 4)
(define-key ac-mode-map (kbd "M-TAB") 'auto-complete)

M-TABを押すか、4文字後に完了するようにしたいと思います。

編集:試しました

(setq ac-auto-start 4)
(global-set-key (kbd "M-TAB") 'ac-start)

私も持っています

(global-auto-complete-mode t)

それでもうまくいきませんでした。M-TAB を押すと、ミニバッファーに「Nothing to complete」と表示されます。

4

1 に答える 1

1

「ac-mode-map」は、オートコンプリート ポップアップが表示されている場合にのみ定義されるため、上記の「define-key」は機能しません。代わりに「global-set-key」を使用してください。

また、「オートコンプリート」ではなく「ac-start」にバインドする必要があると思います。

要約すると、次のことを試してください。

(setq ac-auto-start 4)
(global-set-key (kbd "M-TAB") 'ac-start)
于 2010-02-13T15:44:17.257 に答える