๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
6. CS ๊ธฐ์ดˆ ๐Ÿ“š/Linux & Unix ๐Ÿง

[Linux/Ubuntu] vi ํŽธ์ง‘๊ธฐ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•: ๋ชจ๋“œ, ์ €์žฅ, ๊ธฐ๋ณธ ๋ช…๋ น์–ด, ํ๋ฆ„

by lxvxxu 2025. 10. 17.
 

 

์ข‹์•„์š” ๐Ÿ˜Š
์ด์ œ ์ •๋ง ์ค‘์š”ํ•œ ๊ฑธ ๋ฐฐ์šฐ๋ ค ํ•˜๋„ค์š”!
vi (๋˜๋Š” vim) ์€ ๋ฆฌ๋ˆ…์Šค์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์˜ˆ์š”.
์ฒ˜์Œ์—” ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฌ์ง€๋งŒ, ๊ธˆ๋ฐฉ ์ต์ˆ™ํ•ด์ง‘๋‹ˆ๋‹ค ๐Ÿ‘


๐ŸŸฉ 1๏ธโƒฃ vi ์‹คํ–‰ํ•˜๊ธฐ

ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ์ž…๋ ฅํ•˜์„ธ์š” ๐Ÿ‘‡

 
vi ํŒŒ์ผ์ด๋ฆ„.c

์˜ˆ์‹œ:

 
vi 7-2.c

โžก๏ธ ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ ,
์žˆ์œผ๋ฉด ๊ทธ ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.


๐ŸŸฆ 2๏ธโƒฃ vi์˜ 3๊ฐ€์ง€ ๊ธฐ๋ณธ ๋ชจ๋“œ

๋ชจ๋“œ์„ค๋ช…์ง„์ž… ๋ฐฉ๋ฒ•
๋ช…๋ น ๋ชจ๋“œ (Command Mode) vi ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ ์ƒํƒœ Esc
์ž…๋ ฅ ๋ชจ๋“œ (Insert Mode) ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋ชจ๋“œ i, a, o
๋ช…๋ นํ–‰ ๋ชจ๋“œ (Ex Mode) ์ €์žฅ, ์ข…๋ฃŒ, ๊ฒ€์ƒ‰ ๋“ฑ :

๐ŸŸจ 3๏ธโƒฃ ๊ธ€์ž ์ž…๋ ฅํ•˜๊ธฐ

  1. vi ์‹คํ–‰ → ๊ธฐ๋ณธ์€ ๋ช…๋ น ๋ชจ๋“œ
  2. i (insert) ๋ˆ„๋ฅด๋ฉด ์ž…๋ ฅ ๋ชจ๋“œ ์ง„์ž…
  3. ๊ธ€์ž ์ž…๋ ฅ ๊ฐ€๋Šฅ!

์˜ˆ์‹œ ๐Ÿ‘‡

 
#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }
  1. ์ž…๋ ฅ ๋‹ค ํ–ˆ์œผ๋ฉด Esc ํ‚ค๋กœ ๋ช…๋ น ๋ชจ๋“œ๋กœ ๋Œ์•„์˜ค๊ธฐ

๐ŸŸง 4๏ธโƒฃ ์ €์žฅํ•˜๊ณ  ๋‚˜๊ฐ€๊ธฐ

๋ช…๋ น์„ค๋ช…
:w ์ €์žฅ๋งŒ ํ•˜๊ธฐ (write)
:q ์ข…๋ฃŒ (quit)
:wq ๋˜๋Š” :x ์ €์žฅ ํ›„ ์ข…๋ฃŒ
:q! ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๊ฐ•์ œ ์ข…๋ฃŒ

๐Ÿ’ก ์˜ˆ์‹œ:

  1. Esc ๋ˆ„๋ฅด๊ณ 
  2. :wq ์ž…๋ ฅ ํ›„ Enter

๐ŸŸฅ 5๏ธโƒฃ ๊ธฐ๋ณธ ํŽธ์ง‘ ๋ช…๋ น์–ด (๋ช…๋ น ๋ชจ๋“œ์—์„œ)

๋ช…๋ น์„ค๋ช…
dd ํ˜„์žฌ ์ค„ ์‚ญ์ œ (Delete line)
yy ํ˜„์žฌ ์ค„ ๋ณต์‚ฌ (Yank line)
p ๋ถ™์—ฌ๋„ฃ๊ธฐ (Paste)
u ์‹คํ–‰ ์ทจ์†Œ (Undo)
Ctrl + r ๋‹ค์‹œ ์‹คํ–‰ (Redo)
/๋‹จ์–ด ๋‹จ์–ด ๊ฒ€์ƒ‰
n ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ด๋™
G ํŒŒ์ผ ๋์œผ๋กœ ์ด๋™
gg ํŒŒ์ผ ๋งจ ์œ„๋กœ ์ด๋™

๐Ÿง  6๏ธโƒฃ ์ค„ ์ถ”๊ฐ€ / ์‚ญ์ œ

๋™์ž‘๋ช…๋ น
ํ˜„์žฌ ์ค„ ์•„๋ž˜ ์ƒˆ ์ค„ ์ถ”๊ฐ€ o
ํ˜„์žฌ ์ค„ ์œ„์— ์ƒˆ ์ค„ ์ถ”๊ฐ€ O
ํ˜„์žฌ ์ค„ ์‚ญ์ œ dd

โœ… 7๏ธโƒฃ ์˜ˆ์‹œ ํ๋ฆ„

1๏ธโƒฃ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

 
vi 7-2.c

2๏ธโƒฃ ์ž…๋ ฅ ๋ชจ๋“œ ์ง„์ž…
→ i ๋ˆ„๋ฅด๊ณ  ์ฝ”๋“œ ์ž…๋ ฅ

3๏ธโƒฃ ์ €์žฅํ•˜๊ณ  ๋‚˜๊ฐ€๊ธฐ
→ Esc, :wq, Enter

4๏ธโƒฃ ์ปดํŒŒ์ผ

 
gcc 7-2.c -o 7-2

5๏ธโƒฃ ์‹คํ–‰

 
./7-2

๐Ÿ’ก Tip:

vi๋ฅผ ์—ฐ์Šตํ•ด๋ณด๊ณ  ์‹ถ์œผ๋ฉด ์ด๋Ÿฐ ๋ช…๋ น๋„ ์žˆ์–ด์š” ๐Ÿ‘‡

 
vimtutor

→ vim ๊ธฐ์ดˆ ํŠœํ† ๋ฆฌ์–ผ์ด ํ•œ๊ธ€/์˜๋ฌธ์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค (์•„์ฃผ ์ข‹์•„์š”!)