E D R , A S I H C RSS

Emacs

TextEditor ž…‹ˆ‹ค. vim๊ณผ CrimsonEditor ™€ ๊ฐ™€  œผกœ “ฐž…‹ˆ‹ค.

vim—„œŠ” ๊ธฐณธ “œ๊ฐ€ •ƒ Žธง‘ “œ๊ณ  “ธˆ˜žˆŠ” mode๊ฐ€ ๊ณ  •˜– žˆŠ” ฐ˜—, emacs—„œŠ” ฃผ “œ™€ € “œฅผ ž…ง›— งž๊ฒŒ ฐ”๊พธ– “ธˆ˜ žˆŠต‹ˆ‹ค. ˜ˆฅผ “ค– ‚ฌšฉžŠ” text-modeผŠ” …ŠคŠธ ฌธ„œฅผ Žธง‘•˜๊ณ  ž‘„ฑ•˜Š” ๊ธฐŠฅ„ ๊ฐ€ง„ ฃผ “œฅผ “ฐ„œ, ๊ธ€ž˜ ƒ‰„ ฐ”๊ฟ”ฃผ๊ฑฐ‚˜ “ค—ฌ“ฐ๊ธฐ ‚–“ฐ๊ธฐ“ฑ„ ‚ฌšฉž  •˜Œ€กœ ๊ธฐŠฅ„ ˆ˜–‰•˜Š” € “œฅผ “ธ ˆ˜ žˆŠต‹ˆ‹ค.


  • ‰†Œ— „ˆ IDE— ˜•œ‹คŠ” ƒ๊ฐ “ค–„œ ฒ”šฉ ธ TextEditorฅผ ‚ฌšฉ•žŠ” ๊ฒฐ‹ฌ„ •˜๊ณ  “ฐŠ”ฐ – ค› ˜ ‚ฌ•„ ๊ธฐก•˜ ค๊ณ  •‹ˆ‹ค.
    • emacs ฅผ ˜คžซ™•ˆ จ˜จ ž…žฅ—„œ IDE  •„Š” ˜•„ ฉ‹ˆ‹ค. OS ˜„ ฒ—–‚˜Š”๊ฒŒ ” ค‘š”•œ๊ฒƒ ๊ฐ™Šต‹ˆ‹ค.
  • DownloadŠ” —ฌ๊ธฐ„œ •˜ ฉ‹ˆ‹ค. œˆ„šฐฆˆ šฉผ ฒ„ „ •ฝ๊ฐ„ ‚ฎ„คš”.
ฐ›•„„œ •••„ ’€๊ณ  ฐ”กœ ‚ฌšฉ•  ˆ˜ žˆŠต‹ˆ‹ค. •˜œ„ ”ค‘— bin ”๊ฐ€ žˆŠ”ฐ ๊ทธ •ˆ— žˆŠ” ‹ค–‰ŒŒผ žˆŠต‹ˆ‹ค.
  • ตœ†Œ mac ๊ฐ€Šฅ•œ ubuntu —„œ ‚ฌšฉ•˜Š”๊ฒŒ  •‹ ๊ฑ๊ฐ•— ข‹Šต‹ˆ‹ค. ecb, cedet “ฑ„ งจ“œ •œฒˆ— „คน˜ •˜Šƒ, —ฌŸฌฒˆ ๊ฑฐณ„œ „คน˜•˜ŠƒŠ” •˜Š˜๊ณผ •… ฐจž…‹ˆ‹ค. œˆ„šฐŠ” ๊ฐœฐœž˜ OS ๊ฐ€ •„‹™‹ˆ‹ค

Emacs Mode

Major Mode

Minor Mode

Tramp

  • emacs ™˜๊ฒฝ ๊ทธŒ€กœ remote/ssh/docker/sudo “ฑ„ ฐ”กœ ‚ฌšฉ•  ˆ˜ žˆ๊ฒŒ •ค‹ˆ‹ค.
    • emacs Š” dired mode Š” ŒŒผ„ ๊€ฆฌ•˜๊ณ  browse •  ˆ˜ žˆŠ”ฐ, tramp ฅผ ™œšฉ•˜—ฌ remote ฅผ local ฒ˜Ÿผ ‚ฌšฉ•  ˆ˜ žˆŠต‹ˆ‹ค.
    • shell-mode ™€„ ž˜ ๊ฒฐ••˜—ฌ remote — ‰˜กœ ฐ”กœ –จ–งˆ ˆ˜„ žˆŠต‹ˆ‹ค.
    • ˜›‚ €„ฐ multi-hop  ‘†„ ฒ˜ฆฌ•  ˆ˜ žˆ—ˆŠต‹ˆ‹ค. ssh „ค • ” ‰ฝŠต‹ˆ‹ค
  • tramp กœ sudo ‚ฌšฉ•˜๊ธฐ : M-x-f /sudo::/etc/
  • tramp กœ ssh ‚ฌšฉ•˜๊ธฐ : M-x-f /ssh:you@remotehost|sudo:remotehost:/path/to/file


Python ‚ฌšฉ•˜๊ธฐ

ฅผ œ„• จผ € PythonModeฅผ Download•‹ˆ‹ค.
ฌผก  Python ฏธ „คน˜˜–žˆ–••‹ˆ‹ค.

Python„ Emacs—„œ “ฐ ค‹ˆ๊นŒ ™˜๊ฒฝ€ˆ˜ „ค ••˜Š”ฐ •œ ฒˆ ‚ฝงˆ•˜๊ณ  ๊ฒฝกœ žก•„ฃผŠ”ฐ ˜ ‚ฝงˆ –ˆŠต‹ˆ‹ค.

EmacsŠ” HOME ผŠ” ™˜๊ฒฝ€ˆ˜ฅผ šฉ•„œ ‚ฌšฉž „ค • ŒŒผธ .emacs(ฆ„ •ž—   •˜‚˜ žˆŠต‹ˆ‹ค.)ŒŒผ„ ฝ–“คž…‹ˆ‹ค.  ™˜๊ฒฝ€ˆ˜—Š” ๊ฒฝกœ๊ฐ€ “ค–๊ฐ€Š”ฐ ๊ทธ ๊ฒฝกœ— ‚ฌšฉž „ค • ŒŒผ žˆ–••‹ˆ‹ค.  œ–Œ->‹œŠค…œ->๊ณ ๊ธ‰->™˜๊ฒฝ€ˆ˜ •ˆ— HOMEผŠ” ™˜๊ฒฝ€ˆ˜ฅผ ถ”๊ฐ€•˜๊ณ , ๊ทธ ๊ฒฝกœ ฐ‘— .emacsฅผ „คน˜•••‹ˆ‹ค. .emacs ŒŒผ ‚šฉ€ ‹คŒ๊ณผ ๊ฐ™ งŒ“ญ‹ˆ‹ค.
 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\.py\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

๊ฒฝกœ žก•„ฃผ๊ธฐŠ” ˆœ „žˆ ฃผ€€‹ €กฑ•œ ƒ“—ˆŠต‹ˆ‹ค. ŒŒ„  ”๊ฐ€ œˆ„šฐ ™˜๊ฒฝ€ˆ˜ธ PATH— “ฑก˜€ •Š•„„œ ๊ทธžฌŠต‹ˆ‹ค.  —ญ‹œ  œ–Œ->‹œŠค…œ->๊ณ ๊ธ‰->™˜๊ฒฝ€ˆ˜ •ˆ—„œ ˆ˜ ••  ˆ˜ žˆŠต‹ˆ‹ค.

.emacs

  • งฅŠค „ค • ŒŒผž…‹ˆ‹ค.
  • ผฐ˜ œผกœ ‚ฌšฉž˜ HOME ”” ‰† ฆฌ ฐ‘—  €žฅฉ‹ˆ‹ค.
  • Emacs ฒ˜Œ „คน˜ ‹œ—Š” •‹น ŒŒผ žฌ•˜€ •ŠŠ” ๊ฒฝšฐ„ žˆŠต‹ˆ‹ค. Ÿ •ŒŠ” ‹น™•˜€ งˆ‹œ๊ณ  HOME ”” ‰† ฆฌ ฐ‘— .emacsผŠ” ฆ„œผกœ ŒŒผ„ งŒ“ค– ฃผ‹œ ฉ‹ˆ‹ค.
  • GNU Emacs ‚ฌšฉ‹œ Windows 7 ™˜๊ฒฝ—„œ c:\Users\UserName\AppData\Roaming ”” ‰† ฆฌ—  €žฅฉ‹ˆ‹ค.
    • .emacs ŒŒผ„ ž‘„ฑ•˜๊ฑฐ‚˜ Žธง‘•  •„š”๊ฐ€ žˆ„ ๊ฒฝšฐ—Š” C-x-f ~/.emacsกœ • ฃผ Windows ™˜๊ฒฝ—„œ„ •Œ•„„œ HOME ”” ‰† ฆฌ ฐ‘— งŒ“ค– ค‹ˆ‹ค.
  • ntemacs —„œŠ” C:\Documents and Settings\UserName\Application Data —  €žฅฉ‹ˆ‹ค.

.emacs.d

  • Emacs—„œ ฐ›Š” ‡‡ ŒŒผ“ค ‹คš˜„ก € •œ ”” ‰† ฆฌž…‹ˆ‹ค.
  • ฃผกœ Emacs Wiki—„œ ฐ›€ ŒŒผ“ค‚˜ ‹ค–‘•œ .el ŒŒผ“ค„ „ฃŠ” ฐ ‚ฌšฉ•‹ˆ‹ค.
  • ELPA—„œ ฐ›€ ŒŒผ“ค„ ๊ธฐณธ œผกœ œผกœ “ค–๊ฐ€๊ฒŒ ฉ‹ˆ‹ค.

emacs˜ œ šฉ•œ ™•žฅ ๊ธฐŠฅ

ELPA

  • Emacs Package Manager
  • Emacs˜ ™•žฅ ๊ธฐŠฅ€ .el(Emacs Lisp ™•žฅž) ŒŒผ„ ฝ–˜คŠ” ฐฉ•œผกœ ฃจ–ง„‹ค. ”ฐผ„œ .el ŒŒผงŒ žˆœผ ™•žฅ ๊ธฐŠฅ„ ‚ฌšฉ•  ˆ˜ žˆŠ”ฐ, ELPA  „๊นŒ€Š” †ตผœ .el ŒŒผ˜ ฐฐฌ ฐฉ• —†—ˆ๊ธฐ •Œฌธ— ๊ธฐŠฅ„ ถ”๊ฐ€•˜ ค ง ‘ ŒŒผ„ (EmacsWiki‚˜ github‚˜ ‹ค–‘•œ ฐฉ‹œผกœ) ‹คšฐ›•„••˜Š” ถˆŽธ•„ ๊ฐˆ˜••–ˆ‹ค. ELPAŠ” Ÿฌ•œ ฉ–ง„ ŒŒผ(= ™•žฅ ๊ธฐŠฅ)“ค„ †ต••„œ ฐ›„ ˆ˜ žˆŠ” ๊ธฐŠฅ„  œ๊ณต•˜๊ณ  žˆ‹ค.
  • „คน˜
    • Emacs ฒ„ „ 24 ›„€„ฐŠ” ๊ธฐณธ œผกœ ฌ•˜– žˆŒ.
    • Emacs 23๊นŒ€
      • package.el„ “จ„ฐ—  €žฅ•œ‹ค.  €žฅ œ„น˜Š” •„ ๊ณณ‚˜ ƒ๊€ —†€งŒ ˜„ก HOME ”” ‰† ฆฌ— .emacs.d ”” ‰† ฆฌฅผ งŒ“ค–„œ ๊ทธ •ˆ— „ฃ– ฃผ„ก •˜ž.
      • .emacs ŒŒผ— ‹คŒ๊ณผ ๊ฐ™  Š”‹ค.

(load-file "~/.emacs.d/package.el")

(require 'package)

; Add package-archives
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))

; Initialize
(package-initialize)
  • ‚ฌšฉ•
    • M-x package-list-packagesกœ ‹คš ฐ›„ ˆ˜ žˆŠ” Package listฅผ ณผ ˆ˜ žˆŒ.
    • •‹น Œจ‚ค€ ค„—„œ i(install)กœ „คน˜•  Œจ‚ค€˜ „ ƒ, d(delete)กœ €šธ Œจ‚ค€ „ ƒ, x(execute)กœ „ ƒœ ž‘—…“ค ‹ค–‰.
    • ๊ฐ• œ ‚ญ œ : d -> e(˜น€ x)กœ •‹น Œจ‚ค€ฅผ €šธ ˆ˜ žˆ๊ธ •œฐ  œŒ€กœ €›Œ€€ •ŠŠ” ๊ฒฝšฐ๊ฐ€ € žˆ‹ค(...). ๊ทธŸ ๊ฒฝšฐŠ” •‹น ŒŒผ ELPA˜ ” •ˆ— “ค–๊ฐ€ žˆ๊ธฐ •Œฌธ— ~/.emacs.d/elpa— “ค–๊ฐ€„œ •‹น Œจ‚ค€˜ ”ฅผ €›Œฒ„ฆฌ œ‹ค. ๊ทธ ›„ Emacsฅผ ‹ค‹œ ๊ธฐ™•„œ M-x package-list-packagesฅผ •‹น Œจ‚ค€๊ฐ€ „คน˜ •—„œ €›Œง„ ๊ฒƒ„ ณผ ˆ˜ žˆ„ ๊ฒƒ‹ค.
  • ถ”ฒœ Œจ‚ค€ : Anything or helm, auto-complete, tabbar, ecb, yasnippet

CEDET

CEDETž€?
collection of emacs development tool˜ •žกœ„œ, makeŒŒผ„ งŒ“ค๊ฑฐ‚˜ automakeŒŒผ ๊ตฌ„ฑ— „›€„ ฃผ๊ณ , compile•˜๊ธฐ ‰ฝ„ก „™€ฃผŠ” “ฑ, emacs™˜๊ฒฝ„ ”šฑ ’„ฑ•˜๊ฒŒ•˜Š”ฐ „›€„ ฃผŠ” ™•žฅ ๊ธฐŠฅ‹ค.

„ค •(„คน˜)ฐฉ•
  1. cedet github— “ค–๊ฐ€„œ •••ŒŒผ„ ฐ›Š”‹ค.(http://sourceforge.net/projects/cedet/)
  2. cedet•••„ .emacs.d” ˜น€ ›•˜Š” ๊ณณ— ‘ผ‹ค.
  3. cedet•••„ ‘ผ๊ณณ—  ‘๊ทผ•˜—ฌ $make … น–ฅผ †ต• นŒ“œ ‹œผœ€‹ค.
  4. emacs „ค • ŒŒผธ .emacs ˜น€ init.el ŒŒผ— „คน˜•œ cedet„ กœ“œ•˜๊ธฐœ„•œ elispฝ”“œฅผ ‹คŒ๊ณผ ๊ฐ™ จ€‹ค.

;; Load CEDET
;; 'warning: cedet-called-interactively-p called with 0 arguments, but requires 1' error repairing
(setq byte-compile-warnings nil)
;; See cedet/common/cedet.info for configuration
(load-file "~/cedet.elŒŒผ˜ ๊ฒฝกœฅผ จ„ฃŠ”‹ค. cedet•••„ ‘ผ ”•ˆ˜ common— cedet.el žˆ‹ค.")

;; Enable EDE (Project Management) features
(global-ede-mode 1)

;; *This enalbes the database and idle repasitiory
(semantic-load-enable-minimum-features)
ฐธ๊ณ #1. lispฝ”“œ—„œ ;;Š” ฃผ„‹ค.
ฐธ๊ณ #2. lispฝ”“œค‘—„œ load file •˜Š” €ถ„„ ‚˜๊ฐ™€ ๊ฒฝšฐŠ”(load-file "~/.emacs.d/cedet/common/cedet.el")๊ณผ ๊ฐ™  —ˆ‹ค. ๊ฒฝกœ˜ ~/Š” ‚˜Š” œˆ„šฐ—„œ cygwin„ †ต•„œ emacsฅผ “ฐ๊ณ  žˆ–„œ ™˜๊ฒฝ€ˆ˜ HOME˜ ๊ฒฝกœฅผ  € ‡๊ฒŒ ‘œ˜„•  ˆ˜ žˆ‹ค.
ฐธ๊ณ #3. lisp ฝ”“œ˜ (setq byte-compile-warning nil)€  ฝ”“œ ฐ”กœ œ„˜ ฃผ„— •‹น•˜Š” ˜คฅ˜๊ฐ€ ฐœƒ•˜—ฌ„œ •๊ฒฐฑ…œผกœ ž‘„ฑ•œ ฝ”“œ‹ค. ˜น‹œ  ฝ”“œกœ ธ• ‹คฅธ ˜คฅ˜๊ฐ€ ฐœƒ•˜๊ฑฐ‚˜ •œ‹ค, ฅผ €šฐ๊ฑฐ‚˜ ๊ตฌ๊ธ€ง„ †ต• ‹คฅธ ฐฉ•„ ฐฟ๊ธธ ฐ”ž€‹ค.ใ… ใ…œ


ECB

ECBž€?
emacs code browser˜ •žกœ„œ, ”„กœ Šธ ŒŒผ management‚˜, ”” ‰† ฆฌ management“ฑ„ „™€ฃผŠ” ™•žฅ ๊ธฐŠฅ‹ค.

„ค •(„คน˜)ฐฉ•
  1. ecb „คน˜ „— šฐ„  cedet„คน˜๊ฐ€ šฐ„ ˜–••œ‹ค. cedet€  ๊ธ€„ “ ‹œ — 1.1 Œ€˜ ฒ„ ผ ตœ‹  ฒ„ ผ‹ค. cedet„คน˜Š” cedet„ „ค…•‘” €ถ„—„œ ฐธกฐ•˜๊ธธ ฐ”ž€‹ค. (ฐธ๊ณ กœ emacs 23€„ฐŠ” ‚€ œผกœ CEDET „คน˜˜–žˆ‹ค.)
  2. ˜„ œ emacs˜ ตœ‹ ฒ„ ผ€ 24.*Œ€‹ค. ๊ทธฆฌ๊ณ   ฒ„ ผŒ€˜ emacsŠ” ‚€ œผกœ cedet „คน˜˜–žˆ‹ค๊ณ  •œ‹ค.  cedet˜ ฒ„ ผ๊ณผ ecb˜ ฒ„ ผ ‚ฌ— ฒ„๊ทธ•Œฌธ— ecb ™˜๊ฒฝ„ค •„ •˜ ค•˜ – ค›€ งŽ‹ค. —‹ฌžˆ ‚ฝงˆ•„œ •Œ•„ณธ ๊ฒฐ๊ณผ ––ค ™ธ๊ตญ ‹ ‚ฌถ„ ฒ„๊ทธ fix›„ report•˜๊ธฐ „— ฐ˜˜ Šฆ„๊ฒƒ๊ฐ™๊ธฐ— ฏธฆฌ github— ˜ฌ ค‘‹  ˆ˜ • ฒ„ „ žˆ‹ค.(https://github.com/alexott/ecb/) —ฌ๊ธฐ—„œ ecb˜ •••ŒŒผ„ ฐ›Š” ๊ฒƒ€„ฐ ‹œž‘„ •œ‹ค.
  3. ฐ›€ •••ŒŒผ„ .emacs.d ” ˜น€ ›•˜Š” ๊ณณ— •••„ ‘ผ‹ค.
  4. emacs „ค •ŒŒผธ .emacs ˜น€ init.el— ‹คŒ๊ณผ๊ฐ™€ elisp ฝ”“œฅผ  Š”‹ค.

;;ECB Load
(add-to-list 'load-path "ecb•••„ ‘ผ ” ๊ฒฝกœฅผ  Šต‹ˆ‹ค.")
(load-file "ecb.el˜ ŒŒผ๊ฒฝกœฅผ  Šต‹ˆ‹ค.  ŒŒผ€ ecb •••„ ‘ผ ” •ˆ— ž‡Šต‹ˆ‹ค.")
(require 'ecb)

ฐธ๊ณ #1. ‚˜๊ฐ™€ ๊ฒฝšฐ, ๊ฒฝกœฅผ จ„ฃŠ” €ถ„„ •„ž˜™€ ๊ฐ™ ž‘„ฑ•˜—ฟ‹ค.
(add-to-list 'load-path "~/.emacs.d/ecb-master")
(load-file "~/.emacs.d/ecb-master/ecb.el")

ELPA „คน˜‹œ „คน˜ ฐฉ•
  • „คน˜
    • M-x package-list-packages
    • C-s ecb
      • •‹น ผธ—„œ i ˆ„ฅธ ›„ x
  • .emacs „ค •

(require 'cl)
(require 'ecb)

tabbar plugin

†ŒŠคŒŒผ˜ tabbarฅผ “ฐ๊ธฐœ„•œ ”ŒŸฌ๊ทธธ‹ค.

emacs wiki— tabbar ผ๊ณ  ๊ฒ€ƒ‰•˜ †ŒŠค๊ฐ€  œ๊ณตœ‹ค.

emacs „ค •ŒŒผ žˆŠ” ”” ‰† ฆฌ— †ŒŠคฅผ ณต‚ฌ•„œ tabbar.elผ๊ณ  †ŒŠคŒŒผ„ งŒ“ค–  €žฅ•œ‹ค.

emacs „ค •ŒŒผธ .emacs ˜น€ init.el— ‹คŒ๊ณผ๊ฐ™ –™ ‚ฌšฉ•  ˆ˜ žˆ‹ค.
;;Tabbar plugin load
(require 'tabbar)
(tabbar-mode t)
(global-set-key [(control shift tab)]'tabbar-backward)
(global-set-key [(control tab)]'tabbar-forward)

highline plugin

„œ๊ฐ€ œ„น˜•œ ค„˜ ƒ‰„ ‹ฌฆฌ•˜—ฌ €๊ธˆ ž‘—…•˜Š” €ถ„„ šœ ทžˆ —ฌฃผŠ” ”ŒŸฌ๊ทธธ‹ค.

emacs wiki— highline ผ๊ณ  ๊ฒ€ƒ‰•˜ †ŒŠค๊ฐ€  œ๊ณตœ‹ค.

emacs „ค •ŒŒผ žˆŠ” ”” ‰† ฆฌ— †ŒŠคฅผ ณต‚ฌ•„œ highline.elผ๊ณ  †ŒŠคŒŒผ„ งŒ“ค–  €žฅ•œ‹ค.

emacs „ค •ŒŒผธ .emacs ˜น€ init.el— ‹คŒ๊ณผ๊ฐ™ –™ ‚ฌšฉ•  ˆ˜ žˆ‹ค.
;;Highline plugin load
(require 'highline)
(global-highline-mode t)

color-theme plugin

emacs ฐฐ๊ฒฝƒ‰, ๊ธ€žƒ‰ themeฅผ  œ๊ณต•˜Š” ”ŒŸฌ๊ทธธ‹ค.

emacs wiki— color-theme ผ๊ณ  ๊ฒ€ƒ‰•˜ •••ŒŒผ  œ๊ณตœ‹ค.

emacs „ค •ŒŒผ žˆŠ” ”” ‰† ฆฌ— color-theme•••ŒŒผ˜ •••„ ‘ผ‹ค.

emacs „ค •ŒŒผธ .emacs ˜น€ init.el— ‹คŒ๊ณผ๊ฐ™ –™ ‚ฌšฉ•  ˆ˜ žˆ‹ค.
;;Color Theme plugin load
(add-to-list 'load-path "color theme ” ๊ฒฝกœฅผ  –€‹ค.")
(require 'color-theme)
(eval-after-load "color-theme"
  '(progn
     (color-theme-initialize)
     (color-theme-hober)))


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:12
Processing time 0.0339 sec