== Emacs ÆÐÅ°Áö ¼³Ä¡Çϱâ == InternetÀ» µÚÁö´Ù º¸¸é, Emacs¿¡¼­ ¾µ ¼ö ÀÖ´Â ¿©·¯ Elisp package (.el)µéÀÌ Á¸ÀçÇÕ´Ï´Ù. °¡Àå ÁÁÀº °÷Àº [http://www.emacswiki.org/ EmacsWiki]À̸ç, ÀÌ ±Û¿¡¼­´Â ÀÌ·± packageµéÀ» ¹Þ¾Æ¼­ ¼³Ä¡ÇÏ°í ¾²´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù. ÀÏ´Ü xxx.elÀ̶ó´Â package¸¦ ¹Þ¾Ò´Ù°í °¡Á¤ÇսôÙ. ¼Óµµ¸¦ ºü¸£°Ô Çϱâ À§ÇØ, ÀÌ ÆÄÀÏÀ» ¸ÕÀú ÄÄÆÄÀÏÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇÕ´Ï´Ù. xxx.elÀ» ÄÄÆÄÀÏÇϸé xxx.elc¶ó´Â ÆÄÀÏÀÌ »ý±é´Ï´Ù. °¡Àå ½¬¿î ¹æ¹ýÀº Emacs¸¦ ½ÇÇà½ÃŲ ´ÙÀ½ M-x byte-compile-file xxx.el ¸í·ÉÀ» ¾²´Â °ÍÀÌÁö¸¸, shell prompt¿¡¼­ ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÏ´Â °ÍÀÌ ´õ ÆíÇÕ´Ï´Ù: {{{#!vim sh $ emacs -q --batch --eval '(byte-compile-file "xxx.el")' }}} ÀÌÁ¦ ¼³Ä¡ÇØ¾ß Çϴµ¥, ¼³Ä¡ ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ ³ª´­ ¼ö ÀÖ½À´Ï´Ù: * ³ª¸¸ ¾²¸ç ÀÌ package¸¦ ÀÚµ¿À¸·Î ·ÎµåÇÑ´Ù. * ÀÌ ½Ã½ºÅÛ ¸ðµç »ç¿ëÀÚ°¡ ¾µ ¼ö ÀÖµµ·Ï ÇÑ´Ù (root ±ÇÇÑ ÇÊ¿ä). (¹°·Ð ´Ù¸¥ °æ¿ìµµ ÀÖ°Ú½À´Ï´Ù¸¸, ÀÌ ±Û¿¡¼­´Â À§ ¼¼ °¡Áö¸¸ ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù) === ÇÑ »ç¿ëÀÚ¿ëÀ¸·Î ¼³Ä¡ === ³ª¸¸ ¾²±â À§Çؼ­´Â ¸ÕÀú ƯÁ¤ÇÑ µð·ºÅ丮¿¡ (ÇÊÀÚ´Â $HOME/.emacs.d/¸¦ »ç¿ëÇÕ´Ï´Ù.) xxx.elÀ» ÀúÀåÇÕ´Ï´Ù: {{{#!vim sh $ mkdir $HOME/.emacs.d $ cp xxx.el $HOME/.emacs.d/ $ cp xxx.elc $HOME/.emacs.d/ }}} Emacs¿¡¼­ package¸¦ ºÒ·¯ ¿À´Âµ¥ (load-library "xxx")¸¦ ¾¹´Ï´Ù. ÀÌ ÇÔ¼ö´Â load-path º¯¼ö¿¡ ÀúÀåµÇ¾î ÀÖ´Â °æ·ÎµéÀ» µÚÁ® xxx.elc ¶Ç´Â xxx.elÀ» ã¾Æ¼­ ºÒ·¯¿É´Ï´Ù. À§¿¡¼­ ¿ì¸®°¡ ¸¸µç $HOME/.emacs.d´Â ÀÌ load-path¿¡ ¾ø±â ¶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ $HOME/.emacs¿¡ Ãß°¡ÇÏ¿©, load-path¿¡ ¿ì¸®°¡ ¸¸µç µð·ºÅ丮¸¦ Ãß°¡Çϵµ·Ï ÇÕ´Ï´Ù: {{{#!vim lisp (setq load-path (cons (expand-file-name "~/.emacs.d/") load-path)) }}} ÀÌÁ¦ Emacs¸¦ ½ÃÀÛÇϸé M-x load-library xxxÀ¸·Î ÀÌ package¸¦ ºÒ·¯¿Ã ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à Emacs¸¦ ½ÃÀÛÇÒ ¶§, ÀÌ package°¡ ÀÚµ¿À¸·Î ·ÎµåµÇ±â ¿øÇÑ´Ù¸é $HOME/.emacs¿¡ ´ÙÀ½À» Ãß°¡ÇÕ´Ï´Ù (À§ load-path¿¡ °üÇÑ ÄÚµå ¾Æ·§ÂÊ¿¡): {{{#!vim lisp (load-library "xxx") }}} ¸¸¾à package°¡ ¸Å¿ì Å« ÆÄÀÏÀÏ °æ¿ì, ÀÚµ¿À¸·Î ºÒ·¯¿Àµµ·Ï Çß´Ù¸é, Emacs¸¦ óÀ½ ½ÃÀÛÇÒ ¶§ Á¶±Ý ½Ã°£ÀÌ °É¸³´Ï´Ù. === ¸ðµç »ç¿ëÀÚ¿ëÀ¸·Î ¼³Ä¡ === ¸ÕÀú root ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½À¸·Î Emacs lisp ÆÄÀϵéÀÌ ¼³Ä¡µÈ °÷À» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ´ë°³ /usr/share/emacs ¶Ç´Â /usr/local/share/emacs°¡ ±× °÷ÀÔ´Ï´Ù. ¸¸¾à ÀÌ·± µð·ºÅ丮°¡ ¾ø´Ù¸é ´ÙÀ½°ú °°ÀÌ Emacs¸¦ ½ÇÇàÇؼ­ ±× À§Ä¡¸¦ ÃßÃøÇÒ ¼ö ÀÖ½À´Ï´Ù: {{{#!vim sh $ emacs --batch Loading /usr/share/emacs/site-lisp/site-start.d/lang-coding-systems-init.el (source)... Loading /usr/share/emacs/site-lisp/site-start.d/php-mode-init.el (source)... Loading /usr/share/emacs/site-lisp/site-start.d/po-mode-init.el (source)... Loading /usr/share/emacs/site-lisp/site-start.d/psgml-init.el (source)... Loading /usr/share/emacs/site-lisp/site-start.d/python-mode-init.el (source)... Loading /usr/share/emacs/site-lisp/site-start.d/rpm-spec-mode-init.el (source)... $ _ }}} ¾ÕÀ¸·Î ÀÌ ±Û¿¡¼­ ÀÌ ¼³Ä¡ µð·ºÅ丮¸¦ EMACS_PREFIX·Î ºÎ¸£±â·Î ÇÕ´Ï´Ù. ÀÌ µð·ºÅ丮¸¦ º¸¸é site-lispÀ̶ó´Â µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ¹Ù·Î ÀÌ °÷ÀÌ, »õ·Î °¡Á®¿Â packageµéÀ» ¼³Ä¡ÇÏ´Â °÷ÀÔ´Ï´Ù. µû¶ó¼­ ¾Õ¿¡¼­ ¸¸µç xxx.el°ú xxx.elc¸¦ ÀÌ °÷¿¡ º¹»çÇÕ´Ï´Ù: {{{#!vim sh # cp xxx.el EMACS_PREFIX/site-lisp/ # cp xxx.elc EMACS_PREFIX/site-lisp/ }}} Emacs´Â óÀ½ ½ÇÇàµÉ ¶§, $HOME/.emacs¸¦ Àбâ Àü¿¡ EMACS_PREFIX/site-lisp/site-start.elÀ» ÀоîµéÀÔ´Ï´Ù. µû¶ó¼­ ¸ðµç »ç¿ëÀÚ°¡ emacs¸¦ ½ÇÇàÇÒ ¶§ ÀÚµ¿À¸·Î ÀÌ package¸¦ ºÒ·¯¿À°Ô ÇÏ·Á¸é ÀÌ ÆÄÀÏ¿¡ ´ÙÀ½À» Ãß°¡ÇÕ´Ï´Ù: {{{#!vim lisp (load-library "xxx") }}} ¾Õ¿¡¼­µµ ¸»ÇßÁö¸¸, package°¡ Ŭ °æ¿ì, emacs ½ÃÀÛÀÌ »ó´çÈ÷ ´À¸± ¼ö ÀÖ½À´Ï´Ù. Gentoo¿¡¼­´Â EMACS_PREFIX/site-lisp/site-start.elÀÌ EMACS_PREFIX/site-lisp/site-gentoo.el¸¦ ºÒ·¯¿Àµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. ±×¸®°í emerge·Î Emacs package¸¦ ¼³Ä¡ÇÑ °æ¿ì, ÀÌ site-gentoo.elÀÌ ÀÚµ¿À¸·Î ±× ÆÐÅ°Áö ÆÄÀÏÀ» ºÒ·¯¿Àµµ·Ï µÇ¾î ÀÖ½À´Ï´Ù. (°á±¹ ÀÌ ±ÛÀÇ ¸ðµç ³»¿ëÀ» ½Å°æ¾µ ÇÊ¿ä°¡ ÀüÇô ¾ø½À´Ï´Ù. :-) ) ³¡. B) -- [http://www.cinsk.org/ ½Å¼º±¹] ---- ¿©·¯ °³ÀÇ .el ÆÄÀϵéÀ» ÄÄÆÄÀÏÇÒ ¶§¿¡´Â ´ÙÀ½ ¸í·ÉÀ» ¾²´Â °ÍÀÌ Æí¸®ÇÕ´Ï´Ù: {{{#!vim sh $ emacs -batch -f batch-byte-compile *.el }}} -- [http://www.cinsk.org/ ½Å¼º±¹] ---- CategoryEmacs