๐™ธ๐šƒ

VI ํŽธ์ง‘๊ธฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•๊ณผ ํ™œ์šฉ ํŒ

ํ•ด๋ฒ„๋‹ˆ 2024. 11. 8. 07:34
๋ฐ˜์‘ํ˜•

VI ํŽธ์ง‘๊ธฐ๋ž€?

vi๋Š” UNIX์™€ Linux์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ, ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์™€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ธ๊ธฐ๊ฐ€ ๋งŽ๋‹ค.

์ดˆ๋ณด์ž์—๊ฒŒ๋Š” ๋‹ค์†Œ ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํ•ซํ‚ค๋ฅผ ์ตํžˆ๋ฉด ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ํ…์ŠคํŠธ ํŽธ์ง‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์•„์ง vi ํŽธ์ง‘๊ธฐ๊ฐ€ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ํ˜„์žฌ๋Š” nano๋กœ ์“ฐ๊ณ  ์žˆ๋Š”๋ฐ vi๋„ ์ต์ˆ™ํ•ด์ง€๋ฉด ๋‚˜์ค‘์— ๋” ํŽธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ ์—ฐ์Šตํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

 

 

 

1. ๊ธฐ๋ณธ ๊ฐœ๋… ์ตํžˆ๊ธฐ

vi๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ๊ธฐ๋ณธ์ ์ธ ํ…์ŠคํŠธ ์ž…๋ ฅ๊ณผ ์ปค์„œ ์ด๋™์„ ์ตํžˆ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์ด๋ฅผ ํ†ตํ•ด vi์˜ ๊ธฐ๋ณธ์ ์ธ ์ž‘์—… ํ๋ฆ„์— ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

This is a simple text file for practicing vi editor.
You can edit and modify this text using vi commands.
Try moving the cursor and editing the text.

 

  • vi practice.txt ๋ช…๋ น์–ด๋กœ vi๋ฅผ ์—ด๊ณ  ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

 

 

 

  • ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•œ ํ›„, Esc ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ๋ช…๋ น์–ด ๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ„๋‹ค 

Escํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ์™ผ์ชฝ ํ•˜๋‹จ์— ์ปค์„œ๊ฐ€ ์ด๋™ํ•œ๋‹ค. 

 

  • ์ €์žฅ ํ›„ ์ข…๋ฃŒํ•˜๋ ค๋ฉด :wq๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

- w: write์˜ ์•ฝ์ž๋กœ, ํŒŒ์ผ์„ ์ €์žฅ(์“ฐ๊ธฐ)ํ•œ๋‹ค

- q: quit์˜ ์•ฝ์ž๋กœ, vim์„ ์ข…๋ฃŒ(๋‹ซ๊ธฐ)ํ•œ๋‹ค

 

 

 

 

 

2. ํ…์ŠคํŠธ ํŽธ์ง‘ ๊ธฐ๋ณธ ๋ช…๋ น์–ด

vi์—์„œ ํ…์ŠคํŠธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ตํžˆ๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๋‹ค.

์ปค์„œ ์ด๋™๊ณผ ํ…์ŠคํŠธ ์ˆ˜์ •์€ vi์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

(์ด ์ปค์„œ ์ด๋™์€ INSERT๋ชจ๋“œ๊ฐ€ ์ƒํƒœ์—์„œ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค)

 

  • ์ปค์„œ ์ด๋™:
    • h, j, k, l๋กœ ์™ผ์ชฝ, ์•„๋ž˜, ์œ„, ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
    • w๋กœ ๋‹จ์–ด ๋‹จ์œ„๋กœ ์ด๋™ํ•˜๊ณ , b๋กœ ์ด์ „ ๋‹จ์–ด๋กœ ์ด๋™ํ•œ๋‹ค.
    • 0๊ณผ $๋กœ ๊ฐ๊ฐ ํ˜„์žฌ ์ค„์˜ ์ฒ˜์Œ๊ณผ ๋์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ํ…์ŠคํŠธ ์ˆ˜์ •:
    • x๋กœ ์ปค์„œ ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
    • dd๋กœ ํ˜„์žฌ ์ค„์„ ์‚ญ์ œํ•˜๊ณ , yy๋กœ ์ค„์„ ๋ณต์‚ฌํ•œ ํ›„ p๋กœ ๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค.

 

 

 

 

 

 

3. ๊ณ ๊ธ‰ ํŽธ์ง‘ ๋ช…๋ น์–ด

vi์˜ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ์ตํžˆ๋ฉด, ๋” ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ํŽธ์ง‘์ด ๊ฐ€๋Šฅํžˆ๋‹ค.

ํŠนํžˆ ๊ฒ€์ƒ‰๊ณผ ์น˜ํ™˜, ๋น ๋ฅธ ์ด๋™ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋‘๋ฉด ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค.

 

 

 

  • ๊ฒ€์ƒ‰:
    • /text๋ฅผ ์ž…๋ ฅํ•˜์—ฌ text๋ฅผ ์ฐพ๊ณ , n์œผ๋กœ ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™ํ•œ๋‹ค.
    • ?text๋กœ ๋ฐ˜๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

/text๋ฅผ ์ž…๋ ฅ ํ›„ Enter๋ฅผ ์ณ์•ผ n๋™์ž‘์ด ์ œ๋Œ€๋กœ ๋œ๋‹ค! 

Enter ์•ˆ ์น˜๊ณ  n๋„ฃ์œผ๋ฉด /textn์ด ๋œ๋‹ค... 

 

 

 

 

 

  • ์น˜ํ™˜:
    • :s/simple/test/g๋กœ "simple"์„ "test"๋กœ ์น˜ํ™˜ํ•œ๋‹ค.
    • :%s/vi/Vim/g๋กœ ํŒŒ์ผ ์ „์ฒด์—์„œ "vi"๋ฅผ "Vim"์œผ๋กœ ์น˜ํ™˜ํ•œ๋‹ค..

์น˜ํ™˜ ์ „

์น˜ํ™˜ ํ›„! 

 

 

 

 

 

  • ๋น ๋ฅธ ์ด๋™:
    • fV๋กœ ํ˜„์žฌ ์ค„์—์„œ "V"๋กœ ์ด๋™ํ•œ๋‹ค. (f๋ฅผ ๋ˆ„๋ฅธ์ฑ„๋กœ V๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.) 
    • tV๋กœ "V" ์•ž๊นŒ์ง€ ์ด๋™ํ•œ๋‹ค. (t๋ฅผ ๋ˆ„๋ฅธ์ฑ„๋กœ V๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.) 

 

 

 

4. ํŒŒ์ผ ๊ด€๋ฆฌ ๋ฐ ๋‹ค์ค‘ ํŒŒ์ผ ์ž‘์—…

vi์—์„œ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋™์‹œ์— ์ž‘์—…ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํŒŒ์ผ์„ ๋ถ„ํ• ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ์ด๋™ํ•˜๋ฉด์„œ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ๋‹ค์ค‘ ํŒŒ์ผ ์—ด๊ธฐ:
    • :e anotherfile.txt๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ฐ๋‹ค.
    • :bn๊ณผ :bp๋กœ ํŒŒ์ผ ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ทผ๋ฐ e anotherfile.txt ๋ช…๋ น์„ ์ž…๋ ฅ ํ–ˆ๋Š”๋ฐ ์ด์™€ ๊ฐ™์ด ๋œจ๊ธฐ๋„ ํ•œ๋‹ค. 

ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ํŒŒ์ผ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ด๋‹ค. 

 

 

 

๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ €์žฅ ํ›„ ๋‹ค๋ฅธ ํŒŒ์ผ ์—ด๊ธฐ

  • ํ˜„์žฌ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ด๊ณ  ์‹ถ๋‹ค๋ฉด, :w ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ํŒŒ์ผ์„ ์ €์žฅํ•œ ํ›„ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋‹ค.
:w
:e anotherfile.txt

 

 

 

๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฒ„๋ฆฌ๊ณ  ๋‹ค๋ฅธ ํŒŒ์ผ ์—ด๊ธฐ

  • ํ˜„์žฌ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ด๋ ค๋ฉด !๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ•์ œ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌด์‹œํ•˜๊ณ  ์—ด ์ˆ˜ ์žˆ๋‹ค.
:e! anotherfile.txt

 

 

๊ฐ•์ œ๋กœ ์ €์žฅํ•˜๊ณ  ํŒŒ์ผ ์—ด๊ธฐ

  • ํ˜„์žฌ ํŒŒ์ผ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ด๋ ค๋ฉด :e!๋ฅผ ์‚ฌ์šฉํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฌด์‹œํ•˜๊ณ  ์—ด ์ˆ˜ ์žˆ๋‹ค.
:e! anotherfile.txt

 

์ด ๋ช…๋ น์–ด๋“ค์„ ์‚ฌ์šฉํ•ด E37 ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์žˆ๋‹ค!

 

 

 

 

 

 

 

 

  • ํŒŒ์ผ ๋ถ„ํ• :
    • :vsplit practice.txt๋กœ ํŒŒ์ผ์„ ์ˆ˜ํ‰์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋‘ ์ฐฝ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค..

 

  • ํŒŒ์ผ ๋ถ„ํ•  ์ฐฝ ์ทจ์†Œ:
    • ์ˆ˜ํ‰ ๋ถ„ํ•  ์ฐฝ์„ ๋‹ซ์œผ๋ ค๋ฉด :q๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ˆ˜์ง ๋ถ„ํ•  ์ฐฝ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ :q๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ซ์„ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 


 

 

๋งˆ์šฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ‚ค๋ณด๋“œ๋งŒ์œผ๋กœ ํ…์ŠคํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด ์ž‘์—… ์†๋„์™€ ์ƒ์‚ฐ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ๋‹ค.

์•„์ง ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ, ๊ณ„์†ํ•ด์„œ ๋ฐฐ์šฐ๋ฉฐ ๋” ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹น!

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•