Title: Auto Complete Modeã¦ã¼ã¶ã¼ããã¥ã¢ã« Numbering: yes CSS: style.css Auto Complete Modeã¦ã¼ã¶ã¼ããã¥ã¢ã« ==================================== [Index](index.ja.txt) \[[English](manual.txt)] * * * * {toc} * * * * ã¯ããã« -------- Auto Complete Modeï¼é称ã`auto-complete.el`, `auto-complete-mode`ï¼ã¯[GNU Emacs][]ï¼ä»¥ä¸Emacsï¼ã®è£å®ã·ã¹ãã ãèªååã»é«åº¦åããæ¡å¼µã§ããå¾æ¥ã®è£å®ã·ã¹ãã ã¨æ¯ã¹ã¦ä»¥ä¸ã®ç¹ã§åªãã¦ãã¾ãã * è¦è¦çãªæä½æ * çµ±è¨çææ³ã«ããè£å®ãªã¼ãã¼ãããã®åæ¸ * æ¡å¼µæ§ æ¬ããã¥ã¢ã«ã¯ã¤ã³ã¹ãã¼ã«æ¹æ³ããåºæ¬çãªä½¿ãæ¹ã»è¨å®æ¹æ³ãã¾ãæ¡å¼µæ¹æ³ã¾ã§ãç¶²ç¾ ãã¦ãã¾ããä¸æãªç¹ãããã°éçºè ã¾ã§é£çµ¡ããã ããã ãªããAuto Complete Modeã¯[GPLv3][]ã®ãã¨ã§ã©ã¤ã»ã³ã¹ããã¦ãã¾ããã¾ãããã®ããã¥ã¡ã³ãã¯[GFDL][]ã®ãã¨ã§ã©ã¤ã»ã³ã¹ããã¦ãã¾ãã ãã¦ã³ãã¼ã ------------ [Auto Complete Modeã®ããããã¼ã¸](index.ja.txt)ãããã¦ã³ãã¼ãã§ãã¾ãã ã¤ã³ã¹ãã¼ã« ------------ ### å¿ è¦æ¡ä»¶ ### * 800MHz以ä¸ã®CPU * 256MB以ä¸ã®ã¡ã¢ãª * GNU Emacs 22ä»¥ä¸ ### ã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãã ### ããã±ã¼ã¸ãã£ã¬ã¯ããªå ã®`etc/install.el`ã¨ããã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãããå©ç¨ããã°ç°¡åã«ã¤ã³ã¹ãã¼ã«ãè¡ããã¨ãã§ãã¾ãã èµ·åä¸ã®Emacsãããã¯æ°ããèµ·åããEmacsã§`M-x load-file RET`ã¨å ¥åãã¦ãã ããããªã`auto-complete-mode`ãã¢ããã°ã¬ã¼ãããå ´åã¯**`-q`ãªãã·ã§ã³ã§æ°ããèµ·åããEmacs**ã§ã¤ã³ã¹ãã¼ã«ãè¡ã£ã¦ãã ããã`auto-complete-mode`ãã¼ããããã¡ã¤ã«åãå°ããããã®ã§ã¢ã¼ã«ã¤ããå±éãããã£ã¬ã¯ããªã«`/etc/install.el`ã追å ãããã«ãã¹ãå ¥åãã¾ããä¾ãã°å±éãããã£ã¬ã¯ããªã®ãã¹ã`~/tmp/auto-complete-1.2`ã§ããå ´åã`~/tmp/auto-complete-1.2/etc/install.el`ã¨å ¥åãã¾ãã 次ã«ã¤ã³ã¹ãã¼ã«å ã®ãã£ã¬ã¯ããªãå°ãããã¾ãã®ã§ãã好ã¿ãã£ã¬ã¯ããªãå ¥åãã¦ãã ããããã®ãã£ã¬ã¯ããªã`load-path`ã«è¨å®ããã¦ããªãå ´åã¯å¾ã§è¨å®ããå¿ è¦ãããã¾ããããã©ã«ãã§ã¯`~/.emacs.d`ã§ãã æå¾ã«`RET`ãæ¼ãã¦ã¤ã³ã¹ãã¼ã«ãéå§ãã¦ãã ãããã¤ã³ã¹ãã¼ã«ãå®äºããã¨æ¬¡ã®ãããªãããã¡ã表示ãããã®ã§ãæ示ã«å¾ã£ã¦`.emacs`ãç·¨éãã¦ãã ããã ãããã¯ã次ã®ããã«ã¿ã¼ããã«ããã¤ã³ã¹ãã¼ã«ãããã¨ãã§ãã¾ãã $ make install $ # ãããã¯ãã£ã¬ã¯ããªããããããæå®ã㦠$ make install DIR=$HOME/.emacs.d/ GNU Makeããªãå ´åã¯æ¬¡ã®ããã«ãã¾ãã $ emacs -batch -l etc/install.el **ã¤ã³ã¹ãã¼ã«å¾ã®ã¡ãã»ã¼ã¸ä¾ï¼\*Installation Result*ãããã¡ï¼** Successfully installed! Add the following code to your .emacs: (add-to-list 'load-path "~/.emacs.d") ; load-pathã«ãã§ã«è¨å®ããã¦ããå ´åã¯è¡¨ãã¾ãã (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") (require 'auto-complete-config) (ac-config-default) ### æåã«ããã¤ã³ã¹ãã¼ã« ### ãã£ã¬ã¯ããªæ§æã¨è¨å®ãæ£ãããã°æåã«ããã¤ã³ã¹ãã¼ã«ãå¯è½ã§ããã¾ãå±éãããã£ã¬ã¯ããªã«ããã¦å ¨ã¦ã®`.el`ãã¡ã¤ã«ã«å¯¾ãã¦ãã¤ãã³ã³ãã¤ã«ãå®è¡ãã¦ãã ãããUNIXç³»OSã§ããã°åå°ã®`Makefile`ãå©ç¨ã§ããã¨æãã¾ãã $ make byte-compile `Makefile`ãå©ç¨ã§ããªãå ´åã¯ãEmacsãã`C-x d`ã§å±éãããã£ã¬ã¯ããªãéã`* . el RET B RET`ã§`.el`ãã¡ã¤ã«ããã¤ãã³ã³ãã¤ã«ãã¦ãã ããã 次ã«å ¨ã¦`.el`ãã¡ã¤ã«ã¨`.elc`ãã¡ã¤ã«ã`load-path`ãéã£ããã£ã¬ã¯ããªã«ã³ãã¼ãã¾ããä¾ãã°ãã®ãã£ã¬ã¯ããªã`~/.emacs.d`ã§ããã°æ¬¡ã®ãããªã³ãã³ããå®è¡ãã¾ãã $ cp *.el *.elc ~/.emacs.d 次ã«è¾æ¸ãã¡ã¤ã«ãã¤ã³ã¹ãã¼ã«ãã¾ãããã®ãã¡ã¤ã«ããªãã¦ãåä½ãã¾ãããç¹ã«çç±ããªããã°ã¤ã³ã¹ãã¼ã«ããã»ããããã§ããããè¾æ¸ãã¡ã¤ã«ã¯`dict`ãã£ã¬ã¯ããªã«æ ¼ç´ããã¦ããã`auto-complete.el`ãã¤ã³ã¹ãã¼ã«ããããã£ã¬ã¯ããªã¨åããã£ã¬ã¯ããªã«ã¤ã³ã¹ãã¼ã«ãããå¿ è¦ãããã¾ããä¾ãã°`auto-complete.el`ã`~/.emacs.d`ã«ã¤ã³ã¹ãã¼ã«ããã®ã§ããã°ã`~/.emacs.d`ã«`dict`ãã£ã¬ã¯ããªãã³ãã¼ãã¾ãããã®éãæ¢åã®ãã¡ã¤ã«ãä¸æ¸ãããªãããã«ãã¦ãã ããããããããã®ãããªã±ã¼ã¹ã¯èµ·ãããªãã¨æãã¾ãããä¸è¨ã®ã¤ã³ã¹ãã¼ã«ã¹ã¯ãªããã§ã¯`ac-dict`ã¨ããååã®ãã£ã¬ã¯ããªã«è¾æ¸ãã¡ã¤ã«ãæ ¼ç´ãããã¨ã«ãããä»ã®ãã¡ã¤ã«ãä¸æ¸ããããå¹²æ¸ããå¯è½æ§ãæå°éã«ãã¦ãã¾ãã $ cp -r dict ~/.emacs.d æå¾ã«`.emacs`ã«æ¬¡ã®ãããªè¨å®ãè¨è¿°ãã¾ãã (add-to-list 'ac-dictionary-directories "~/.emacs.d/dict") (require 'auto-complete-config) (ac-config-default) `load-path`ã®è¨å®ãè¡ããã¦ããªãå ´åã¯æ¬¡ã®ã³ã¼ããè¨è¿°ããå¿ è¦ãããã¾ãã (add-to-list 'load-path "~/.emacs.d") ### åä½ç¢ºèª ### Emacsãåèµ·åãããæ°è¦ã«èµ·åãã¦\*scratch\*ãããã¡ã§é©å½ãªæåãå ¥åãã¦ãã ãããè£å®ã¡ãã¥ã¼ã表ããã¦è£å®ãéå§ãããã°ã¤ã³ã¹ãã¼ã«æåã§ããã¨ã©ã¼ãåºããè£å®ãéå§ãããªãå ´åã¯ä»¥ä¸ã®ãã¨ã確èªããå¾ãéçºè ã«é£çµ¡ãã¦ãã ããã * `load-path`ã¯æ£ããã `auto-complete.el`ãã¤ã³ã¹ãã¼ã«ãããã£ã¬ã¯ããªã`load-path`ã«è¨å®ããã¦ãããã©ããã * ã¢ã¼ãã©ã¤ã³ã«`AC`ã¨ããæåãããã ã¢ã¼ãã©ã¤ã³ï¼ãããã¡ä¸é¨ã®ç°è²ã®è¡ï¼ã«`AC`ã¨ããæåããªãå ´åã¯`auto-complete-mode`ãæå¹ã«ãªã£ã¦ããªãå¯è½æ§ãããã¾ãã`M-x auto-complete-mode`ã§æå¹ã«ãã¦å度試ãã¦ãã ããã * ã¨ã©ã¼ãçºç \*Backtrace*ãããã¡ã«ã¨ã©ã¼ã表示ããããããããããã¡ï¼ãã¬ã¼ã ä¸é¨ã®å ¥åæ¬ï¼ã«ã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ãããå ´åã¯ããã®å 容ãæ·»ä»ã®ããéçºè ã«é£çµ¡ãã¦ãã ããã åºæ¬çãªä½¿ãæ¹ -------------- åºé¼»ããããããã§ãããããæå³ã§ã¯`auto-complete-mode`ã«ã¯ã使ãæ¹ããåå¨ãã¾ãããã¨ããã®ããEmacsã®ç·¨éã·ã¹ãã ã«èªç¶ã«æº¶ãè¾¼ãããã«`auto-complete-mode`ãè¨è¨ããã¦ããããã§ããã¦ã¼ã¶ã¼ã¯å¿«é©ãªç·¨éæä½ãéªéããããã¨ãªããé«åº¦ãªè£å®æ©è½ãèªåçã«äº«åãããã¨ãã§ããã®ã§ãã究極çã«ã¯ãã¦ã¼ã¶ã¼ã®ãããªãæ示ããªãã«ã¦ã¼ã¶ã¼ãæãããã«èªåçã«è£å®ãããã¨ãç®æ¨ã¨ãªãã¾ããã100%ã®è£å®æ¨æ¸¬ã¯ç¾å®çã«ä¸å¯è½ã§ãããã®ç¹ãã«ãã¼ããããã«è¥å¹²ã®ã使ãæ¹ããåå¨ãã¾ãããã®ç¯ã§ã¯ãã®ã使ãæ¹ãã説æãã¾ãã ### æåå ¥å ### ã¾ãåºæ¬ã¨ãªãã®ãæåå ¥åã§ããæåãå ¥åãããªããã°è£å®ãã§ãã¾ãããã§ã¯ã©ã®æåãå ¥åãããã¨ãã«è£å®ãéå§ãããã®ãã¨ããçåãããã¨æãã¾ãããããã説æããã®ã¯é£ããã®ã§ããã§ã¯å²æãã¾ããç°¡åã«è¨ãã°ããã¼ã®æ¼ãè¾¼ã¿ã«ããåç´ãªæå追å æã«è£å®ãéå§ããã¾ãã詳ããã¯[`ac-trigger-commands`](#)ãåç §ãã¦ãã ããã ![æåå ¥å](ac.png) ### TABã«ããè£å® #### è£å®ãéå§ãããã¨TABã«ããè£å®ãä¸æçã«æå¹ã«ãªãã¾ããTABã«ããè£å®ã¯`auto-complete-mode`ã«ããã¦æãéè¦ã§æããã使ãæä½ã§ããTABã¯ç¶æ³ã«ãã£ã¦æ§ã ãªæå³ãæã¡ã¾ãã * è£å®åè£ãä¸ã¤ãããªãå ´å è£å®åè£ãä¸ã¤ã®å ´åã¯ããã®è£å®åè£ã§è£å®ãå®è¡ãã¾ãã * è£å®åè£ã«å ±éé¨åãããå ´å ä¾ãã°sã¨ããåèªã®è£å®åè£ãå ¨ã¦setã§ã¯ãã¾ãå ´åããã®å ±éé¨åã¯setã§ããã¨è§£éãããTABã«ãã£ã¦setã¾ã§å±éããã¾ãã * ãã®ä»ã®å ´å ãã®ä»ã®å ´åãTABãæ¼ããã¨ã«è£å®åè£ãå é ããé ç¹°ãã§é¸æãã¦ããã¾ããè£å®åè£ã®æ«å°¾ã«ãããåã³è£å®åè£ã®å é ããé¸æãã¦ããã¾ãã è¨å®ã«ãã£ã¦è¥å¹²æåãç°ãªãã¾ãããåºæ¬çã«ã¯ãã®ãããªæåã«ãªãã¾ãããã®ããã«TABã«æ§ã ãªæå³ãæãããã®ã¯ãTABã®ã¿ã§å ¨ã¦å®çµããããã¨ããçããããã¾ãã ### RETã«ããè£å® ### TABã«ããè£å®ã¨ä¼¼ã¦ãã¾ãããRETã«ããè£å®ã¯ä»¥ä¸ã®ç¹ã§ç°ãªãã¾ãã * é¸æä¸ã®è£å®åè£ã§å³æè£å®ãã * è£å®åè£ã«ã¢ã¯ã·ã§ã³ãè¨å®ããã¦ããå ´åã«ããã®ã¢ã¯ã·ã§ã³ãå®è¡ããã TABã«ããè£å®ã§ã¯å ±éé¨åã®å±éãªã©ã§ä½åº¦ãTABãæ¼ãå¿ è¦ãããã¾ããRETã«ããè£å®ã§ã¯é¸æä¸ã®è£å®åè£ã§å³æã«è£å®ãããã®ã§ãç®çã®è£å®åè£ã§ããã¨è¦èªãããªãRETãæ¼ãã¨ããã§ãããããã®éãã¢ã¯ã·ã§ã³ã¨ããã®ãã®ãå®è¡ãããå¯è½æ§ãããã¾ãããããã§ã¯è©³ããã¯è§¦ãã¾ãããã¢ã¯ã·ã§ã³ã®ä¾ã¨ãã¦ã¯ãæ¨æºæ·»ä»ã®ç¥èªè£å®ãåãããããã§ããããwwwãWorld Wide Webã¨å±éããç¥èªãç»é²ããã¦ããæãwã¨ããåèªã§wwwãè£å®ãããã¨ãã§ãã¾ãããRETã«ããè£å®ã®å ´åã¯ãããã«ç¥èªå±éãè¡ãWorld Wide Webã¨è£å®ãã¾ããã¤ã¾ãTABã«ããè£å®ã§ã¯wwwãæçµçãªè£å®çµæã«ãªããRETã«ããè£å®ã§ã¯World Wide Webãæçµçãªè£å®çµæã«ãªãã¾ãã ### è£å®åè£ã®é¸æ ### `auto-complete-mode`ã®èãæ¹ã«å¾ãã°ãè£å®åè£ã®é¸æã¯æ¨å¥¨ããããã®ã§ã¯ããã¾ããããªããªãããã®æç¹ã§ã¦ã¼ã¶ã¼ã®è£å®æ¨æ¸¬ã«å¤±æãã¦ãããããã«ã¦ã¼ã¶ã¼ã«è£å®åè£ãé¸æãããã¨ãããªã¼ãã¼ãããã®é«ãæä½ãè¦æ±ãã¦ããããã§ããè£å®åè£ã®é¸æã¯TABã«ããè£å®ã§ãããç¨åº¦è£ããã¨ãã§ããããã«æè¿ã®ãã¼ã¸ã§ã³ã§ã¯çµ±è¨çææ³ã«ãã£ã¦è£å®æ¨æ¸¬ã®ç²¾åº¦ãããã£ã¦ããã®ã§ãè£å®åè£ã®é¸æãå¿ è¦ã«ãªãã±ã¼ã¹ã¯ããã»ã©å¤ããªãã¨èãããã¾ããããããå®éã«ãã®ãããªã±ã¼ã¹ã¯åå¨ããã®ã§ãè£å®åè£ã®é¸ææ¹æ³ãè¦ãã¦ããã®ãæªããã¨ã§ã¯ãªãããããã¾ããã åç½®ããé·ãã§ãããè£å®åè£ã®é¸æèªä½ã¯é£ããæä½ã§ã¯ããã¾ãããè£å®ä¸ã«ã«ã¼ã½ã«ãã¼ãããã¯`M-p`, `M-n`ã§åå¾ã«é¸æãããã¨ãã§ãã¾ããè¨å®ã«ããã¾ãããè£å®åè£ã®é¸æãè¡ãããå¾ã¯TABã«ããè£å®ãRETã«ããè£å®ã«è¿ãæåã«å¤åãã¾ãã詳ããã¯[`ac-dwim`](#)ãåç §ãã¦ãã ããã ãã®ä»ã®æ¹æ³ã¨ãã¦Metaãã¼ã¨æ°åã®çµåãã§é¸æãããã¨ãã§ãã¾ããä¾ãã°`M-1`ãæ¼ãã°1çªç®ã®åè£ãé¸æãã¦è£å®ãã¾ããããããªã¼ãã¼ãããã大ããã®ã§æ¥µå使ããªãã§ãã ããã ### ãã«ã ### `auto-complete-mode`ã«ã¯*ã¯ã¤ãã¯ãã«ã*ã¨*ãããã¡ãã«ã*ã®äºã¤ã®ãã«ãæ©è½ãåãä»ãããã¦ãã¾ãã両è ã®éãã¯è¦ãæ¹ã ãã§ããã¯ã¤ãã¯ãã«ãã¯è£å®ã¡ãã¥ã¼ã®ããé£ã«è¡¨ç¤ºããã®ã§ãè¦ç·ã®ç§»åãæå°éã§æ¸ãã¨ããã¡ãªãããããã¾ããã表示é åãçãããã¨å¯èªæ§ãä½ããªãã¨ãããã¡ãªãããããã¾ããã¾ãã¯ã¤ãã¯ãã«ãã¯è£å®ã¡ãã¥ã¼ã表示ãã¦ãããã°ããå¾ ã¤ã¨èªåçã«è¡¨ç¤ºããã¾ããã¯ã¤ãã¯ãã«ããå©ç¨ããã«ã¯[`ac-use-quick-help`](#)ã`t`ã«ãã¦ããå¿ è¦ãããã¾ãã表示ã¾ã§ã®æéã¯[`ac-quick-help-delay`](#)ã§å¶å¾¡ã§ãã¾ãã ä¸æ¹ãã¦ã¼ã¶ã¼ãæ示çã«å½ä»¤ãããã¨ã§è¡¨ç¤ºãããã®ããããã¡ãã«ãã§ãããããã¡ãã«ãã¯ãã®åã®éããå¥ã¦ã£ã³ãã¦ã«ãã«ãç¨ãããã¡ã表示ãã¾ããã¯ã¤ãã¯ãã«ãã«æ¯ã¹ã¦è¦ç·ã®ç§»åã大ããåããå¯èªæ§ã«åªãã¦ãã¾ãããããã¡ãã«ãã表示ããã«ã¯è£å®ä¸ã«`C-?`ãããã¯`f1`ãæ¼ãã¾ãããããã¡ãã«ã表示å¾ã¯ããã«`C-M-v`ãããã¯`C-M-S-v`ã§ãããã¡ãã«ãã®ä¸ä¸ã¹ã¯ãã¼ã«ãå¯è½ã§ãããã以å¤ã®å½ä»¤ã®å ´åã¯ãããã¡ãã«ããéãã¦ãã©ã¼ã«ããã¯ãã¾ãã ### ã¾ã¨ã ### è£å®ã¯æåã®å ¥åã«ãã£ã¦éå§ããã¾ããè£å®ãéå§ãããã¨æ¬¡ã®è¡¨ã«ç¤ºãæä½ãæçã«æå¹ã«ãªãã¾ããè£å®ãå®äºãããããããã®æä½ã¯ç¡å¹ã«ãªãã¾ãã | ãã¼ | ã³ãã³ã | 説æ | |-----------|-------------|--------------------------| | TAB, C-i | ac-expand | TABã«ããè£å®ãå®è¡ãã | | RET, C-m | ac-complete | RETã«ããè£å®ãå®è¡ãã | | down, M-n | ac-next | 次ã®åè£ãé¸æãã | | up, M-p | ac-previous | åã®åè£ãé¸æãã | | C-?, f1 | ac-help | ãããã¡ãã«ãã表示ãã | è£å®ãéä¸ã§ä¸æããã«ã¯`C-g`ã使ãã¨ããã§ãããã é«åº¦ãªä½¿ãæ¹ ------------ åç¯ã«å¼ãç¶ãã¦ãããå°ãé«åº¦ãªä½¿ãæ¹ã説æãã¾ããã¨ã¯ãã£ã¦ãããã¾ã§ã¦ã¼ã¶ã¼ã®è¦ç¹ã§ã®è©±ãªã®ã§ã`auto-complete-mode`ãæã®ã¾ã¾ã«æãããã¨ããæ¹ã¯ã次ç¯ä»¥éãèªã¿é²ããã¨ããã§ãããã ### `auto-complete`ã³ãã³ã ### åºæ¬çã«`auto-complete-mode`ã¯èªåçã«è£å®ãéå§ããã¨ããåæãããã¾ããããã®éãã§ã¯ãªãå ´åãããã¾ããä¾ãã°ãæåã¯å ¥åããªããã©è£å®ã¯ãããã¨ããå ´åããè¨å®ã«ãã£ã¦èªåçã«è£å®ãéå§ãããªãããã«ãã¦ããå ´åãªã©ã§ãããã®ãããªæã«å©ç¨ããã®ã`auto-complete`ã¨ããã³ãã³ãã§ãæ®éã¯ä½ããã®ãã¼ã«å²ãå½ã¦ã¦å©ç¨ãã¾ããä¾ãã°å¾æ¥ã®`M-TAB`ã«ããè£å®ãã`auto-complete-mode`ãæä¾ããããé«åº¦ãªè£å®ã«åãæ¿ããã«ã¯æ¬¡ã®ã³ã¼ããè©ä¾¡ãã¾ãã (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) ãã¦ã`auto-complete`ã³ãã³ãã«é¢ãã¦ã§ãããããã¯é常ã®èªåçãªè£å®ã¨ã¯è¥å¹²ç°ãªãæåã«ãªã£ã¦ãã¾ãã * è£å®åè£ãä¸ã¤ãããªãå ´å è£å®ã¡ãã¥ã¼ã表示ããªãã§ããã®ã¾ã¾è£å®ãå®è¡ãã¾ãã * è£å®åè£ãä¸ã¤ããªãå ´å ææ§ãããã«ããè£å®ã試ã¿ã¾ãã詳ããã¯[ææ§ãããã«ããè£å®](#)ãåç §ãã¦ãã ããã * ãã®ä»ã®å ´å ãã®ä»ã®å ´åãå ¨ä½å ±éé¨åãå±éãã¤ã¤è£å®ã¡ãã¥ã¼ã表示ãã¦è£å®ãéå§ãã¾ãããã®å¾ã®æä½ã¯èªåçã«è£å®ãéå§ãããå ´åã¨åãã«ãªãã¾ãã[`ac-show-menu-immediately-on-auto-complete`](#)ã¨[`ac-expand-on-auto-complete`](#)ãåç §ãã¦ãã ããã ### ææ§ãããã«ããè£å® ### `auto-complete`ã³ãã³ãã§è£å®åè£ãä¸ã¤ããªãå ´åã`ac-fuzzy-complete`ã³ãã³ããå®è¡ãããå ´åãé常ã®ç¢ºå®ãªãããã§ã¯ãªãææ§ãªãããã«ãã£ã¦è£å®ã試ã¿ã¾ããææ§ãããã®ãã©ã¡ã¼ã¿ã¯ãããããæé©åããã¦ããã®ã§ã¦ã¼ã¶ã¼ãå¤æ´ããå¿ è¦ã¯ããã¾ããããå é¨ãç¥ãããå ´åã¯`fuzzy.el`ãåç §ãã¦ãã ãããææ§ãããã«ããè£å®ãå©ç¨ããã°ãã¿ã¤ããè£å®ã®ä¸ç°ã¨ãã¦ä¿®æ£ãããã¨ãã§ãã¾ããä¾ãã°é©å½ãªãããã¡ã§messaegã¨å ¥åãã¦`M-x auto-complete`ãããã¯`M-x ac-fuzzy-complete`ãã¦ãã ãããææ§ãããã«æåãããã«ã¼ã½ã«ã®è²ã赤è²ã«å¤åããmessaegã§ã¯ãªãmessageã§ããã¨è§£éãã¦è£å®ãç¶ç¶ãããã¨ãã§ãã¾ãããã®ãããªã±ã¼ã¹ã«ãããã¾å¯¾å¦ããã¨ããæå³ã§ã`auto-complete`ã³ãã³ããä½ããã®ãã¼ã«å²ãå½ã¦ã¦ããã®ã¯æ±ºãã¦æªããã¨ã§ã¯ããã¾ããã ![ææ§ããã](ac-fuzzy.png) ### è£å®åè£ã®çµã込㿠### è£å®ä¸ã«`C-s`ãæ¼ããã¨ã§çµãè¾¼ã¿ãéå§ã§ãã¾ããçµãè¾¼ã¿ãéå§ãããã¨ã«ã¼ã½ã«ã®è²ãéè²ã«å¤åãã¾ãããã®å¾ã«ç¶ãã¦çµãè¾¼ãæååãå ¥åãã¦ããã¾ããçµãè¾¼ã¿ã¯ã¤ã³ã¯ãªã¡ã³ã¿ã«ã«æ´æ°ãããã®ã§ç´æçã«ç解ã§ããã¨æãã¾ããçµãè¾¼ã¿ã®æä¸ã§ãTABã«ããè£å®ãåè£é¸æãè¡ããã¨ãã§ãã¾ãããã®éãã«ã¼ã½ã«ã®è²ãå ã«æ»ãã¾ãããããã¯çµãè¾¼ã¿ãçµäºãããã¨ãæå³ãã¦ãã¾ããå度`C-s`ãæ¼ããã¨ãã¯ãååã®çµãè¾¼ã¿æååã復å ããã¾ããçµãè¾¼ã¿æååãåé¤ããã«ã¯`DEL`ã¾ãã¯`C-h`ãæ¼ãã¦ãã ããããã以å¤ã®ä¸è¬çãªç·¨éæä½ã¯ããã§ã¯å©ç¨ã§ãã¾ããã ![çµãè¾¼ã¿](ac-isearch.png) ### ããªã¬ã¼ãã¼ ### `auto-complete`ã³ãã³ããã©ã®ãã¼ã«å²ãå½ã¦ããã¯çµæ§é£ããåé¡ã§ããè£å®ã¨ããæä½ã¯é »ç¹ã«è¡ããããã§ããã ãæ¼ãããããã¼ã«å²ãå½ã¦ãã¹ãã§ãããããæ¼ãããããã¼ã¯ãã§ã«ä»ã®ã³ãã³ãã«å²ãå½ã¦ããã¦ããã¨ããã®ã¯Emacsã§ã¯é常ã«ãããããã¨ãªã®ã§ããããããã±ã¼ã¹ã«å¯¾å¦ãããã`auto-complete-mode`ã¯ããªã¬ã¼ãã¼ã¨å¼ã°ããæ©è½ãæä¾ãã¦ãã¾ããããªã¬ã¼ãã¼ãå©ç¨ããã°ãä»»æã®ãã¼ãå¿ è¦ãªã¨ãã«ä¸æçã«ã®ã£ã¨ã£ã¦`auto-complete`ã³ãã³ãã«å²ãå½ã¦ããã¨ãã§ãã¾ããä¾ãã°TABãããªã¬ã¼ãã¼ã«è¨å®ããã«ã¯æ¬¡ã®ããã«ãªãã¾ãã (ac-set-trigger-key "TAB") ããªã¬ã¼ãã¼ã¯æåå ¥åã®ç´å¾ã«æå¹ã«ãªãã¾ãããã以å¤ã®å ´åã¯é常ã®ã³ãã³ããå®è¡ããã¾ãï¼TABãªãã¤ã³ãã³ãï¼ãé常ãããªã¬ã¼ãã¼ã¯`ac-auto-start`ã`nil`ã«ãã¦å©ç¨ãã¾ãã (setq ac-auto-start nil) `ac-auto-start`ã«é¢ãã¦ã¯[èªåçã«è£å®ããªã](#)ãããã¯[`ac-auto-start`](#)ãåç §ãã¦ãã ããã ### è£å®æ¨æ¸¬æ©è½ ### `auto-complete-mode`ã¯ã¦ã¼ã¶ã¼ã®è£å®è¡åãéä¸è§£æãã¦ãå¯è½ãªéãè£å®ã®ãªã¼ãã¼ããããåæ¸ãããã¨ãã¾ããå ·ä½çã«ã¯ãä¾ãã°ä½åº¦ã`foobar`ãè£å®ãããã°ã次å以éã¯`foobar`ãè£å®åè£ã®ä¸ä½ã«é ç½®ãããä¸åãããã¯æ°å以å ã®TABã§è£å®ã§ããç°å¢ãä½ãã¾ããå é¨çã«ã¯`comphist`ã¨å¼ã°ããæ©æ§ã使ã£ã¦ããã`ac-use-comphist`ã`t`ã®å ´åã«ãã®æ©è½ãæå¹ã«ãªãã¾ããããã©ã«ãã§ã¯æå¹ã«ãªã£ã¦ãã¾ããåéãããè¡åãã¼ã¿ã¯`user-emacs-directory`ãããã¯`~/.emacs.d`ã«`ac-comphist.dat`ã¨ãããã¡ã¤ã«åã§æ°¸ç¶åããã次å以éãåå©ç¨ããã¾ãã åªããè£å®æ¨æ¸¬ãå®ç¾ããããã次ã®äºã¤ã®ãã¼ã¿ãåéãã¾ãã * ãã®è£å®åè£ãè£å®ãããåæ° * ãã®è£å®åè£ãè£å®ãããä½ç½® ç°¡åã«è¨ãã°ãåç´ã«è£å®åæ°ãæ°ããã®ã§ã¯ãªããè£å®ä½ç½®ãã¨ã«è£å®åæ°ãæ°ãã¦ããããã®è£å®åè£ã®ã¹ã³ã¢ã¯è£å®ããã¦ããä½ç½®ã¨ã®æ¯è¼ã§ãã¾ãéã¿ä»ãããã¾ããä¾ãã°fã¨å ¥åãã¦`find-file`ãè£å®ããã¨ããè¡åãä½åº¦ãç¹°ãè¿ãã°ãfãå ¥åãã段éã§`find-file`ãä¸ä½ã«é ç½®ããã¾ãããã ãç¶ãã¦find-ã¨å ¥åããã¨ãã«`find-file`ãå ã»ã©ã¨åãã¹ã³ã¢ã«ãªããã¨ããã°ãããããããã§ã¯ãªããå ã»ã©ã¨ä½ç½®ã¨ãã¦4é¢ãã¦ããããã§ããããããã ãéã¿ä»ãã軽ããªãã¾ããéã«find-ã®å¾ã«`find-library`ãè£å®ãããããå ´åã¯ããã¡ãã®è£å®åè£ã®ã¹ã³ã¢ã®ã»ããä¸ä½ã«æ¥ãå¯è½æ§ãé«ããªãã®ã§ãçµæçã«fã®æç¹ã§ã¯`find-file`ãä¸ä½ã«ãfind-ã®æç¹ã§ã¯`find-library`ãä¸ä½ã«æ¥ãã¨ãã£ããã¦ã¼ã¶ã¼ã®è¡åãå¦ç¿ãããã®ãããªæ¨æ¸¬ãå¯è½ã«ãªãããã§ãã ã¦ã¼ã¶ã¼ã¯ãã®æ©è½ãã§ããã ãæ´»ç¨ããããã«ãããå ¥åããåèªã¯ã§ããã ãåã®ä½ç½®ã§è£å®ããããã«å¿ããã¦ãã ãããã¾ããã§ããã ãè¡åã¯ä¸è²«ãã¦ãã ãããè£å®ä½ç½®ãæ¯åå¤ããããã§ã¯ãã¾ãå¦ç¿ã§ããªãããã§ãããããããã¾ãæ°ã«ãã使ã£ã¦ããã°ãèªåçã«ãã®ãããªè¡åã«ãªãã§ãããã ### è¾æ¸ã«ããè£å® ### è¾æ¸ã¨ã¯åç´ãªæååã®ãªã¹ãã®ãã¨ã§ãããããããã¦ã¼ã¶ã¼å®ç¾©è¾æ¸ãã¡ã¸ã£ã¼ã¢ã¼ãè¾æ¸ãæ¡å¼µåè¾æ¸ã®3ã¤ãããã¾ãããªããè¾æ¸ã«ããè£å®ãå©ç¨ããã«ã¯æ å ±æºã«`ac-source-dictionary`ãè¨å®ãã¦ããå¿ è¦ãããã¾ãï¼ããã©ã«ãã§ã¯è¨å®æ¸ã¿ï¼ã詳ããã¯[æ å ±æº](#)ãåç §ãã¦ãã ããã #### ã¦ã¼ã¶ã¼å®ç¾©è¾æ¸ #### ã¦ã¼ã¶ã¼å®ç¾©è¾æ¸ã¯`ac-user-dictionary`ã«è¨å®ãããæååãªã¹ãããã³`ac-user-dictionary-files`ã§æå®ãããè¾æ¸ãã¡ã¤ã«ã§æ§ç¯ããã¾ããè¾æ¸ãã¡ã¤ã«ã¯æ¹è¡ã§åºåãããåèªã®ä¸è¦§ã§ããã¦ã¼ã¶ã¼å®ç¾©è¾æ¸ã¯å ¨ã¦ã®ãããã¡ã§å ±éã§ããä¾ãã°èªåã®ã¡ã¼ã«ã¢ãã¬ã¹ãè¾æ¸ã«ç»é²ããå ´åã次ã®ããã«`ac-user-dictionary`ã«åèªã追å ãã¾ãã (add-to-list 'ac-user-dictionary "foobar@example.com") è¨å®ã¯ç´ã¡ã«åæ ããã¾ãã試ãã«é©å½ãªãããã¡ã§`foo`ã¨å ¥åãã¦ãã ããã`foobar@example.com`ãè£å®åè£ã«ãªãã¨æãã¾ãããã®è¨å®ã¯Emacsãçµäºãããæ¶å»ããã¾ããæ°¸ç¶åãããããã«ã¯`.emacs`ã«è¨è¿°ãã¦ããå¿ è¦ãããã¾ãã (setq ac-user-dictionary '("foobar@example.com" "hogehoge@example.com")) ãã£ã¨åãããããã®ã¯è¾æ¸ãã¡ã¤ã«ãå©ç¨ããæ¹æ³ã§ãã`ac-user-dictionary-files`ã«æå®ããã¦ãããã¡ã¤ã«ã¯è¾æ¸ãã¡ã¤ã«ã¨ãã¦æ±ããã¾ããããã©ã«ãã§`~/.dict`ãè¾æ¸ãã¡ã¤ã«ã«ãªãã®ã§ã`~/.dict`ãéãã¦æ¬¡ã®ããã«è¨è¿°ãã¦ãã ããã foobar@example.com hogehoge@example.com åè¿°ããããã«æ¹è¡ãåèªã®åºåãã«ãªãã¾ããä¿åãã¦ãããã«ã¯åæ ããã¾ãããã³ã¹ãã®é«ãè¾æ¸ãã¡ã¤ã«ã®èªã¿è¾¼ã¿ãæããããã«ãã£ãã·ã¥ã使ã£ã¦ããããã§ãããã£ãã·ã¥ãæ¶å»ããã«ã¯`M-x ac-clear-dictionary-cache`ãå®è¡ãã¾ããå¾ã¯å ã»ã©ã¨åãããã«é©å½ãªãããã¡ã§æåãå ¥åããã°å®ç¾©ããåèªãè£å®ã§ããããã«ãªãã¨æãã¾ãã è¨ãã¾ã§ããªãããããã¾ãããã`ac-user-dictionary-files`ã«ä»»æã®è¾æ¸ãã¡ã¤ã«ã追å ãããã¨ã§ãéãè¾æ¸ãã¡ã¤ã«ãèªã¿è¾¼ããã¨ãå¯è½ã§ãã #### ã¡ã¸ã£ã¼ã¢ã¼ãè¾æ¸ã»æ¡å¼µåè¾æ¸ #### ã¡ã¸ã£ã¼ã¢ã¼ããæ¡å¼µåãã¨ã«éãè¾æ¸ãå©ç¨ãããã¨ãã§ãã¾ããè¾æ¸ã¯`ac-dictionary-directories`ã«è¨å®ããããã£ã¬ã¯ããªããèªã¿è¾¼ã¾ãã¾ãã`ac-dictionary-directories`ã¯[ã¤ã³ã¹ãã¼ã«](#)æã«æ¬¡ã®ããã«è¨å®ãã¦ããã¯ãã§ãã (add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") ãã®ãã£ã¬ã¯ããªã«ã¯c++-modeã®ãããªã¡ã¸ã£ã¼ã¢ã¼ãã®ããã®è¾æ¸ãã¡ã¤ã«ãtxtã®ãããªæ¡å¼µåã®ããã®è¾æ¸ãã¡ã¤ã«ãæ ¼ç´ããã¦ãã¾ããä¾ãã°`a.cpp`ã¨ãããããã¡ã§è¾æ¸ã«ããè£å®ãå©ç¨ããå ´åãä¸è¨ã®è¨å®ãåæã«ããã°ã`~/.emacs.d/ac-dict/c++-mode`ã¨`~/.emacs.d/ac-dict/cpp`ããè¾æ¸ãèªã¿è¾¼ã¾ãã¾ããã¦ã¼ã¶ã¼ã¯ãããã®è¾æ¸ãã¡ã¤ã«ãå¤æ´ãããã¨ãã§ãã¾ãããã¾ãæ°ãã追å ãããã¨ãã§ãã¾ããããã«ãåæ§ã®æ§æã®ãã£ã¬ã¯ããªãä½æãã¦`ac-dictionary-directories`ã«è¿½å ãããã¨ã§ãè¾æ¸ãã¡ã¤ã«ã追å ãããã¨ãå¯è½ã§ãããã®éã`ac-dictionary-directories`ã®å é ã«ãããã£ã¬ã¯ããªãåªå ããããã¨ã«æ°ãã¤ãã¦ãã ããã ã¦ã¼ã¶ã¼å®ç¾©è¾æ¸ã¨åæ§ãè¾æ¸ã®è¿½å ã»ç·¨éå¾ã¯`M-x ac-clear-dictionary-cache`ã§ãã£ãã·ã¥ãæ¶å»ãã¦ãã ããã æ å ±æº ------ `auto-complete-mode`ã®æ¡å¼µæ§ãä¿è¨¼ãã¦ããã®ããã®æ å ±æºã¨ããæ¦å¿µã§ãã*æ å ±æº*ã¨ã¯ç°¡åã«è¨ãã°ãä¸è¨ããäºæãã²ã¨ã¾ã¨ãã«è¨è¿°ãããã®ã¨è¨ãã¾ãã * ã©ã®ãããªè£å®åè£ãçæããã * ã©ã®ããã«è£å®ããã * ã©ã®ããã«è¡¨ç¤ºããã Emacs Lispã«ã¤ãã¦è¥å¹²ã®ç¥èãããã°èª°ã§ãç°¡åã«æ å ±æºãå®ç¾©ãããã¨ãã§ãã¾ããæ å ±æºã®å®ç¾©ã«é¢ãã¦ã¯[æ¡å¼µæ¹æ³](#)ãåç §ãã¦ãã ãããããã§ã¯æ å ±æºã®å©ç¨æ¹æ³ã¨æ¨æºæ·»ä»ããã¦ããæ å ±æºã«ã¤ãã¦èª¬æãã¾ãã æ å ±æºã®ååã¯`ac-source-`ã§å§ã¾ãæ £ç¿ã¨ãªã£ã¦ãã¾ãããã®ãã`apropos`ã使ã£ã¦ã©ã®ãããªæ å ±æºãå®ç¾©ããã¦ããã調ã¹ããã¨ãã§ãã¾ãï¼`M-x apropos RET ^ac-source-`)ã`ac-source-filename`ã`ac-source-dictionary`ãªã©ãè¦ä»ããã¨æãã¾ãããããããæ å ±æºã¨å¼ã°ããå®ä½ã«ãªã£ã¦ãã¾ãã ### æ å ±æºãå©ç¨ãã ### `.emacs`ã«`(ac-config-default)`ãè¨è¿°ãã¦ããå ´åãããã©ã«ãã§æé©ãªè¨å®ã使ãããã®ã§ãããããæ å ±æºã®è¨å®ãå¤æ´ããã±ã¼ã¹ã¯ã¾ãã ã¨æãã¾ãããä¸å¿ç°¡åã«è§¦ãã¦ããã¾ããæ å ±æºã¯`ac-sources`ã¨ããå¤æ°ã«ãªã¹ãã¨ãã¦è¨å®ããã¾ããã¤ã³ã¹ãã¼ã«ç´å¾ã«\*scracth*ã§`ac-sources`ãè©ä¾¡ããã¨æ¬¡ã®ãããªçµæã«ãªãã¨æãã¾ãã ;; æ´å½¢æ¸ã¿ (ac-source-filename ac-source-functions ac-source-yasnippet ac-source-variables ac-source-symbols ac-source-features ac-source-abbrev ac-source-words-in-same-mode-buffers ac-source-dictionary) è¦ã¦ã®ã¨ããã\*scratch\*ãããã¡ã®`ac-sources`ã«ã¯6ã¤ã®æ å ±æºãè¨å®ããã¦ãããã¨ããããã¾ããããããã®èª¬æã¯å¾è¿°ãã¾ããã大ä½ã®æå³ã¯æ¨æ¸¬ã§ããã§ãããã大äºãªãã¨ãªã®ã§è¨æ¶ãã¦ããã¦ã»ããã®ã§ããã`ac-sources`ã¯ãããã¡ã¼ãã¼ã«ã«å¤æ°ã«ãªã£ã¦ããããããã¡ãã¨ã«ç¬ç«ããè¨å®ã許å¯ãã¦ãã¾ããã¤ã¾ããããããã¡ã§`ac-sources`ãå¤æ´ãã¦ããä»ã®ãããã¡ã«ã¯å½±é¿ããªããã¨ã«ãªãã¾ãã ä¾ã示ãã¾ããä»ã\*scratch\*ãããã¡ã«ããã¨èãã¦ãã ãããä¸è¨ã®ããã«ããã®ãããã¡ã«ã¯å¤ãã®æ å ±æºãè¨å®ããã¦ãã¾ããå¤æ©è½ãããã¨æããã¦ã¼ã¶ã¼ãããã§ããããããã§ãããå°ãæ©è½ãå¶éããããã«`ac-sources`ã®å¤æ´ãèãã¾ããå¤æ´æ¹æ³ã¯ç°¡åã§ã次ã®ãããªã³ã¼ãã\*scratch\*ãããã¡ãããã¯`M-:`ã§è©ä¾¡ããã ãã§ãã (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers)) ãã®ä¾ã§ã¯ã`ac-sources`ãæ¸ããã¦ãã·ã³ãã«è£å®ã¨åä¸ã¡ã¸ã£ã¼ã¢ã¼ãéã§ã®åèªè£å®ã®ã¿ãæå¹ã«ãã¾ããããã¦ãããã次ã®Emacsã®èµ·åæã«ãæå¹ã«ããã«ã¯ã©ããããããã®ã§ããããã\*scratch\*ãããã¡ä½ææã«`emacs-lisp-mode-hook`ã¨ããããã¯ãå®è¡ãããã®ã§ããã®ããã¯ã«é©å½ãªé¢æ°ã追å ããã®ãããã§ãããã (defun my-ac-emacs-lisp-mode () (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers))) (add-hook 'emacs-lisp-mode-hook 'my-ac-emacs-lisp-mode) `.emacs`ã«`(ac-config-default)`ãè¨è¿°ããã¦ããå ´åã¯ãä¸è¨ã®æ¹æ³ã§ã¯æ£ããåä½ããªãããããã¾ãããã¨ããã®ã`(ac-config-default)`å é¨ã§åæ§ã®ãã¨ãè¡ã£ã¦ããã®ã§ãã©ã¡ãããè¨å®ãä¸æ¸ããã¦ãã¾ãããã§ãããã®å ´åã¯`(ac-config-default)`ã§å©ç¨ããé¢æ°ãåå®ç¾©ãã¦ãã¾ãã®ãããã§ãããã`emacs-lisp-mode`ã®å ´åã¯ããã®é¢æ°åã¯`ac-emacs-lisp-mode-setup`ã§ãã詳ããã¯`auto-complete-config.el`ãåç §ãã¦ãã ããã (defun ac-emacs-lisp-mode-setup () (setq ac-sources '(ac-source-symbols ac-source-words-in-same-mode-buffers))) ãã¦ãããã§ç¹å®ã®ã¡ã¸ã£ã¼ã¢ã¼ãã§æ å ±æºãå¤æ´ããæ¹æ³ãåãã£ãã¨æãã¾ããã¾ã¨ããã¨æ¬¡ã®ããã«ãªãã§ãããã 1. `ac-sources`ãå¤æ´ããé¢æ°ãå®ç¾©ãã 2. `add-hook`ã§é©å½ãªã¢ã¼ãããã¯ã«ãã®é¢æ°ãç»é²ããï¼`c++-mode-hook`, `ruby-mode-hook`, `python-mode-hook`ãªã©ï¼ ã§ã¯ãå ¨ã¦ã®ãããã¡ã«å¯¾ãã¦`ac-sources`ãè¨å®ããã«ã¯ã©ããããããã®ã§ããããããã®å ´åã¯`setq`ã§ã¯ãªã`setq-default`ã§`ac-sources`ãè¨å®ãã¾ããããããã¨ãããã¡ãã¼ã«ã«å¤æ°ã§ãã`ac-sources`ã®ããã©ã«ãå¤ãè¨å®ããå¤ã«ãªãã¾ãã (setq-default ac-sources '(ac-source-words-in-all-buffer)) ä»ã«ãæ¹æ³ãããã¾ãã`(ac-config-default)`ã¯`auto-complete-mode`ã®ããã¯ã§ãã`auto-complete-mode-hook`ã«é¢æ°ã追å ãããã¨ã«ããã`setq-default`ã«ããããã©ã«ãå¤ã®å¤æ´ã«è¿ããã¨ããã£ã¦ãã¾ãããã®é¢æ°ã¯`ac-common-setup`ã§ããã`ac-sources`ã®å é ã«`ac-source-filename`ã¨ããæ å ±æºã追å ãã¦ãã¾ããããã«ãã`auto-complete-mode`ãæå¹ãªå ¨ã¦ã®ãããã¡ã§`ac-source-filename`ãæ å ±æºã®å é ã«è¿½å ããã¾ãããªãå é ãªã®ãã¨ããã¨ãããã«ã¯ãªã ãè£å®ã®ä»æ§ãé¢ä¿ãã¦ããã®ã§ãããã¨ããããããã§ã¯æ°ã«ããªãã¦ãããã§ããã¤ã¾ãã¨ããã`(ac-config-default)`ã使ã£ã¦ãã¦å ±éãã¦`ac-sources`ãå¤æ´ãããå ´åã¯ããã®`ac-common-setup`é¢æ°ãåå®ç¾©ãããã¨ãä¸ã¤ã®æ段ã¨ãªãã¾ãã ;; å ¨ã¦ã®ãããã¡ã®`ac-sources`ã®æ«å°¾ã«è¾æ¸æ å ±æºã追å (defun ac-common-setup () (setq ac-sources (append ac-sources '(ac-source-dictionary)))) ### æ¨æºæ å ±æº ### `auto-complete.el`ããã³`auto-complete-config.el`ã«å®ç¾©ããã¦ããæ å ±æºã®ä¸è¦§ã§ãã #### `ac-source-abbrev` #### Emacsã®ç¥èªæ©è½ã®ããã®æ å ±æºã§ããç¥èªæ©è½ã«é¢ãã¦ã¯`info emacs Abbrevs`ãåç §ãã¦ãã ããã #### `ac-source-css-property` #### CSSããããã£ã®ããã®æ å ±æºã§ãã #### `ac-source-dictionary` #### è¾æ¸ã®ããã®æ å ±æºã§ããè¾æ¸ã«é¢ãã¦ã¯[è¾æ¸ã«ããè£å®](#)ãåç §ãã¦ãã ããã #### `ac-source-eclim` #### [Emacs-eclim](http://github.com/senny/emacs-eclim)ã®ããã®æ å ±æºã§ãã #### `ac-source-features` #### `(require '`ã§æå¹ãªfeatureãè£å®ããããã®æ å ±æºã§ãã #### `ac-source-filename` #### ãã¡ã¤ã«åãè£å®ããããã®æ å ±æºã§ãã`/`ãå ¥åããæç¹ã§è£å®ãéå§ããã¾ãã #### `ac-source-files-in-current-dir` #### ã«ã¬ã³ããã£ã¬ã¯ããªã®ãã¡ã¤ã«ãè£å®ããããã®æ å ±æºã§ãã`eshell`ãªã©ã§ä¾¿å©ããããã¾ããã #### `ac-source-functions` #### Emacs Lispã®é¢æ°ãè£å®ããããã®æ å ±æºã§ãã`(`ã®ç´å¾ã§æå¹ã§ãã #### `ac-source-gtags` #### [Global](http://www.tamacom.com/global.html)ã®ã¿ã°ãè£å®ããããã®æ å ±æºã§ãã #### `ac-source-imenu` #### `imenu`ãã¼ããè£å®ããããã®æ å ±æºã§ãã詳ããã¯`info emacs imenu`ãåç §ãã¦ãã ããã #### `ac-source-semantic` #### [Semantic](http://cedet.sourceforge.net/semantic.shtml)ã®ããã®æ å ±æºã§ããC/C++ã§ã¡ã³ãã¼åè£å®ã¨ãã¦å©ç¨ã§ãã¾ãã #### `ac-source-semantic-raw` #### `ac-source-semantic`ã¨éã£ã¦ããã®æ å ±æºã¯çã®åå空éã§ã·ã³ãã«ãè£å®ããã®ã«ä½¿ãã¾ãã #### `ac-source-symbols` #### Emacs Lispã®ã·ã³ãã«ãè£å®ããããã®æ å ±æºã§ãã #### `ac-source-variables` #### Emacs Lispã®å¤æ°ãè£å®ããããã®æ å ±æºã§ãã #### `ac-source-words-in-all-buffer` #### å ¨ã¦ã®ãããã¡ã®åèªãè£å®ããããã®æ å ±æºã§ãã[`ac-source-words-in-same-mode-buffers`](#)ã¨éã£ã¦ãã¡ã¸ã£ã¼ã¢ã¼ããèæ ®ãã¾ããã #### `ac-source-words-in-buffer` #### ç¾å¨ã®ãããã¡ã®åèªãè£å®ããããã®æ å ±æºã§ãã #### `ac-source-words-in-same-mode-buffers` #### ç¾å¨ã®ãããã¡ã¨åãã¡ã¸ã£ã¼ã¢ã¼ãã®å ¨ã¦ã®ãããã¡ã®åèªãè£å®ããããã®æ å ±æºã§ããä¾ãã°`a.cpp`ã¨`b.cpp`ã§ã¯åèªãå ±æããã¾ããã`a.pl`ã¨`b.cpp`ã§ã¯ã¡ã¸ã£ã¼ã¢ã¼ããç°ãªãã®ã§åèªãå ±æããã¾ãããé常ã¯[`ac-source-words-in-all-buffer`](#)ãããã¡ãã®ã»ãã使ãåæãããã§ãããã #### `ac-source-yasnippet` #### [Yasnippet](http://code.google.com/p/yasnippet/)ã®ã¹ãããããè£å®ã»å±éããããã®æ å ±æºã§ãã Tips ---- ### èªåçã«è£å®ããªã ### è£å®ã¡ãã¥ã¼ãç¾ããããæ¶ãããããã¨ãç·¨éæä½ã«éä¸ã§ããªãã¨ããã¦ã¼ã¶ã¼ããã¾ããç§ã®çµé¨ã§ã¯å¾ã¦ãã¦Emacsã®ä¸ç´ã¦ã¼ã¶ã¼ãªã®ã§ãããã¨ã«ãã`auto-complete-mode`ã¯ãã®ãããªç¨éãæ³å®ãã¦ãã¾ãã次ã®ããã«`ac-auto-start`ãnilã«ãããã¨ã«ããèªåçã«è£å®ãããªããªãã¾ãã (setq ac-auto-start nil) ãã®éã`auto-complete`ã³ãã³ããä½ããã®ãã¼ã«å²ãå½ã¦ããã¹ãã§ãï¼ãããªãã¨è£å®ã§ããªãã®ã§ï¼ãä¾ãã°æ¬¡ã®ããã«`ac-mode-map`ï¼`auto-complete-mode`ãæå¹ãªãããã¡ã§å©ç¨ã§ãããã¼ãããï¼ã«å²ãå½ã¦ããã (define-key ac-mode-map (kbd "M-TAB") 'auto-complete) ãããã¯ã°ãã¼ãã«ãã¼ãããã«å²ãå½ã¦ãã®ãããã§ãããã (global-set-key "\M-/" 'auto-complete) ã¾ããèªåçã«è£å®ãã¦ããããã©ãããå°ãé·ãåèªã®ã¨ãã ãè£å®ãéå§ããã¨ãããã¨ãå¯è½ã§ããä¾ãã°4æå以ä¸ã®åèªã®ã¨ãã«è£å®ãéå§ããã«ã¯`ac-auto-start`ã«4ãè¨å®ãã¾ãã (setq ac-auto-start 4) `ac-auto-start`ã大ããã®æ°å¤ã«è¨å®ããã®ã¯ããã©ã¼ãã³ã¹ã«è¯ãå½±é¿ãããããã¾ãã`ac-auto-start`ãå°ããæ°å¤ã ã¨ãå¿ ç¶çã«è£å®åè£æ°ãå¢ããã®ã§ãããã ãè£å®åè£ã®çæã«ãããã³ã¹ãã大ãããªãã¾ãããã`auto-complete-mode`ãéãã¨æãããªã`ac-auto-start`ã«å¤§ããã®æ°å¤ãè¨å®ããã`nil`ãè¨å®ããã¨ããã§ãããã `ac-auto-start`ã«é¢ãã¦ã¯[`ac-auto-start`](#)ãåç §ãã¦ãã ããã ã¾ã[ããªã¬ã¼ãã¼](#)ãå©ç¨ãèæ ®ãã¦ã¿ã¦ãã ããã ### è£å®ã¡ãã¥ã¼ãèªåã§è¡¨ç¤ºããªã ### è£å®ã¡ãã¥ã¼ã«ãã£ã¦éä¸åãåãããåé¡ã®ããä¸ã¤ã®å¯¾å¦ã¨ãã¦ã¯ãè£å®ã¡ãã¥ã¼ã表示ããªãã¨ããæ¹æ³ãèãããã¾ããè£å®ã¡ãã¥ã¼ãé表示ã«ããã«ã¯[`ac-auto-show-menu`](#)ã`nil`ã«ãã¾ãã (setq ac-auto-show-menu nil) ããã§è£å®ã¡ãã¥ã¼ã¯èªåã§è¡¨ç¤ºãããªããªãã¾ãããè£å®åè£ã®é¸æãçµãè¾¼ã¿ãè¡ãã¨è£å®ã¡ãã¥ã¼ã¯è¡¨ç¤ºããã¾ãã ãããã¯è£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãé 延ããããã¨ã«ãããè£å®ã¡ãã¥ã¼ãå¿ è¦ãªæã ãèªåã§è¡¨ç¤ºãããããã«ãããã¨ãå¯è½ã§ãããã®ããã«ã¯`ac-auto-show-menu`ã«å®æ°ã§é 延ããæéãç§åä½ã§è¨å®ãã¾ãã ;; 0.8ç§å¾ã«èªåã§è¡¨ç¤º (setq ac-auto-show-menu 0.8) ãã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ããã©ã«ãã®å®å ¨èªåè£å®ã¨ä¸è¨ããéèªåè£å®ã®ããã¨ããã ããçµåãããã®ã¨è¨ãã¾ããå°æ¥ã¯ãããããã©ã«ãã«ãªãããããã¾ããã ### è£å®ãä¸æ¢ãã ### è£å®ã®ä¸æ¢ã¯`C-g`ã§è¡ããã¨ãã§ãã¾ããããã¯ãå®ç¾©ä¸ãªã©ã¯`C-g`ããããªãã§ãããããã®ãããªå ´åã¯`ac-completing-map`ã«è£å®ãä¸æ¢ãããã¼ãå²ãå½ã¦ãã¨ããã§ãããã (define-key ac-completing-map "\M-/" 'ac-stop) ããã§è£å®ä¸ã§ã`M-/`ã§ä¸æ¢ãããã¨ãã§ãã¾ãã ### TABã§è£å®ãå®äºãã ### ä¸è¨ããããã«TABã«ã¯æ§ã ãªæåãå®ç¾©ããã¦ãã¾ãã`auto-complete-mode`ãæ£ãã使ãããªãã«ã¯TABã¨RETã«ããè£å®ã使ããããªããã°ãªãã¾ããããRETã¯ãã®ã¾ã¾æ¹è¡ã§TABã§è£å®å®äºããã¨ãã£ãåç´ãªæä½æ¹æ³ãååèãããã¾ããããã®ãããªå ´åã¯æ¬¡ã®ããã«è¨å®ãã¾ãã (define-key ac-completing-map "\t" 'ac-complete) (define-key ac-completing-map "\r" nil) ### è£å®ã¡ãã¥ã¼è¡¨ç¤ºæã®ã¿C-n/C-pã§è£å®åè£ãé¸æãã ### 次ã®ã³ã¼ããè©ä¾¡ãããã¨ã§C-n/C-pã§è£å®åè£ãé¸æã§ãã¾ãããããã§ã¯éªéã ã¨æãããã¨ãããã¾ãã ;; è¯ããªãè¨å® (define-key ac-completing-map "\C-n" 'ac-next) (define-key ac-completing-map "\C-p" 'ac-previous) ããã§è£å®ã¡ãã¥ã¼è¡¨ç¤ºæã®ã¿ã«C-n/C-pã§è£å®åè£ãé¸æã§ããããã«ãã¦ããã¼å ¥åã極å奪ããªãããã«ãã¦ã¿ã¾ãã`ac-menu-map`ã¯è£å®ã¡ãã¥ã¼ã表示ããã¦ããã¨ãã«å©ç¨ããããã¼ãããã§ã`ac-use-menu-map`ã`t`ã®ã¨ãã«æå¹ã«ãªãã¾ãã (setq ac-use-menu-map t) ;; ããã©ã«ãã§è¨å®æ¸ã¿ (define-key ac-menu-map "\C-n" 'ac-next) (define-key ac-menu-map "\C-p" 'ac-previous) 詳ããã¯[`ac-use-menu-map`](#)ããã³[`ac-menu-map`](#)ãåç §ãã¦ãã ããã ### ã¯ã¤ãã¯ãã«ããå©ç¨ããªã ### è£å®ä¸ã«1ç§ã»ã©å¾ ã£ãã¨ãã«åºã¦ãããã¼ã«ããããã«ããã¯ã¤ãã¯ãã«ãã¨å¼ãã§ãã¾ããããããå©ç¨ããããªãå ´åã¯æ¬¡ã®ããã«è¨å®ãã¾ãã (setq ac-use-quick-help nil) ### è£å®ã¡ãã¥ã¼ã®é«ããå¤æ´ãã ### `ac-menu-height`ã«è¡æ°ãè¨å®ãã¾ãã ;; 20è¡å表示 (setq ac-menu-height 20) ### ç¹å®ã®ã¢ã¼ãã§èªåã§`auto-complete-mode`ãæå¹ã«ãã ### `ac-modes`ã«è¨å®ããã¦ããªãã¢ã¼ãã§ã¯èªåã§`auto-complete-mode`ãæå¹ã«ãªãã¾ãããé©å®è¨å®ãã¦ãã ããã (add-to-list 'ac-modes 'brandnew-mode) ### 大æåã»å°æåãåºå¥ããã/ããããªã ### 大æåã»å°æåã®åºå¥æ¹æ³ãè¨å®ããã«ã¯`ac-ignore-case`ã«æ¬¡ã®ããã«è¨å®ãã¾ãã ;; 大æåã»å°æåãåºå¥ããªã (setq ac-ignore-case t) ;; è£å®å¯¾è±¡ã«å¤§æåãå«ã¾ããå ´åã®ã¿åºå¥ãã (setq ac-ignore-case 'smart) ;; 大æåã»å°æåãåºå¥ãã (setq ac-ignore-case nil) ããã©ã«ãã¯`smart`ã§ãã ### ç¹å®ã®åèªãå ¥åãããè£å®ãèªåçã«ä¸æ¢ãã ### `ac-ignores`ã«èªåçã«è£å®ãä¸æ¢ããåèªãè¨å®ãã¾ããä¾ãã°Rubyã§endã¨å ¥åããå¾ã«èªåçã«è£å®ãä¸æ¢ããã«ã¯ä»¥ä¸ã®ããã«ãã¾ãã (add-hook 'ruby-mode-hook (lambda () (make-local-variable 'ac-ignores) (add-to-list 'ac-ignores "end"))) `ac-ignores`ã¯ãããã¡ãã¼ã«ã«å¤æ°ã§ã¯ãªãã®ã§ããããã¡ç¹æã®è¨å®ã«ããå ´åã¯`make-local-variable`ã§é©å®ãããã¡ãã¼ã«ã«ã«ããå¿ è¦ãããã¾ãã ### è²ãå¤æ´ãã ### è²ã®è¨å®ã¯ãããã次ã®ããã«ãªã£ã¦ãã¾ãã | ãã§ã¤ã¹å | 説æ | |----------------------|------------------------| | `ac-completion-face` | ã¤ã³ã©ã¤ã³è£å®ã®æåè² | | `ac-candidate-face` | è£å®ã¡ãã¥ã¼ã®èæ¯è² | | `ac-selection-face` | è£å®ã¡ãã¥ã¼ã®é¸æè² | ãã§ã¤ã¹ã®èæ¯è²ãå¤æ´ããã«ã¯`set-face-background`ãåæ¯è²ãå¤æ´ããã«ã¯`set-face-foreground`ãä¸ç·ã®è¨å®ã«ã¯`set-face-underline`ã使ãã¾ãã ;; è¨å®ä¾ (set-face-background 'ac-candidate-face "lightgray") (set-face-underline 'ac-candidate-face "darkgray") (set-face-background 'ac-selection-face "steelblue") ### ããã©ã«ãã®æ å ±æºãå¤æ´ãã ### æ å ±æºã«ã¤ãã¦åãããªãå ´åã¯æåã«[æ å ±æº](#)ãåç §ãã¦ãã ãããããã©ã«ãã®æ å ±æºï¼å ¨ã¦ã®ãããã¡ã«å ±éï¼ãå¤æ´ããã«ã¯`setq-default`ã使ãã¾ãã (setq-default ac-sources '(ac-source-words-in-all-buffer)) ### ç¹å®ã®ã¡ã¸ã£ã¼ã¢ã¼ãã§æ å ±æºãå¤æ´ãã ### ä¾ãã°C++ã®ãããã¡ã§ã¯ç¹å®ã®æ å ±æºãå©ç¨ãããã¨ãããã¨ãããã§ãããããã®å ´åã¯`add-hook`ã§ããã¯ãç»é²ãã¦ãé©å®`ac-sources`ãå¤æ´ããã«ãããã¾ãã (add-hook 'c++-mode (lambda () (add-to-list 'ac-sources 'ac-source-semantic))) ### ç¹å®ã®æ å ±æºã§è£å®ãã ### ç¹å®ã®æ å ±æºã§è£å®ãããã¨ãå¯è½ã§ããä¾ãã°ãã¡ã¤ã«åè£å®ãè¡ãããå ´åã¯`M-x ac-complete-filename`ã¨ãã¾ãããããã¯C/C++ã®ã¡ã³ãã¼åè£å®ãè¡ãããå ´åã¯`M-x ac-complete-semantic`ã¨ãã¾ããæ®éã¯æ¬¡ã®ããã«ãããã®ã³ãã³ãããã¼ãã¤ã³ããã¾ãã ;; C++ã¢ã¼ãã«ãC-c .ã§ã¡ã³ãã¼åè£å® (add-hook 'c++-mode-hook (lambda () (local-set-key (kbd "C-c .") 'ac-complete-semantic))) ;; C-c /ã§ãã¡ã¤ã«åè£å® (global-set-key (kbd "C-c /") 'ac-complete-filename) ä¸è¬çã«ããã®ãããªã³ãã³ãã¯èªåçã«å®ç¾©ããã¾ããä¾ãã°`ac-source-foobar`ã¨ããæ å ±æºãå®ç¾©ãã¦ããã¨ããã°ã`ac-complete-foobar`ã¨ããã³ãã³ããåæã«èªåçã«å®ç¾©ãããã®ã§ããå©ç¨å¯è½ãªã³ãã³ãã¯[æ¨æºæ å ±æº](#)ãåç §ãã¦ãã ããã ä¸ã¤ã®è£å®ã³ãã³ãã§è¤æ°ã®æ å ±æºã使ãã«ã¯æ¬¡ã®ããã«å¥éå®ç¾©ããå¿ è¦ãããã¾ãã (defun semantic-and-gtags-complete () (interactive) (auto-complete '(ac-source-semantic ac-source-gtags))) `auto-complete`é¢æ°ã¯`ac-sources`ã®ä»£æ¿ãå¼æ°ã¨ãã¦åããã¨ãã§ãã¾ãã ### æ°¸ç¶çã«ãã«ãã表示ãã ### `ac-help`ã®ä»£ããã«`ac-persist-help`ã使ã£ã¦ãã ãããããã©ã«ãã§`M-<f1>`ã¨`C-M-?`ã«å²ãå½ã¦ããã¦ãã¾ãã ### æå¾ã«è£å®ãããã«ãã表示ãã ### `ac-last-help`ã³ãã³ãã¯æå¾ã«è£å®ããåè£ã®ãã«ãã`ac-help`ï¼ãããã¡ãã«ãï¼ã¨åãå½¢å¼ã§è¡¨ç¤ºãã¦ããã¾ãã`C-u`ã§å¼æ°ãããããã`ac-last-persist-help`ãå¼ã³åºããã¨ã§ããã®ãã«ããããã¡ãæ°¸ç¶çã«è¡¨ç¤ºãããã¨ãå¯è½ã§ãã `ac-last-quick-help`ã³ãã³ãã¯æå¾ã«è£å®ããåè£ã®ãã«ãã`ac-quick-help`ï¼ã¯ã¤ãã¯ãã«ãï¼ã¨åãå½¢å¼ã§è¡¨ç¤ºãã¦ããã¾ããä¾ãã°ãå¾ããé¢æ°ã®ããã¥ã¡ã³ããè¦ãã¨ããªã©ã«ä¾¿å©ã§ãã ãããã®ã³ãã³ãã¯æ¬¡ã®ããã«ãã¼ãã¤ã³ãããã¨ããã§ãããã (define-key ac-mode-map (kbd "C-c h") 'ac-last-quick-help) (define-key ac-mode-map (kbd "C-c H") 'ac-last-help) ### ãã«ãã綺éºã«è¡¨ç¤ºãã ### [pos-tip.el](http://www.emacswiki.org/emacs-en/PosTip)ãã¤ã³ã¹ãã¼ã«ããã¦ããå ´åã`auto-complete-mode`ã¯å¾æ¥ã®ã¬ã³ããªã³ã°ã¨ã³ã¸ã³ã®ä»£ããã«ã`pos-tip.el`ãæä¾ãããã¤ãã£ãã¬ã³ããªã³ã°ã¨ã³ã¸ã³ãå©ç¨ãã¦ãã«ãã表示ãã¾ãã è¨å®é ç® -------- ããããã®è¨å®é ç®ã¯`.emacs`ã§å¤æ´ããã`M-x customize-group RET auto-complete RET`ã§å¤æ´å¯è½ã§ãã ### `ac-delay` ### è£å®å¯è½ã«ãªãã¾ã§ã®é 延æéï¼ç§ï¼ãå®æ°ã§æå®ãã¾ããå°ããã»ã©ç¬æã«åå¿ãã¾ãããããã©ã¼ãã³ã¹ã®ä½ä¸ã«ã¤ãªããã¾ãã ### `ac-auto-show-menu` ### è£å®æã«èªåçã«è£å®ã¡ãã¥ã¼ã表示ãããã©ããã§ãã`t`ã®å ´åã¯å¸¸ã«èªåçã«è¡¨ç¤ºãã¾ãã`nil`ã®å ´åã¯çµ¶å¯¾ã«è¡¨ç¤ºããã¾ãããå®æ°ãæå®ããã¨è¡¨ç¤ºã¾ã§ã®é 延æéãç§æ°ã§æå®ã§ãã¾ãã ### `ac-show-menu-immediately-on-auto-complete` ### `auto-complete`æã«ãã ã¡ã«è£å®ã¡ãã¥ã¼ã表示ãããã©ããã§ãããã§ã«ã¤ã³ã©ã¤ã³è£å®ã表示ããã¦ããå ´åã¯ããã®è¨å®ã¯ç¡è¦ããã¾ãã ### `ac-expand-on-auto-complete` ### `auto-complete`æã«è£å®åè£å ¨ä½ã®å ±éé¨åãå±éãããã©ããã§ãã ### `ac-disable-faces` ### èªåè£å®ãç¡å¹ã«ãããã§ã¤ã¹åãã·ã³ãã«ã®ãªã¹ãã§æå®ãã¾ããã«ã¼ã½ã«ä½ç½®ã®ãã§ã¤ã¹ããã¹ãããããã£ããã®ãªã¹ãã«å«ã¾ããå ´åã«èªåè£å®ãç¡å¹ã«ãªãä»çµã¿ã§ãã ### `ac-stop-flymake-on-completing` ### è£å®æã«Flymakeãä¸æ¢ãããã©ããã§ãã ### `ac-use-fuzzy` ### [ææ§ãããã«ããè£å®](#)ãå©ç¨ãããã©ããã§ãã ### `ac-fuzzy-cursor-color` ### [ææ§ãããã«ããè£å®](#)æã«ã«ã¼ã½ã«ã®æå®ããè²ã«å¤æ´ãã¾ãã`nil`ã®å ´åã¯å¤æ´ãã¾ãããå©ç¨ã§ããè²ã¯`M-x list-colors-display`ã§ç¢ºèªã§ãã¾ãã ### `ac-use-comphist` ### [è£å®æ¨æ¸¬æ©è½](#)ãå©ç¨ãããã©ããã§ãã`nil`ã«ããã¨å©ç¨ãã¾ããããããã©ã¼ãã³ã¹ãåä¸ããå¯è½æ§ãããã¾ãã ### `ac-comphist-threshold` ### ä½ãã¹ã³ã¢ã®è£å®åè£ãæé¤ããé¾å¤ããã¼ã»ã³ãã¼ã¸ã§æå®ãã¾ããã¹ã³ã¢ã®å ¨ä½ã100%ã¨ãã¾ãã ### `ac-comphist-file` ### [è£å®æ¨æ¸¬æ©è½](#)ã®ãã¼ã¿ãæ°¸ç¶åãããã¡ã¤ã«ãæå®ãã¾ãã ### `ac-use-quick-help` ### ã¯ã¤ãã¯ãã«ããå©ç¨ãããã©ããã§ãã ### `ac-quick-help-delay` ### ã¯ã¤ãã¯ãã«ãã表示ããã¾ã§ã®æéï¼ç§ï¼ãå®æ°ã§æå®ãã¾ãã ### `ac-menu-height` ### è£å®ã¡ãã¥ã¼ã®è¡æ°ãæ´æ°ã§æå®ãã¾ãã ### `ac-quick-help-height` ### ã¯ã¤ãã¯ãã«ãã®è¡æ°ãæ´æ°ã§æå®ãã¾ãã ### `ac-candidate-limit` ### è£å®åè£æ°ãå¶éãã¾ããæ´æ°ãæå®ããã¦ããå ´åã¯ããã®å¤ã表示ããè£å®åè£æ°ã®ä¸éã«ãã¾ãã`nil`ã®å ´åã¯ç¡å¶éã§ãã ### `ac-modes` ### `global-auto-complete-mode`ãæå¹ãªæã«`auto-complete-mode`ãèªåçã«æå¹ã«ãªãã¢ã¼ããã·ã³ãã«ã®ãªã¹ãã§æå®ãã¾ãã ### `ac-compatible-packages-regexp` ### èªåè£å®ãéå§ããã³ãã³ãã®ããã±ã¼ã¸ãæ£è¦è¡¨ç¾ã§æå®ãã¾ãã ### `ac-trigger-commands` ### èªåè£å®ãéå§ããã³ãã³ããã·ã³ãã«ã®ãªã¹ãã§æå®ãã¾ãã`self-insert-command`ãããã©ã«ãã§ãããã¾ãã«æåã®æ¿å ¥ãç¬èªã®ã³ãã³ãã«è¨å®ãã¦ããã¢ã¼ããããã®ã§ããã®å¯¾å¿ã®ããã®è¨å®é ç®ã§ãã ### `ac-trigger-commands-on-completing` ### [`ac-trigger-commands`](#)ã¨åæ§ã§ãããè£å®ä¸ã«ä½¿ç¨ãããç¹ãç°ãªãã¾ãã ### `ac-trigger-key` ### [ããªã¬ã¼ãã¼](#)ãæå®ãã¾ãã ### `ac-auto-start` ### è£å®ãèªåçã«éå§ããããã©ãããæå®ãã¾ãã`t`ã®å ´åã¯å¸¸ã«èªåçã«éå§ããã¾ãã`nil`ã®å ´åã¯çµ¶å¯¾ã«èªåçã«éå§ããã¾ãããæ´æ°ã®å ´åã¯ãè£å®å¯¾è±¡æååã®é·ãããã®å¤ä»¥ä¸ã«ãªãã¾ã§èªåçã«éå§ããã¾ããã ### `ac-ignores` ### è£å®ããªãæååãæååã®ãªã¹ãã§æå®ãã¾ãã ### `ac-ignore-case` ### è£å®æã«å¤§æåã»å°æåãåºå¥ãããã©ããã§ãã`t`ã®å ´åã¯å¸¸ã«ç¡è¦ãã¾ãã`nil`ã®å ´åã¯ç¡è¦ãã¾ãããã·ã³ãã«ã§`smart`ãæå®ãããå ´åã¯ãè£å®å¯¾è±¡æååã«å¤§æåãå«ã¾ããå ´åã®ã¿åºå¥ãã¾ãã ### `ac-dwim` ### "Do What I Mean"æ©è½ã§ãã`t`ã®å ´åã¯æ¬¡ã®æåã«ãªãã¾ãã * è£å®é¸ææã«TABãRETã®æåã«å¤åãã * è£å®åè£ãä¸ã¤ãããªãã¨ãã«TABãããã¨RETã®æåã«ãªã ### `ac-use-menu-map` ### è£å®ã¡ãã¥ã¼è¡¨ç¤ºæã«ç¹å¥ãªãã¼ãããï¼`ac-menu-map`ï¼ãæå¹ã«ãããã©ããã§ãã`t`ãã¤æ¬¡ã®æ¡ä»¶ãæºãããã¨ãã«`ac-menu-map`ãæå¹ã«ãªãã¾ãã * `ac-auto-start`ããã³`ac-auto-show-menu`ã`nil`ã§ãªããè£å®ãéå§ãã¦ããä¸å®æéå¾ã«ã¡ãã¥ã¼ã表示ãããã¨ã * `auto-complete`ã³ãã³ãã§ã¡ãã¥ã¼ã表示ãããã¨ã * `ac-isearch`ã³ãã³ãã§ã¡ãã¥ã¼ã表示ãããã¨ã ### `ac-use-overriding-local-map` ### è£å®ã®é¸æãªã©ã®è£å®ä¸ã®ãã¼å ¥åãå¹ããªãå ´åã«å©ç¨ãã¾ããå é¨çã«ã¯`overriding-local-map`ã使ãã¾ãããå¹æãå¼·åããã¦ä»ã®æ¡å¼µã¨å¹²æ¸ãããã¨ãããã®ã§ã極åå©ç¨ããªãã§ãã ããã ### `ac-completion-face` ### ã¤ã³ã©ã¤ã³è£å®ã®ããã®ãã§ã¤ã¹ã§ãã ### `ac-candidate-face` ### è£å®åè£ã®èæ¯ã®ããã®ãã§ã¤ã¹ã§ãã ### `ac-selection-face` ### é¸æãããè£å®åè£ã®ãã§ã¤ã¹ã§ãã ### `global-auto-complete-mode` ### ã°ãã¼ãã«ã«`auto-complete-mode`ãå©ç¨ãããã©ããã§ãã ### `ac-user-dictionary` ### [è¾æ¸ã«ããè£å®](#)ã®ããã®è¾æ¸ãæååã®ãªã¹ãã§æå®ãã¾ãã ### `ac-user-dictionary-files` ### [è¾æ¸ã«ããè£å®](#)ã®ããã®è¾æ¸ãã¡ã¤ã«ãæååã®ãªã¹ãã§æå®ãã¾ãã ### `ac-dictionary-directories` ### [è¾æ¸ã«ããè£å®](#)ã®ããã®è¾æ¸ãã¡ã¤ã«ãã£ã¬ã¯ããªãæååã®ãªã¹ãã§æå®ãã¾ãã ### `ac-sources` ### 使ç¨ãã[æ å ±æº](#)ããªã¹ãã§æå®ãã¾ããããã¯ãããã¡ãã¼ã«ã«å¤æ°ã§ãã ### `ac-completing-map` ### è£å®ä¸ã«ä½¿ç¨ãããã¼ãããã§ãã ### `ac-menu-map` ### ã¡ãã¥ã¼è¡¨ç¤ºæã«ä½¿ç¨ãããã¼ãããã§ãã[`ac-use-menu-map`](#)ãåç §ãã¦ãã ããã ### `ac-mode-map` ### `auto-complete-mode`ãæå¹ãªãããã¡ã§ä½¿ç¨ãããã¼ãããã§ãã æ¡å¼µæ¹æ³ -------- `auto-complete-mode`ãæ¡å¼µããã¨ã¯ã¤ã¾ã[æ å ±æº](#)ãå®ç¾©ãããã¨ã§ãããã®ç¯ã§ã¯æ å ±æºã®å®ç¾©ã®ä»æ¹ã説æãã¾ãã ### éå½¢ ### æ å ±æºã¯ããã¾ãã«è¨ã£ã¦æ¬¡ã®ãããªå½¢ãã¨ãã¾ãã (defvar ac-source-mysource1 '((prop . value) ...)) è¦ã¦ãããéãæ å ±æºã¨ã¯åãªãé£æ³ãªã¹ãã§ãããªãã®ã§ãããããããå®ç¾©ãããããããã£åã¨æ£ããå¤ã®ãã¢ãé£æ³ãªã¹ãã¨ãã¦çµåããã ãã§æ å ±æºãå®ç¾©ã§ãã¦ãã¾ãã®ã§ãã ### ç°¡åãªä¾ ### æ å ±æºã§ä¸çªéè¦ãªããããã£ã¯[`candidates`](#)ããããã£ã§ãããã®ããããã£ã«é¢æ°ãããã¯å¼ãå¤æ°ãä¸ãããã¨ã§è£å®åè£ã®çæãè¡ãã¾ããããããã£ã®è©ä¾¡çµæã¯æååã®ãªã¹ãã§ããã¹ãã§ããä¾ã¨ãã¦è£å®åè£ã¨ãã¦Foo, Bar, Bazãçæããæ å ±æºãå®ç¾©ãã¦ã¿ã¾ãããã (defvar ac-source-mysource1 '((candidates . (list "Foo" "Bar" "Baz")))) 次ã«ãã®æ å ±æºã`ac-sources`ã«è¨å®ãã¦å®éã«è£å®ãã¦ã¿ã¾ãããã (setq ac-sources '(ac-source-mysource1)) Bã¨å ¥åãã¦Bar, Bazãè£å®åè£ã¨ãã¦ç¾ãããã°æåã§ããä¸è¨ã®ä¾ã§ã¯`candidates`ããããã£ã«`(list ...)`ã¨ããå¼ãæå®ãã¾ãããããã§æå®ããå¼ã¯ãã¤ãã³ã³ãã¤ã«ãããªãã®ã§ããã»ã©ç°¡åãªãã®ã§ãªããããå¼ã§æå®ããã®ã¯ããã©ã¼ãã³ã¹ã®æªåãããããã¾ãã代æ¿çã»æ£æ»æ³ã¨ãã¦ã¯é¢æ°ãå©ç¨ããã®ãããã§ãããã (defun mysource1-candidates () '("Foo" "Bar" "Baz")) (defvar ac-source-mysource1 '((candidates . mysource1-candidates))) `candidates`ããããã£ã«æå®ããé¢æ°ã¯å¼æ°ãªãã§è£å®ãæ´æ°ããã度ã«å¼ã³åºããã¾ãããã®ä»ã®æ¹æ³ã¨ãã¦å¤æ°ãç´æ¥æå®ãããã¨ãã§ãã¾ãã ### åæå ### è£å®ãéå§ãããã¨ãã«ä¸åº¦ã ãåæåå¦çãè¡ãããã¨ãããã¨ãããã¾ãããã®ããã«ã¯`init`ããããã£ãå©ç¨ãã¾ãã`candidates`ããããã£åæ§ãå¼æ°ãªãã®é¢æ°ãããã¯å¼ãæå®ãã¾ãã次ã«ç°¡åãªä¾ã示ãã¾ãã (defvar mysource2-cache nil) (defun mysource2-init () (setq mysource2-cache '("Huge" "Processing" "Is" "Done" "Here"))) (defvar ac-source-mysource2 '((init . mysource2-init) (candidates . mysource2-cache))) ãã®ä¾ã§ã¯`mysource2-init`é¢æ°ã§å¤§è¦æ¨¡ãªå¦çãè¡ãã`mysource2-cache`å¤æ°ã«ãã®çµæãä¿åãã¦ãã¾ããããã¦`candidates`ããããã£ã«ãã®å¤æ°ãæå®ãããã¨ã§ãè£å®ãæ´æ°ããã度ã«å¤§è¦æ¨¡ãªå¦çãè¡ãããã®ãé²ãã§ãã¾ãããã®ä¾ã®ä»ã«ã次ã®ãããªç¨éãèãããã¾ãã * `require`ãã * ãããã¡ãéãã¦ãã ### ãã£ãã·ã¥ ### `auto-complete-mode`ã§ã¯ãã£ãã·ã¥ã®æ¦ç¥ãéè¦ã«ãªãã¾ãããã®æ¹æ³ã¨ãã¦ãåç¯ã§è§¦ãã`init`ããããã£ã«ãããã®ã¨ããã®ç¯ã§èª¬æãã`cache`ããããã£ã«ãããã®ãåºæ¬ã¨ãªãã¾ããæ å ±æºã®å®ç¾©ã«`cache`ããããã£ãè¨å®ãã¦ããã¨ãååã®`candidates`ããããã£ã®çµæãå é¨çã«ãã£ãã·ã¥ããããã以éã¯`candidates`ããããã£ãè©ä¾¡ãã代ããã«ããã®ãã£ãã·ã¥ãå©ç¨ããã«ããã«ãªãã¾ãã åç¯ã®ä¾ã`cache`ããããã£ãå©ç¨ãã¦æ¸ãç´ãã¦ã¿ã¾ãã (defun mysource2-candidates () '("Huge" "Processing" "Is" "Done" "Here")) (defvar ac-source-mysource2 '((candidates . mysource2-candidates) (cache))) `candidates`ããããã£ã«å¤§è¦æ¨¡ãªå¦çãå¿ è¦ãªé¢æ°ãæå®ããã¦ãã¾ãããååã®ã¿å®è¡ãããã®ã§ããã©ã¼ãã³ã¹ã®åé¡ã¯è»½æ¸ããã¾ãã #### ãã£ãã·ã¥ã®å¯¿å½ #### `init`ããããã£ã`cache`ããããã£ãã大ããã¹ã³ã¼ãã§ãã£ãã·ã¥ãä¿æãããã¨ãããã¾ããä¾ãã°æ» å¤ã«å¤æ´ã®ãªãé¢æ°åã®ãªã¹ããªã©ãããã§ãããã®å ´åã«ããã©ã¼ãã³ã¹ãç ç²ã«ãããã¨ãªããé©åº¦ã«ãã£ãã·ã¥ãã¯ãªã¢ããã«ã¯ã©ãããã°ããã®ã§ããããã`auto-complete-mode`ã¯ãã£ãã·ã¥ã®å¯¿å½ã管çããæ©æ§ãæã£ã¦ãããã¦ã¼ã¶ã¼ã¯ããã«ãã£ãã·ã¥ç¨ã®å¤æ°ãç»é²ãã¦ãããã¨ã«ãããé©å½ãªã¤ãã³ããã¨ã«ãã£ãã·ã¥ãã¯ãªã¢ããã¾ãã ãããã¡ãä¿åããããã³ã«ãã£ãã·ã¥ãã¯ãªã¢ããã«ã¯`ac-clear-variable-after-save`ã§å¤æ°ãç»é²ãã¾ããç°¡åãªä¾ã示ãã¾ãã (defvar mysource3-cache nil) (ac-clear-variable-after-save 'mysource3-cache) (defun mysource3-candidates () (or mysource3-cache (setq mysource3-cache (list (format "Time %s" (current-time-string)))))) (defvar ac-source-mysource3 '((candidates . mysource3-candidates))) ããã`ac-sources`ã«è¨å®ãã¦Timeã§è£å®ãè¡ã£ã¦ãã ãããããã¨è£å®åè£ã«è£å®æã®æéã表示ãããã¨æãã¾ããäºåº¦ç®ä»¥éãåãæéã表示ãããã®ã¯`mysource3-candidates`ã¯å¯è½ãªéããã£ãã·ã¥ãè¿ãããã«ãªã£ã¦ããããã§ããããã§ã¯ä¸åº¦ãã®ãããã¡ãä¿åãã¦ãåã³Timeã§è£å®ãè¡ã£ã¦ãã ãããä»åº¦ã¯æ°ããæéã«æ´æ°ãããã¨æãã¾ãããã®æ å ±æºã®ãã¢ã¯`ac-clear-variable-after-save`ã§ãã£ãã·ã¥ç¨å¤æ°ãç»é²ãã¦ããã¨ããã«ããã¾ãã ããã«å®æçã«ãã£ãã·ã¥ãã¯ãªã¢ãããã¨ãå¯è½ã§ãããã®ããã«ã¯`ac-clear-variable-every-minute`ã§å¤æ°ãç»é²ãã¾ãã使ãæ¹ã¯`ac-clear-variable-after-save`ã¨åãã§ãããä¸åãã¨ã«å®æçã«ãã£ãã·ã¥ãã¯ãªã¢ãããç¹ãç°ãªãã¾ããæ¨æºã®æ å ±æºã§ãã`ac-source-functions`ãªã©ããã®æ©è½ãå©ç¨ãã¦ãã¾ãã ### ã¢ã¯ã·ã§ã³ ### [RETã«ããè£å®](#)ã®å ´åã`action`ããããã£ã§æå®ãããé¢æ°ãããã¯å¼ãè©ä¾¡ããã¾ããæ¨æºæ å ±æºã§ã¯`ac-source-abbrev`ã`ac-source-yasnippet`ãå©ç¨ãã¦ãã¾ãã ### ãªã ãè£å® ### *ãªã ãè£å®*ã¨ã¯ç¾å¨ç·¨éä¸ã®ã³ã³ããã¹ããèæ ®ãã¦è¡ãè£å®ã®ãã¨ã§ããã¹ã©ãã·ã¥ãæ¤åºãã¦è¡ããã¡ã¤ã«åè£å®ããããããæ¤åºãã¦è¡ãC/C++ã®ã¡ã³ãã¼è£å®ã¯ããã®ãªã ãè£å®ã§ããã¨è¨ãã¾ããæ å ±æºããªã ãè£å®ã«å¯¾å¿ãããã«ã¯`prefix`ããããã£ã使ãã¾ãã`prefix`ããããã£ã¯è£å®å¯¾è±¡æååã®éå§ä½ç½®ããã¤ã³ãã§è¿ããªããã°ãªãã¾ããã`nil`ãè¿ããå ´åã¯ããã®æ å ±æºãç¾å¨ã®ã³ã³ããã¹ãã§ã¯ç¡å¹ã§ããã¨è§£éãã¾ãã ä¾ã¨ãã¦`To: `ã®å¾ã«ã¡ã¼ã«ã¢ãã¬ã¹ãè£å®ããæ å ±æºãèãã¦ã¿ã¾ããããã¾ããããã¾ã§ã®ç¥èããã¡ã¼ã«ã¢ãã¬ã¹ãè£å®ããæ å ±æºãå®ç¾©ãã¾ãã (defvar ac-source-to-mailaddr '((candidates . (list "foo1@example.com" "foo2@example.com" "foo3@example.com")))) (setq ac-sources '(ac-source-to-mailaddr)) ããã¾ã§ã¯ç°¡åã§ãã次ã«`prefix`ããããã£ã使ã£ã¦`To: `ã®å¾ã«ã®ã¿è£å®ãéå§ãããããã«ãã¾ãã`prefix`ããããã£ã«ã¯æ¬¡ã®ä¸ã¤ãæå®ã§ãã¾ãã * æ£è¦è¡¨ç¾ * é¢æ° * å¼ æ£è¦è¡¨ç¾ãæå®ããå ´åããã®æ£è¦è¡¨ç¾ã使ã£ã¦`re-search-backward`ãè¡ã[^1]ããããããã°ã«ã¼ã1ãããã¯ã°ã«ã¼ã0ã®å é ä½ç½®ãè£å®å¯¾è±¡æååã®éå§ä½ç½®ã¨ãã¾ããããå°ãè¤éãªå¶å¾¡ãå¿ è¦ãªå ´åã¯é¢æ°ãããã¯å¼ãæå®ãã¾ããããã§è©ä¾¡ãããéå§ä½ç½®ã¯[`ac-point`](#)ã«æ ¼ç´ããã¾ããå ã®ä¾ã§ã¯æ¬¡ã®æ£è¦è¡¨ç¾ã§äºè¶³ãã¾ãã ^To: \(.*\) ã°ã«ã¼ã1ããã£ããã£ãã¦ããã®ã¯`To: `ãè£å®å¯¾è±¡æååã«å«ããªãããã§ããããã`prefix`ããããã£ã«è¨å®ããæçµçãªæ å ±æºã¯æ¬¡ã®ããã«ãªãã¾ãã (defvar ac-source-to-mailaddr '((candidates . (list "foo1@example.com" "foo2@example.com" "foo3@example.com")) (prefix . "^To: \\(.*\\)"))) 試ãã«`To: `ã¨å ¥åãã¦ã¿ã¾ããããã¡ã¼ã«ã¢ãã¬ã¹ãè£å®ã§ããããã«ãªã£ããæåã§ãã [^1]: å³å¯ã«ã¯ãã®æ£è¦è¡¨ç¾ã®æ«å°¾ã«ã«ã¼ã½ã«ãæå³ãã\=ãä»ä¸ãããã®ã§`re-search-backward`ããã¾ã ### `ac-define-source` ### ããã¾ã§ã¯`defvar`ã§æ å ±æºãå®ç¾©ãã¦ãã¾ãããã`ac-define-source`ã¨ããã¦ã¼ãã£ãªãã£ãã¯ãã使ã£ã¦å®ç¾©ãããã¨ãå¯è½ã§ãã (ac-define-source mysource3 '((candidates . (list "Foo" "Bar" "Baz")))) ãã®ãã¯ãã¯æ¬¡ã®ããã«å±éããã¾ãã (defvar ac-source-mysource3 '((candidates . (list "Foo" "Bar" "Baz")))) (defun ac-complete-mysource3 () (interactive) (auto-complete '(ac-source-mysource3))) `defvar`ã¯å¾æ¥éãå®ç¾©ãããç¶ãã¦ãã®æ å ±æºã®ã¿ã§è£å®ãè¡ãã³ãã³ããå®ç¾©ããã¾ãã`auto-complete`ã¯å¼æ°ãªãã§å¼ã³åºãããå ´åã¯`ac-sources`ãæ å ±æºã¨ãã¦ä½¿ããå¼æ°ããã§å¼ã³åºãããå ´åã¯ãã®å¤ãæ å ±æºã¨ãã¦ä½¿ãã¾ãã`defvar`ã`ac-define-source`ãã©ã¡ãã使ããã¯å¾®å¦ã§ãããå¾æ¹äºææ§ãä¿æãããªã`defvar`ã®ã»ããç¡é£ã§ããããã¡ãªã¿ã«æ¨æºæ å ±æºã¯å ¨ã¦`ac-define-source`ã§å®ç¾©ããã¦ãã¾ããã¤ã¾ã`ac-complete-filename`ãªã©ãä»ã®ãã¼ã«å²ãå½ã¦ã¦åå¥ã«å©ç¨ãããã¨ãã§ãã¾ãã ### æ å ±æºããããã£ä¸è¦§ ### #### `init` #### è£å®éå§æã«ä¸åº¦ã ãæå®ãããé¢æ°ãããã¯å¼ãè©ä¾¡ãã¾ãã #### `candidates` #### è£å®æ´æ°æã«æå®ãããé¢æ°ãããã¯å¼ãå¤æ°ãè©ä¾¡ãã¾ããè©ä¾¡çµæã¯æååã®ãªã¹ãã§ããã¹ãã§ãã[`cache`](#)ããããã£ãæå¹ãªå ´åã¯ããã®è£å®ã§ã¯äºåº¦ç®ä»¥éè©ä¾¡ããã¾ããã #### `prefix` #### æå®ãããæ£è¦è¡¨ç¾ãé¢æ°ãããã¯å¼ãè©ä¾¡ãã¦ã[ãªã ãè£å®](#)ã®ããã®è£å®å¯¾è±¡æååã®éå§ä½ç½®ãåå¾ãã¾ãã`nil`ãè¿ããå ´åã¯ãã®æ å ±æºã¯ç¡è¦ããã¾ããæ£è¦è¡¨ç¾ãæå®ãããå ´åãã°ã«ã¼ã1ã®éå§ä½ç½®ãããã¯ã°ã«ã¼ã0ã®éå§ä½ç½®ãè©ä¾¡å¤ã¨ãã¦ä½¿ããã¾ãã #### `requires` #### æ å ±æºãæå¹ã«ãªãè£å®å¯¾è±¡æååã®æåæ°ãæå®ãã¾ããæå®ã®ãªãå ´åã¯[`ac-auto-start`](#)ã®å¤ãå©ç¨ããã¾ãã #### `action` #### [RETã«ããè£å®](#)æã«å®è¡ãã[ã¢ã¯ã·ã§ã³](#)ãé¢æ°ãããã¯å¼ã§æå®ãã¾ãã #### `limit` #### è£å®åè£ã®ä¸éæ°ãè¨å®ãã¾ãã`ac-candidate-limit`ãé¨åçã«ä¸æ¸ããã¾ãã #### `symbol` #### è£å®åè£ã®æå³ãç¾ããè¨å·ãä¸æåã®æååã§æå®ãã¾ããæå®ããè¨å·ã¯ä»»æã§ãããåºæ¬çã«ä»¥ä¸ã®æ £ç¿ã«å¾ãã¹ãã§ãã | è¨å· | æå³ | |------|----------------| | s | ã·ã³ãã« | | f | é¢æ°ã»ã¡ã½ãã | | v | å¤æ° | | c | å®æ° | | a | ç¥èª | | d | è¾æ¸ | #### `summary` #### è£å®åè£ã®ãµããªãæååã§æå®ãã¾ããããã¯è£å®åè£ãç°¡æ½ã«èª¬æããããã«ä½¿ãã¹ãã§ãã #### `cache` #### [ãã£ãã·ã¥](#)ãå©ç¨ãã¾ãã #### `require` #### æ´æ°ãããã¯`nil`ãæå®ãã¾ããæ´æ°ãæå®ãããå ´åããã®å¤ãè£å®å¯¾è±¡æååã®é·ããã大ããå ´åã¯ããã®æ å ±æºã¯ç¡è¦ããã¾ãã`nil`ã®å ´åã¯å¸¸ã«æå¹ã«ãªãã¾ãã #### `candidate-face` #### è£å®åè£ã®ãã§ã¤ã¹ãæå®ãã¾ãã[`ac-candidate-face`](#)ãé¨åçã«ä¸æ¸ããã¾ãã #### `selection-face` #### é¸æãããè£å®åè£ã®ãã§ã¤ã¹ãæå®ãã¾ãã[`ac-selection-face`](#)ãé¨åçã«ä¸æ¸ããã¾ãã #### `depends` #### ä¾åããfeatureï¼`require`ãããï¼ããªã¹ãã§æå®ãã¾ãã #### `available` #### ãã®æ å ±æºãå©ç¨ã§ãããã示ãé¢æ°ãããã¯å¼ãæå®ãã¾ãã ### å¤æ°ä¸è¦§ ### æ å ±æºã§ããå©ç¨ããå¤æ°ãä¸è¦§ãã¾ãã #### `ac-buffer` #### è£å®ãéå§ããããããã¡ã§ãã #### `ac-point` #### è£å®å¯¾è±¡æååã®éå§ä½ç½®ã§ãã #### `ac-prefix` #### è£å®å¯¾è±¡æååã§ãã #### `ac-limit` #### ç¾å¨ã®æ å ±æºã®åè£ä¸éæ°ã§ãã[`ac-candidate-limit`](#)ã[`limit`](#)ããããã£ã§å¶å¾¡ããã¾ãã #### `ac-candidates` #### è£å®åè£ã®ãªã¹ãã§ãã ãã©ãã«ã·ã¥ã¼ãã£ã³ã° ---------------------- ### ã¬ã¹ãã³ã¹ãé ã ### ååãªã¬ã¹ãã³ã¹æ§è½ã確ä¿ããã®ã¯`auto-complete-mode`ã«ã¨ã£ã¦å¤§å¤éè¦ãªãã¨ã§ãããããç¥ããã¦ããããã«ãããã¯æ©è½æ§ã¨ã®ãã¬ã¼ããªãã§ãããã¾ãã以ä¸ã«ã¬ã¹ãã³ã¹æ§è½ã«é¢é£ããè¨å®é ç®ãæããã®ã§ãããåé¡ãããã°åç §ãã¦ãã ããã #### `ac-auto-start` #### {#trouble_ac-auto-start} [`ac-auto-start`](#)ã«å¤§ããã®æ°å¤ãè¨å®ãããã¨ã§ãè£å®åè£ã®çæã³ã¹ãã軽æ¸ãããã§ãã¾ãããããã¯`nil`ã«è¨å®ãããã¨ã§ãæ¬å½ã«å¿ è¦ãªæã ãè£å®ãå®è¡ãããã¨ãã§ãã¾ãã詳ããã¯[èªåçã«è£å®ããªã](#)ãåç §ãã¦ãã ããã #### `ac-delay` #### {#trouble_ac-delay} [`ac-delay`](#)ã«å¤§ããã®æ°å¤ãè¨å®ãããã¨ã§ãè£å®éå§ã³ã¹ãã軽æ¸ãããã¨ãã§ãã¾ãã #### `ac-auto-show-menu` #### {#trouble_ac-auto-show-menu} [`ac-auto-show-menu`](#)ã«å¤§ããã®æ°å¤ãè¨å®ãããã¨ã§ãè£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºã³ã¹ãã軽æ¸ãããã¨ãã§ãã¾ãã #### `ac-use-comphist` #### {#trouble_ac-use-comphist} [`ac-use-comphist`](#)ã«`nil`ãè¨å®ãã¦[è£å®æ¨æ¸¬æ©è½](#)ãç¡å¹ã«ãããã¨ã§ãæ¨æ¸¬ã®ããã®è¨ç®ã³ã¹ãã軽æ¸ãããã¨ãã§ãã¾ãã #### `ac-candidate-limit` #### {#trouble_ac-candidate-limit} [`ac-candidate-limit`](#)ã«é©åãªæ°å¤ãè¨å®ãããã¨ã§ãå¤éã®è¨ç®ãè¡ããªãããã«ãããã¨ãã§ãã¾ãã ### è£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãå´©ãã ### è£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãå´©ããåé¡ã«ã¯å¤§ããåãã¦äºã¤ããã¾ãã #### ã«ã©ã è¨ç®ã®åé¡ #### `auto-complete-mode`ã¯è£å®ã¡ãã¥ã¼ãæ£ãã表示ããã®ã«å¿ é ãªå¦çã§ããã«ã©ã è¨ç®ã®ã³ã¹ãã軽æ¸ããããã«ãæ£ç¢ºããããç¨åº¦ç ç²ã«ããæé©åãã¼ã¸ã§ã³ã®ã«ã©ã è¨ç®é¢æ°ãå©ç¨ãã¦ãã¾ããããããåå ã§è£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãå´©ããå¯è½æ§ãããã¾ããæé©åãã¼ã¸ã§ã³ã使ããªãããã«ã¯æ¬¡ã®ã³ã¼ããè©ä¾¡ãã¾ãã (setq popup-use-optimized-column-computation nil) #### ãã©ã³ãã®åé¡ #### Ubuntu 9.10ã«ã¦[IPAãã©ã³ã](http://ossipedia.ipa.go.jp/ipafont/)ãXftã§ã¬ã³ããªã³ã°ããã¨ãè£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãå´©ããåé¡ã確èªãã¦ãã¾ãã[VLã´ã·ãã¯](http://dicey.org/vlgothic/)ãªã©ã§ã¯Xftã§ã¬ã³ããªã³ã°ãã¦ãæ£ãã表示ããããããªã®ã§ããã¡ããã使ããã ãããã¾ããXftã使ããªããã°IPAãã©ã³ããæ£ããã¬ã³ããªã³ã°ã§ãã¾ãã ç¾å¨ã®ã¨ããå®å ¨ãªå¯¾å¿çã¯è¦ã¤ãã£ã¦ãã¾ãããã`set-face-font`ã§è£å®ã¡ãã¥ã¼ã®ãã©ã³ããµã¤ãºãé©åãªãµã¤ãºã«å¤æ´ãããã¨ã§å¯¾å¿ã§ããå¯è½æ§ãããã¾ããä¾ãã°NTEmacsã§ã¯æ¥æ¬èªãå«ãè£å®ã¡ãã¥ã¼ã表示ããã¨è£å®ã¡ãã¥ã¼ã®è¡¨ç¤ºãå´©ãããã¨ãããã¾ããããã¯ä»¥ä¸ã®ããã«ãã©ã³ããµã¤ãºã調æ´ãããã¨ã§å¯¾å¿ãããã¨ãã§ãã¾ãã (set-face-font 'ac-candidate-face "MS Gothic 11") (set-face-font 'ac-selection-face "MS Gothic 11") æ¢ç¥ã®åé¡ ---------- ### `flyspell-mode`ãæå¹ãªãããã¡ã§èªåè£å®ã§ããªã ### `flyspell-mode`ã®é 延ææ³ãåå ã§èªåè£å®ãã§ãã¾ããããããåé¿ããã«ã¯`M-x ac-flyspell-workaround`ã¨ããã`~/.emacs`ã«æ¬¡ã®ããã«æ¸ãã¦ãã ããã (ac-flyspell-workaround) ãã°ã¬ãã¼ã ------------ [Auto Complete Modeã®ãã°ãã©ããã³ã°ã·ã¹ãã ](http://cx4a.org/redmine/projects/auto-complete-mode)ã«æ°ãããã±ãããç»é²ãã¦ãã ããã [GNU Emacs]: http://www.gnu.org/software/emacs/ [GPLv3]: http://gplv3.fsf.org/ [GFDL]: http://www.gnu.org/copyleft/fdl.html