7. Vim Editer

7์žฅ Vim Editor ๊ฐœ์š”

Vim์€ ์œ ๋‹‰์Šค ๊ณ„์—ด ์‹œ์Šคํ…œ์˜ ํ‘œ์ค€ ํ„ฐ๋ฏธ๋„ ์—๋””ํ„ฐ๋กœ, ์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(Raspberry Pi, ์›๊ฒฉ ์„œ๋ฒ„)์—์„œ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋‹ค. ๋ชจ๋“œ ๊ธฐ๋ฐ˜ ํŽธ์ง‘๊ณผ ํ‚ค๋ณด๋“œ ์กฐํ•ฉ์œผ๋กœ ๊ฐ•๋ ฅํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘์„ ์ œ๊ณตํ•œ๋‹ค.

1.1 ์ปค์„œ ์ด๋™

vim์€ ๋ฐฉํ–ฅํ‚ค ๋Œ€์‹  h, j, k, l์„ ์‚ฌ์šฉ (ํ™ˆ ํฌ์ง€์…˜์—์„œ ์† ์ด๋™ ์ตœ์†Œํ™”):

      [ k ]  โ† ์œ„๋กœ
[ h ] [ j ] [ l ]
 โ†    ์•„๋ž˜   โ†’
  • h: ์™ผ์ชฝ
  • j: ์•„๋ž˜
  • k: ์œ„
  • l: ์˜ค๋ฅธ์ชฝ

1.2 Vim์„ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚ด๊ธฐ

  • :q!: ๋ฐ”๋€ ๋‚ด์šฉ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋น ์ ธ๋‚˜์˜ด (๊ฐ•์ œ ๋ช…๋ น !)
  • :q: ๋ฐ”๋€ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋น ์ ธ ๋‚˜์˜ฌ ์ˆ˜ ์—†์Œ
  • :wq: ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ €์žฅ ํ›„ ๋‚˜๊ฐ€๊ธฐ
  • :w <ํŒŒ์ผ๋ช…>: ํŒŒ์ผ๋ช…์œผ๋กœ ์ €์žฅ (ํ˜„์žฌ ์ž‘์—…ํ•˜๋˜ ํŒŒ์ผ์€ ์ƒˆ๋กœ์šด ํŒŒ์ผ X)
  • vim <ํŒŒ์ผ๋ช…>: vim์œผ๋กœ ํŒŒ์ผ ์ˆ˜์ •

1.3 ํ…์ŠคํŠธ ํŽธ์ง‘

  • โ‘  ์ง€์šฐ๊ธฐ x: ์ง€์›Œ์•ผ ํ•  ๊ธ€์ž ์œ„๋กœ ๊ฐ€์„œ xํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๊ธ€์ž๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์Œ
  • โ‘ก ์‚ฝ์ž… i: insert mode
  • โ‘ข ์ถ”๊ฐ€ A: ๋ฌธ์žฅ์˜ ๊ฐ€์žฅ ๋์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ถ”๊ฐ€

2.1 ์‚ญ์ œ ๋ช…๋ น

  • dw: ํ•œ ๋‹จ์–ด๋ฅผ ๋๊นŒ์ง€ ์ง€์šฐ๋ ค๊ณ  ํ•  ๋•Œ (๊ณต๋ฐฑ๋„ ํฌํ•จ ์‚ญ์ œ). ์˜ˆ: a bc e โ†’ a e
  • d$: ํ˜„์žฌ ์ปค์„œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์‚ญ์ œ
  • dd: ์ค„ ์ „์ฒด ์‚ญ์ œ

[ํšŸ์ˆ˜] d ๋Œ€์ƒ or d [ํšŸ์ˆ˜] ๋Œ€์ƒ

  • w: ์ปค์„œ์—์„œ ๋‹จ์–ด ๋ (๊ณต๋ฐฑ ํฌํ•จ)
  • e: ์ปค์„œ์—์„œ ๋‹จ์–ด ๋ (๊ณต๋ฐฑ ๋ฏธํฌํ•จ)
  • $: ์ปค์„œ์—์„œ ์ค„ ๋

์˜ˆ: 2dw โ†’ ๋‘ ๋‹จ์–ด ์‚ญ์ œ (๊ณต๋ฐฑ ํฌํ•จ)

์ปค์„œ ์ด๋™ ์˜ˆ์ œ

  • 2w โ†’ This is just a line with words you can move around in. โ†’ This is just a line with words you can move around in.
  • 3e โ†’ 3e๋งŒํผ ๋‹จ์–ด ๋ ์ด๋™
  • 0 โ†’ ์ค„์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™

2.2 ์ทจ์†Œ ๋ช…๋ น

  • u: undo
  • Ctrl+R: redo
  • U: ์ค„ ์ „์ฒด์—์„œ ์ˆ˜์ •ํ•œ ๋‚ด์šฉ ์ทจ์†Œ

3.1 ๋ถ™์ด๊ธฐ ๋ช…๋ น

  • p: ๋งˆ์ง€๋ง‰์œผ๋กœ ์ง€์šด ๋‚ด์šฉ์„ ๋ถ™์ž„ (์•„๋žซ์ค„์— ๋ณต์‚ฌ๋จ)

3.2 ์น˜ํ™˜ ๋ช…๋ น

  • r: ๊ธ€์ž์— ์ปค์„œ๋ฅผ ์˜ฌ๋ฆฌ๊ณ  r์„ ๋ˆ„๋ฅด๊ณ  ๋ฐ”๊ฟ€ ๋‹จ์–ด ์„ ํƒ

3.3 ๋ณ€ํ™˜ ๋ช…๋ น

  • ce or cw: ํ•œ ๋‹จ์–ด๋ฅผ ๋ณ€๊ฒฝ (์ง€์šฐ๊ณ  ์ˆ˜์ • ๋ชจ๋“œ๋กœ)
  • ๋‹จ์–ด์˜ ์ค‘๊ฐ„๋ถ€ํ„ฐ๋„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

[ํšŸ์ˆ˜] c ๋Œ€์ƒ or c [ํšŸ์ˆ˜] ๋Œ€์ƒ

Vim ๊ธฐ๋ณธ ํŽธ์ง‘

4.1 ์œ„์น˜์™€ ํŒŒ์ผ์˜ ์ƒํƒœ

  • Ctrl+G: ํŒŒ์ผ์˜ ํ˜„์žฌ ์œ„์น˜์™€ ์ƒํƒœ ํ™•์ธ
  • G: ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด๋™
  • gg: ํŒŒ์ผ์˜ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
  • <์ค„๋ฒˆํ˜ธ>G: ์ค„๋ฒˆํ˜ธ๋กœ ์ด๋™

4.2 ์ฐพ๊ธฐ ๋ช…๋ น

  • /<์ฐพ์„ ๋‹จ์–ด>: ์ˆœ๋ฐฉํ–ฅ ๊ฒ€์ƒ‰
  • ?<์ฐพ์„ ๋‹จ์–ด>: ์—ญ๋ฐฉํ–ฅ ๊ฒ€์ƒ‰
  • n์„ ๋ˆŒ๋Ÿฌ์„œ ๋‹ค์Œ ๋ฌธ๊ตฌ ์ด๋™ (๋ฐ˜๋Œ€๋Š” N)

4.3 ๊ด„ํ˜ธ์˜ ์ง ์ฐพ๊ธฐ

(, [, {์— ์ปค์„œ๋ฅผ ๋‘๊ณ  %๋ฅผ ์ž…๋ ฅ

4.4 ์น˜ํ™˜ ๋ช…๋ น

  • :s/old/new/g: ์ปค์„œ๊ฐ€ ์žˆ๋Š” ๋ฌธ์žฅ์—์„œ old๋ฅผ new๋กœ ์น˜ํ™˜. ๋ฌธ์žฅ์˜ ๊ฐ™์€ ๋ฌธ๊ตฌ๋ฅผ ๋ชจ๋‘ ์น˜ํ™˜, ์—†๋‹ค๋ฉด ์ฒซ๋ฒˆ์งธ๋งŒ ์น˜ํ™˜
  • :#,#s/old/new/g: #~# ๋ฒˆ์งธ ๋ฌธ์žฅ์—์„œ old๋ฅผ new๋กœ ์น˜ํ™˜
  • :%s/old/new/g: ์ „์ฒด ๋ฌธ์žฅ์—์„œ old๋ฅผ new๋กœ ์น˜ํ™˜
  • :%s/old/new/gc: ์ „์ฒด ๋ฌธ์žฅ์—์„œ old๋ฅผ ์ฐพ๊ณ  new๋กœ ์น˜ํ™˜ํ• ์ง€ ์„ ํƒ

5.1 ์™ธ๋ถ€ ๋ช…๋ น ์‹คํ–‰

  • :!<๋ช…๋ น์–ด>: ์™ธ๋ถ€ ๋ช…๋ น ์‹คํ–‰

5.3 ์„ ํƒ์  ์ €์žฅ

  • :#, #w <ํŒŒ์ผ๋ช…>: # ~ # ๋ฒˆ์งธ๊นŒ์ง€ ํŒŒ์ผ๋ช…์œผ๋กœ ์ €์žฅ
  • v: ๋ถ€๋ถ„ ์„ ํƒ ๋ช…๋ น์–ด โ†’ '<, '>์ด ๋ช…๋ น๋จ โ†’ :'<, '>w <ํŒŒ์ผ๋ช…> โ†’ ์„ ํƒํ•œ ๋ถ€๋ถ„ ์ €์žฅ

5.4 ํŒŒ์ผ ์‚ฝ์ž…

  • :r <ํŒŒ์ผ๋ช…> โ€” ์˜ˆ: :r ls โ†’ ls ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€์„œ ์‚ฝ์ž…

6.1 ์ƒˆ ์ค„ ์—ด๊ธฐ ๋ช…๋ น

  • o: ์ปค์„œ ์•„๋ž˜์— ์ƒˆ๋กœ์šด ์ค„์„ ๋งŒ๋“ค๊ณ  ํŽธ์ง‘ ๋ชจ๋“œ๊ฐ€ ๋จ
  • O: ์ปค์„œ ์œ„์— ์ƒˆ๋กœ์šด ์ค„์„ ๋งŒ๋“ค๊ณ  ํŽธ์ง‘ ๋ชจ๋“œ๊ฐ€ ๋จ

6.2 ์ถ”๊ฐ€ ๋ช…๋ น

  • i: ์ปค์„œ ์œ„์น˜์— ์ถ”๊ฐ€
  • a: ์ปค์„œ์—์„œ ํ•œ ์นธ(โ†‘) ์ด๋™ํ•œ ์œ„์น˜์— ์ถ”๊ฐ€
  • A: ๋ฌธ์žฅ ๋์œผ๋กœ ์ด๋™ํ•ด ์ถ”๊ฐ€
  • $: ์ค„์˜ ๋์œผ๋กœ ์ด๋™

6.3 ์น˜ํ™˜์˜ ๋‹ค๋ฅธ ๋ฒ„์ „

  • R: ์ปค์„œ๋ถ€ํ„ฐ ๊ธ€์ž๋ฅผ ์‚ญ์ œํ•ด๊ฐ€๋ฉฐ ๋ณ€๊ฒฝ
  • r์€ ํ•œ ๊ธ€์ž๋งŒ ๋ณ€๊ฒฝ

6.4 ๋ฌธ์ž ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ

  • v: ๋ถ€๋ถ„ ์„ ํƒ ๋ช…๋ น์–ด โ†’ y ๋ณต์‚ฌ โ†’ p ๋ถ™์—ฌ๋„ฃ๊ธฐ
  • yw: ํ•œ ๋‹จ์–ด๋งŒ ๋ณต์‚ฌ
  • yy: ํ•œ ์ค„ ๋ณต์‚ฌ

์œ„์น˜, ์ฐพ๊ธฐ, ์น˜ํ™˜, ์‚ฝ์ž…, ์ƒˆ ์ค„ ์—ด๊ธฐ, ๋ณต์‚ฌ

6.5 ์˜ต์…˜ ์„ค์ •

  • :set ic: ์ฐพ๊ฑฐ๋‚˜ ๋ฐ”๊พธ๊ธฐ์—์„œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X
  • :set hls is: ๋ถ€๋ถ„ ํฌํ•จ๋„ ๊ฒ€์ƒ‰ (incsearch), ํ•˜์ด๋ผ์ดํŠธ๋จ (hlsearch)
  • :set noic, :set nohls, :set nois โ†’ no๋ฅผ ๋ถ™์ด๋ฉด ์˜ต์…˜ ์ œ๊ฑฐ
  • :set nu: ๋ผ์ธ ๋ฒˆํ˜ธ ํ‘œ์‹œ

7.1 ์˜จ๋ผ์ธ ๋„์›€๋ง ๋ช…๋ น

  • :help
  • :help <๋ช…๋ น์–ด>

7.2 ์‹œ์ž‘ ์Šคํฌ๋ฆฝํŠธ ๋งŒ๋“ค๊ธฐ

  • :e ~/.vimrc โ†’ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ํ›„ ์ €์žฅ (edit โ€” ํŒŒ์ผ ์ˆ˜์ •, ์—†๋‹ค๋ฉด ํŒŒ์ผ์„ ๋งŒ๋“ฆ)

7.3 ๋ช…๋ น์–ด ์™„์„ฑํ•˜๊ธฐ

  • :์–ด๋–ค ๋‹จ์–ด + Ctrl+D or TAB: ์–ด๋–ค ๋‹จ์–ด๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ

Vim ์˜ต์…˜ ๋ฐ ๋„์›€๋ง

์ •๋ฆฌ

๋‹จ๊ณ„ ํ•ต์‹ฌ ๋ช…๋ น
์ด๋™ h/j/k/l, gg, G, G
ํŽธ์ง‘ ๋ชจ๋“œ i, a, A, o, O
์‚ญ์ œ x, dw, d$, dd
์ทจ์†Œ u, Ctrl+R, U
๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ yy, yw, p
์ฐพ๊ธฐ /<๋‹จ์–ด>, ?<๋‹จ์–ด>, n, N
์น˜ํ™˜ :s/old/new/g, :%s/old/new/gc
์ €์žฅ/์ข…๋ฃŒ :w, :q, :wq, :q!
vimrc :e ~/.vimrc

Vim์˜ ๊ฐ•์ ์€ ์†์ด ํ™ˆ ํฌ์ง€์…˜์—์„œ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ํŽธ์ง‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ . ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์—์„œ GUI ์—†๋Š” ํ™˜๊ฒฝ์— ํ•„์ˆ˜.

๋น„์Šทํ•œ ๊ธ€ ์ถ”์ฒœ

Comments (0)

No comments yet. Be the first to comment!