๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/OS

[OS] vi ํŽธ์ง‘๊ธฐ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค ์ •๋ฆฌ

by clolee 2025. 4. 3.

๐Ÿงญ vi ํŽธ์ง‘๊ธฐ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค ์ •๋ฆฌ (๋ชจ๋“œ๋ณ„)

vi๋Š” 3๊ฐ€์ง€ ๋ชจ๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  • ๊ธฐ๋ณธ ๋ชจ๋“œ (Normal Mode): ์ด๋™, ๋ณต์‚ฌ, ์‚ญ์ œ ๋“ฑ ๋ช…๋ น ์‹คํ–‰
  • ์ž…๋ ฅ ๋ชจ๋“œ (Insert Mode): ์‹ค์ œ ํ…์ŠคํŠธ ์ž…๋ ฅ
  • ๋ช…๋ น์–ด ๋ชจ๋“œ (Command Mode): ์ €์žฅ, ์ข…๋ฃŒ, ํŒŒ์ผ ์ œ์–ด ๋“ฑ

1๏ธโƒฃ ๊ธฐ๋ณธ ๋ชจ๋“œ (Normal Mode)

vi ์‹คํ–‰ ์งํ›„ ์ง„์ž…ํ•˜๋Š” ๊ธฐ๋ณธ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.
์ปค์„œ ์ด๋™, ์‚ญ์ œ, ๋ณต์‚ฌ, ๋ถ™์—ฌ๋„ฃ๊ธฐ ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”น ์ปค์„œ ์ด๋™

ํ‚ค ์„ค๋ช…
h / l ์™ผ์ชฝ / ์˜ค๋ฅธ์ชฝ ์ด๋™
j / k ์•„๋ž˜ / ์œ„ ์ด๋™
0 ์ค„ ๋งจ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
^ ์ค„์˜ ์ฒซ ๊ธ€์ž ์œ„์น˜๋กœ ์ด๋™
$ ์ค„ ๋์œผ๋กœ ์ด๋™
w / W ๋‹ค์Œ ๋‹จ์–ด ์‹œ์ž‘์œผ๋กœ ์ด๋™ (W: ๊ณต๋ฐฑ ๊ธฐ์ค€)
b / B ์ด์ „ ๋‹จ์–ด ์‹œ์ž‘์œผ๋กœ ์ด๋™
e / E ํ˜„์žฌ ๋˜๋Š” ๋‹ค์Œ ๋‹จ์–ด ๋์œผ๋กœ ์ด๋™
gg ๋ฌธ์„œ ๋งจ ์ฒ˜์Œ์œผ๋กœ ์ด๋™
G ๋ฌธ์„œ ๋งจ ๋์œผ๋กœ ์ด๋™
nG n๋ฒˆ์งธ ์ค„๋กœ ์ด๋™ (์˜ˆ: 10G)

๐Ÿ”น ํ…์ŠคํŠธ ๋ณต์‚ฌ (yank)

ํ‚ค ์„ค๋ช…
yy ํ˜„์žฌ ์ค„ ๋ณต์‚ฌ
nyy ํ˜„์žฌ ์ค„๋ถ€ํ„ฐ n์ค„ ๋ณต์‚ฌ
yw ํ˜„์žฌ ๋‹จ์–ด ๋ณต์‚ฌ (์ปค์„œ ์œ„์น˜๋ถ€ํ„ฐ ๋‹จ์–ด ๋๊นŒ์ง€)
yiw ํ˜„์žฌ ๋‹จ์–ด ์ „์ฒด ๋ณต์‚ฌ (inner word)
y$ ํ˜„์žฌ ์œ„์น˜๋ถ€ํ„ฐ ์ค„ ๋๊นŒ์ง€ ๋ณต์‚ฌ
y0 ํ˜„์žฌ ์œ„์น˜๋ถ€ํ„ฐ ์ค„ ์ฒ˜์Œ๊นŒ์ง€ ๋ณต์‚ฌ

๐Ÿ’กTip:

  • yw, yiw ๋“ฑ์€ ๋‹จ์–ด ๋‹จ์œ„ ๋ณต์‚ฌ
  • yy๋Š” ์ค„ ์ „์ฒด ๋ณต์‚ฌ
  • y ๋ช…๋ น์€ d, c์ฒ˜๋Ÿผ ์กฐํ•ฉ ๊ฐ€๋Šฅ (์˜ˆ: y2w: 2๋‹จ์–ด ๋ณต์‚ฌ)

๐Ÿ”น ํ…์ŠคํŠธ ๋ถ™์—ฌ๋„ฃ๊ธฐ

ํ‚ค ์„ค๋ช…
p ๋ณต์‚ฌ ๋˜๋Š” ์‚ญ์ œํ•œ ๋‚ด์šฉ์„ ์ปค์„œ ๋‹ค์Œ ์œ„์น˜์— ๋ถ™์—ฌ๋„ฃ๊ธฐ
P ์ปค์„œ ์ด์ „ ์œ„์น˜์— ๋ถ™์—ฌ๋„ฃ๊ธฐ

๐Ÿ”น ํ…์ŠคํŠธ ์‚ญ์ œ (delete)

ํ‚ค ์„ค๋ช…
dd ํ˜„์žฌ ์ค„ ์‚ญ์ œ
ndd ํ˜„์žฌ ์ค„ ํฌํ•จํ•ด n์ค„ ์‚ญ์ œ
dw ์ปค์„œ๋ถ€ํ„ฐ ๋‹จ์–ด ๋๊นŒ์ง€ ์‚ญ์ œ
d2w ๋‹ค์Œ 2๊ฐœ ๋‹จ์–ด ์‚ญ์ œ
diw ํ˜„์žฌ ๋‹จ์–ด ์ „์ฒด ์‚ญ์ œ (inner word)
d$ ์ปค์„œ๋ถ€ํ„ฐ ์ค„ ๋๊นŒ์ง€ ์‚ญ์ œ
d0 ์ปค์„œ๋ถ€ํ„ฐ ์ค„ ์ฒ˜์Œ๊นŒ์ง€ ์‚ญ์ œ
x ์ปค์„œ ์œ„์น˜ ๋ฌธ์ž ์‚ญ์ œ
X ์ปค์„œ ์™ผ์ชฝ ๋ฌธ์ž ์‚ญ์ œ

๐Ÿ”น ํ…์ŠคํŠธ ๋ณ€๊ฒฝ (change)

ํ‚ค ์„ค๋ช…
cw ์ปค์„œ๋ถ€ํ„ฐ ๋‹จ์–ด ๋๊นŒ์ง€ ์‚ญ์ œ ํ›„ ์ž…๋ ฅ ๋ชจ๋“œ ์ง„์ž…
ciw ํ˜„์žฌ ๋‹จ์–ด ์ „์ฒด ์‚ญ์ œ ํ›„ ์ž…๋ ฅ ๋ชจ๋“œ ์ง„์ž…
c$ ์ค„ ๋๊นŒ์ง€ ๋ณ€๊ฒฝ
cc ์ค„ ์ „์ฒด ๋ณ€๊ฒฝ (์ค„ ์‚ญ์ œ + ์ž…๋ ฅ ๋ชจ๋“œ)

๐Ÿ”น ์‹คํ–‰ ์ทจ์†Œ, ๋ฐ˜๋ณต, ๋ฌธ์ž ๊ต์ฒด

ํ‚ค ์„ค๋ช…
u ์‹คํ–‰ ์ทจ์†Œ (undo)
Ctrl + r ๋˜๋Œ๋ฆฌ๊ธฐ ์ทจ์†Œ (redo)
. ์ง์ „ ๋ช…๋ น ๋ฐ˜๋ณต ์‹คํ–‰ (๋ณต์‚ฌ, ์‚ญ์ œ, ๋ณ€๊ฒฝ ๋“ฑ ๋Œ€๋ถ€๋ถ„)
r๋ฌธ์ž ์ปค์„œ ์œ„์น˜ ๋ฌธ์ž ๋ฌธ์ž๋กœ ๊ต์ฒด

๐Ÿ”น ๊ฒ€์ƒ‰

ํ‚ค ์„ค๋ช…
/๊ฒ€์ƒ‰์–ด ๊ฒ€์ƒ‰ (์ปค์„œ ์•„๋ž˜ ๋ฐฉํ–ฅ)
?๊ฒ€์ƒ‰์–ด ๊ฒ€์ƒ‰ (์ปค์„œ ์œ„ ๋ฐฉํ–ฅ)
n ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ค์Œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ด๋™
N ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ด๋™

2๏ธโƒฃ ์ž…๋ ฅ ๋ชจ๋“œ (Insert Mode)

ํ…์ŠคํŠธ ์ž…๋ ฅ์„ ์œ„ํ•œ ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ชจ๋“œ์—์„œ ๋‹ค์Œ ํ‚ค๋กœ ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.
์ž…๋ ฅ ๋„์ค‘ Esc๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค์‹œ ๊ธฐ๋ณธ ๋ชจ๋“œ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

ํ‚ค ์„ค๋ช…
i ํ˜„์žฌ ์ปค์„œ ์œ„์น˜ ์•ž์— ์ž…๋ ฅ
I ํ˜„์žฌ ์ค„ ๋งจ ์•ž์— ์ž…๋ ฅ
a ํ˜„์žฌ ์ปค์„œ ์œ„์น˜ ๋’ค์— ์ž…๋ ฅ
A ํ˜„์žฌ ์ค„ ๋งจ ๋์— ์ž…๋ ฅ
o ํ˜„์žฌ ์ค„ ์•„๋ž˜ ์ƒˆ ์ค„์„ ๋งŒ๋“ค๊ณ  ์ž…๋ ฅ ์‹œ์ž‘
O ํ˜„์žฌ ์ค„ ์œ„ ์ƒˆ ์ค„์„ ๋งŒ๋“ค๊ณ  ์ž…๋ ฅ ์‹œ์ž‘
Esc ์ž…๋ ฅ ๋ชจ๋“œ ์ข…๋ฃŒ → ๊ธฐ๋ณธ ๋ชจ๋“œ ๋ณต๊ท€

๐Ÿ’กTip:

  • i, a, o๋Š” ๊ธ€์ž ์ž…๋ ฅ์„ ์œ„ํ•œ ๋Œ€ํ‘œ ๋ช…๋ น
  • cw, ciw, cc ๋“ฑ์€ ๊ธฐ๋ณธ ๋ชจ๋“œ์—์„œ ํ…์ŠคํŠธ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ž๋™์œผ๋กœ ์ž…๋ ฅ ๋ชจ๋“œ๋กœ ์ง„์ž…

3๏ธโƒฃ ๋ช…๋ น์–ด ๋ชจ๋“œ (Command Mode)

๊ธฐ๋ณธ ๋ชจ๋“œ์—์„œ : ์ž…๋ ฅ ์‹œ ์ง„์ž…ํ•˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค.
ํŒŒ์ผ ์ €์žฅ, ์ข…๋ฃŒ, ์™ธ๋ถ€ ๋ช…๋ น ์‹คํ–‰, ์„ค์ • ๋ณ€๊ฒฝ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ์„ค๋ช…
:w ํŒŒ์ผ ์ €์žฅ (write)
:q ์ข…๋ฃŒ (quit)
:wq ์ €์žฅ ํ›„ ์ข…๋ฃŒ
:q! ์ €์žฅ ์—†์ด ๊ฐ•์ œ ์ข…๋ฃŒ
:x ์ €์žฅ ํ›„ ์ข…๋ฃŒ (:wq์™€ ์œ ์‚ฌ)
:e ํŒŒ์ผ๋ช… ๋‹ค๋ฅธ ํŒŒ์ผ ์—ด๊ธฐ
:r ํŒŒ์ผ๋ช… ๋‹ค๋ฅธ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ˜„์žฌ ์œ„์น˜์— ์‚ฝ์ž…
:!๋ช…๋ น์–ด ์™ธ๋ถ€ ์‰˜ ๋ช…๋ น ์‹คํ–‰ (์˜ˆ: :!ls, :!gcc main.c)
:set nu ์ค„ ๋ฒˆํ˜ธ ํ‘œ์‹œ (number)
:set nonu ์ค„ ๋ฒˆํ˜ธ ์ˆจ๊ธฐ๊ธฐ

๋Œ“๊ธ€