7

私はオートコンプリートに非常に満足していますが、1 つのことが私を悩ませています。

インラインの提案をすぐに表示するように設定していますが、メニューには 0.9 秒の遅延があります。最初の数文字、たとえば「del」を入力すると、インラインですぐにオートコンプリートされて「delete」になります。「削除」と入力したい場合は、ヒットTABします。これで問題ありません。しかし、実際に「del」と改行を入力したい場合はどうでしょうか。ここでRETもう一度押すと、オートコンプリートが「削除」されます。

インラインの提案のみが表示されている場合、強制的RETに改行するにはどうすればよいですか? オートコンプリートメニューが表示されたら、いつものようにもう一度トリガーキーにしたいです。

ありがとうございました!

4

1 に答える 1

8

auto-completeモードの他の設定の後に次の行を追加することRETで、補完メニューが表示されている場合にのみ補完を有効にすることができます。

(define-key ac-completing-map "\C-m" nil)
(setq ac-use-menu-map t)
(define-key ac-menu-map "\C-m" 'ac-complete)

ac-completing-mapは、RETデフォルトで にバインドされているキーマップでありac-completeac-menu-map補完メニューで補完するためのキーマップです。変数がのac-menu-map場合、キーマップが有効になります。ac-use-menu-mapt

C-g参考までに、いつでもを押すと完了を止めることができます。C-gしたがって、そのままのバインディングでヒットしRETて改行を入力することもできますRET。また、改行を入れたいときにC-jも使えます。デフォルトではバインドしません。RETC-jac-complete

于 2012-09-30T12:17:14.293 に答える