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.0413 sec