๐ง Vi / Vim ์๋ํฐ ๋ค๋ฃจ๊ธฐ ๋ช ๋ น์ด ๐ฏ ์ด์ ๋ฆฌ
VI / VIM ์๋ํฐ
ํ์ผ์ ์์ฑํ๊ฑฐ๋ ์์ ํ๊ธฐ ์ํด์๋ ํธ์ง๊ธฐ๊ฐ ํ์ํ๊ธฐ ๋ง๋ จ์ด๋ค. ์๋์ฐ์์๋ ๋ฉ๋ชจ์ฅ์ ํธ์ง๊ธฐ์ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํ๋ ๋ฐ๋ฉด, ๋ฆฌ๋ ์ค์์๋ ๊ธฐ๋ณธ ํธ์ง๊ธฐ๋ก vi ํธ์ง๊ธฐ๋ฅผ ์ง์ํ๋ค.
์ฒ์์๋ ๋จ์ถํค๋ฅผ ์ตํ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ง์ ์ฅ๋ฒฝ์ด ๋์ ํธ์ด์ง๋ง, ์ต์ํด์ง๊ธฐ๋ง ํ๋ค๋ฉด ๋ง์ฐ์ค๋ก ํ๋ํ๋ ํด๋ฆญํ๋๊ฒ์ด ์๋ ๋จ์ถํค๋ง์ผ๋ก ๋ชจ๋ ์์ ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋์ฑ ๋ ๋น ๋ฅด๊ฒ ์์ ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋ค.
VIM์ Vi IMproved์ ์ฝ์ ์ด๋ค. ์ฆ, vi์๋ํฐ๋ฅผ ์ ๊ทธ๋ ์ด๋ ์ํจ ๊ฒ์ด vim์๋ํฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
vi๋ ํ ์คํธ ํธ์ง์ ํ์ํ ์ต์ํ์ ๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ด์ ์ฌ์ฉํ๊ธฐ ๋ถํธํ๋ค. ํํ ๋ฌธ๋ฒ ๊ฐ์กฐ ๊ธฐ๋ฅ๋ ์๋ค.
๋ฐ๋ฉด์ vim์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ด ๋ง์ด ์ถ๊ฐ๋์ด ์๋ค. vim์ ๋ฆฌ๋ ์ค์์๋ ๋ง์ด ์ฐ์ด์ง๋ง ์ธํ ๋ฆฌ์ ์ด๋ ์๋๋ก์ด๋ ์คํ๋์ค ๊ฐ์ ์ต์ ํด์ ํฌํจํ ๊ฑฐ์ ๋ชจ๋ ํด์ ์ถ๊ฐ์ ์ผ๋ก ์ง์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ฐ๋ผ์ vim์ ๊ฑฐ์ ๋ชจ๋ ํฐ๋ฏธ๋์์ ์ง์ํ๋ฉฐ ๋งฅ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ถ๊ฐ๋์ด ์๊ธฐ๋ ํ๋ค.
๋ฆฌ๋ ์ค์๋ vim์๋ํฐ๊ฐ ์ค์น๋์ด ์๋ค. ๊ทธ๋์ vi๋ผ๊ณ ์ณ๋ vim์ด๋ผ๊ณ ์ณ๋ vim์ผ๋ก ์คํ๋๋ค. ๊ฒฐ๋ก ์ ๋ ๋ค ๋๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ๋ง์ผ ์ค์น๊ฐ ์๋์ด์์ผ๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ํตํด ์ค์น๊ฐ ๊ฐ๋ฅํ๋ค.
$ apt install vim
VIM ํ๊ฒฝ์ค์
๊ทธ๋๋ก VIM์ ์จ๋ ๋์ง๋ง, ๊ธฐ๋ณธ์ ์ธ TAB์ ๋ํ ์ค์ ์ ํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
์๋ํ๋ฉด ๋ค๋ฅธ ์ปดํจํฐ์์ ๋ฐ์ ํ์ผ์ ์ด๋ tab์ฌ์ด์ฆ๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
$ cd ~ # ์ฌ์ฉ์ ํ์ผ๋ก ์ด๋ํ๋ค.
$ vi .vimrc # .vimrc ๋ผ๋ viํ๊ฒฝ์ค์ ํ์ผ์ ๋ง๋ ๋ค.
vi ์๋ํฐ๋ฅผ ์ด์์ผ๋ฉด, a๋ i๋ฅผ ๋๋ฌ ์ฐ๊ธฐ ๋ชจ๋๋ก ๋ณ๊ฒฝํ๊ณ , ๋ค์ ์ฝ๋๋ฅผ ์ ๋๋ค.
set smartindent
set tabstop=4
set expandtab
set shiftwidth=4
์ฝ๋๋ฅผ ๋ค ์ ์์ผ๋ฉด, ESC๋ฅผ ๋๋ฅด๊ณ :wq ๋ฅผ ์น๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด vi ์์ฑ์ด ์๋ฃ๋๊ณ ์๋ํฐ์์ ๋๊ฐ์ง๋ค.
๋ฐฉ๊ธ ์ํํ๋ ์ด๋ฌํ ์ผ๋ จ์ ๊ณผ์ ๋ค์ด ๋ฐ๋ก vi์๋ํฐ๋ฅผ ๋ค๋ฃฌ ๊ฒ์ด๋ค. ์๋์ฐ์์ ๋ฉ๋ชจ์ฅ์ ๋ค๋ฃจ๋ ๊ฒ๊ณผ ๋งค์ฐ ๋ค๋ฅด๋ค. ์๋ํ๋ฉด ๋ง์ฐ์ค์ปค์๋ก ์กฐ์ํ๋๊ฒ์ด ์๋ ํค๋ณด๋๋ก ๋ชจ๋ ๊ฑธ ์กฐ์ํด์ผ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
VI 3๊ฐ์ง ๋ชจ๋
vi ํธ์ง๊ธฐ๋ ๋ช ๋ น๋ชจ๋, ์ ๋ ฅ๋ชจ๋, ๋ง์ง๋ง ํ ๋ชจ๋๋ก ์ด 3๊ฐ์ง ๋ชจ๋๋ก ๊ตฌ์ฑ๋์ด์๋ค. ํํ ์ฌ๋๋ค์ด ๋งํ๋ vi ๋ช ๋ น์ด๋ ์ด ์ธ๊ฐ์ง ๋ชจ๋๋ฅผ ์์ ์์ฌ๋ก ์๋ค๊ฐ๋ค ํ๋ฉด์ ์ฝ๋๋ ๊ธ์ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค.
๋ชจ๋ | ์ญํ ๋ฐ ํน์ง |
๋ช ๋ น ๋ชจ๋ | vi๋ฅผ ์คํ์ํค๋ฉด ๊ฐ์ฅ ๋จผ์ ์ ํ๋ ๊ธฐ๋ณธ์ด ๋๋ ๋ชจ๋๋ก ์ปค์์ ์ด๋, ์์ , ์ญ์ , ๋ณต์ฌ ๋ถ์ด๊ธฐ, ํ์ ๋ฑ์ ํ๋ค. ์ ๋ ฅ ๋ชจ๋ ์ ํํค์ธ i,a,o,I,A,O ๋ฑ์ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ ๋ชจ๋๋ก ์ ํ๋๊ณ , ๋ช ๋ น ๋ชจ๋๋ก ๋ค์ ์ ํํ๋ ค๋ฉด [Esc] ํค๋ฅผ ๋๋ฅด๋ฉด ๋๋ค. |
์ ๋ ฅ ๋ชจ๋ | ์
๋ ฅ ๋ชจ๋ ์ด์ธ์๋ ํธ์ง ๋ชจ๋, input mode, insert mode ๋ฑ์ผ๋ก ๋ถ๋ฆฌ๋ฉฐ, ๊ธ์๋ฅผ ์
๋ ฅํ๋ ๋ฌธ์๋ฅผ ๋ง๋๋ ๋ชจ๋์ด๋ค. ๋ช ๋ น ๋ชจ๋์์ ์ ๋ ฅ ์ ํํค๋ฅผ ๋๋ฌ์ ์ ํํ๋ฉด ํ๋ฉด ์๋์ '-- INSERT --'๋ผ๊ณ ํ์๋๋ค. |
๋ง์ง๋ง ํ ๋ชจ๋ | ๋ช
๋ น ๋ชจ๋์์ ':'ํค๋ฅผ ์
๋ ฅํ์ ๋ ํ๋ฉด ๋งจ ์๋ซ์ค์์ :______ ๋ช
๋ น์ ์ํํ๋ ๋ชจ๋๋ก ์ ์ฅ, ์ข ๋ฃ, ํ์, ์นํ ๋ฐ vi ํ๊ฒฝ ์ค์ ๋ฑ์ ์ญํ ์ ํ๋ ๋ชจ๋์ด๋ค. |
vi ํ์ผ๋ช -> ๋ช ๋ น๋ชจ๋์ง์ -> i ๋๋ a๋ก ์ ๋ ฅ๋ชจ๋ ์ง์
-> ์์ฑ ๋ฐ ์์ ์๋ฃํ ๋ค -> esc๋ก ๋ช ๋ น ๋ชจ๋์ง์
-> ์ฝ๋ก (:)์ผ๋ก ๋ง์ง๋ง ํ ๋ชจ๋ ์ง์ -> ์ ์ฅ(w), ์ข ๋ฃ(q), ์ทจ์(i), ์ ์ฅ ํ ์ข ๋ฃ(wq)
vi๋ฅผ ๋น์ ์ ์ข ๋ฃํ๊ฒ ๋๋ฉด swp ํ์ผ์ด ๋จ๊ฒ๋๋ค.
๊ฒฝ๊ณ ์ฐฝ์์ ๊ทธ๋ฅ y ๋๋ฅด๊ณ ๋์ด๊ฐ๊ฑฐ๋, ls -a๋ก ์จ๊ธดํ์ผ์ ํ์ธํ์ฌ swp ํ์ผ ํ์ธํ๊ณ ์ญ์ ํด์ฃผ๋ฉด ๋๋ค.
VI ๋ช ๋ น์ด ์ ๋ฆฌ
์ฃผ๋ก ์ฐ๋ ๋ช ๋ น์ด๋ ๊ฐ๋ ์ฑ ์ข๊ฒ ์งํ ๋ณด๋ผ์์ผ๋ก ํ๊ธฐ ํ์๋ค. ์ฐ์ ์ ์ผ๋ก ๋ณด๋ผ์ ๊ฐ์กฐ ํ์ํ ํค ๋ถํฐ ์ต๋ํ๋๊ฑธ ์ถ์ฒํ๋ ๋ฐ๋ค.
vi ์ด๊ธฐ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช | ์์ |
vi {ํ์ผ๋ช } | ํ์ผ์ด๊ธฐ, ์์ฑ ๋ง์ผ ์กด์ฌํ๋ ํ์ผ์ด๋ฉด ์์ ๋ง์ผ ์กด์ฌํ์ง ์๋ ํ์ผ์ด๋ฉด ์์ฑ |
$ vi test.txt |
vi +{ํ๋ฒํธ} {ํ์ผ๋ช } | ํ์ผ์ ์ด๊ณ , ์ ๋ ฅํ ํ์ผ๋ก ์ปค์ ์ด๋ | $ vi -100 test.txt |
vi +/"{๊ฒ์ ๋ฌธ์์ด}" {ํ์ผ๋ช } | “๋ฌธ์์ด”์ ์ฒ์๋ฐ์ ๋จ์ด๋ถํฐ ์ด๊ธฐ | $ vi -/"adc" test.txt |
vi –r {ํ์ผ๋ช } | ์์๋ ํ์ผ ํ๋ณต | $ vi -r test.txt |
view {ํ์ผ๋ช } | ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ด๊ธฐ๊ธฐ | $ view test.txt |
vi ์ปค์ ์ด๋
์ปค์ | ์ค๋ช |
h (←) | ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
j (↓) | ์๋๋ก ์ปค์ ์ด๋ |
k (↑) | ์๋ก ์ปค์ ์ด๋ |
l (→) | ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
w | ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ๋ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
e | ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
b | ์ผ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
W | ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ๋ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ (๋์ด์ฐ๊ธฐ ๊ธฐ์ค์ด๋ผ ๋ ๋ง์ด ์ปค์ ์ด๋์ด ๋๋ค.) |
+ / Enter | ํ ํ ์๋๋ก ์ปค์ ์ด๋ |
Back space | ํ ๋ฌธ์ ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
Space Bar | ํ ๋ฌธ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
^ / 0 | ํ์ ๋งจ ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
$ | ํ์ ๋งจ ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
H | ํ๋ฉด์ ๋งจ ์๋ก ์ด๋ |
M | ํ๋ฉด์ ์ค๊ฐ์ผ๋ก ์ด๋ |
L | ํ๋ฉด์ ๋งจ ์๋๋ก ์ด๋ |
vi ํ๋ฉด ์ด๋(์คํฌ๋กค)
์ปค์ | ์ค๋ช |
Ctrl + u | ํ๋ฉด์ ์ ๋ฐ ๋งํผ ์๋ก ์ด๋ |
Ctrl + d | ํ๋ฉด์ ์ ๋ฐ ๋งํผ ์๋๋ก ์ด๋ |
Ctrl + b / Page Up | ํํ๋ฉด ์๋ก ์ด๋ |
Ctrl + f / Page Down | ํํ๋ฉด ์๋๋ก ์ด๋ |
Ctrl + y | ํ๋ฉด์ ํ ํ ์๋ก ์ด๋ (๋ง์น ๋ง์ฐ์ค๋ก ์คํฌ๋กค ํ๋ ๊ฒ๊ณผ ๊ฐ์) |
Ctrl + e | ํ๋ฉด์ ํ ํ ์๋๋ก ์ด๋ (๋ง์น ๋ง์ฐ์ค๋ก ์คํฌ๋กค ํ๋ ๊ฒ๊ณผ ๊ฐ์) |
vi ์ ๋ ฅ ๋ชจ๋ ๋ช ๋ น์ด
์ปค์ | ์ค๋ช |
i | ํ์ฌ ์ปค์ ์์์ ์ ๋ ฅ |
a | ํ์ฌ ์ปค์ ๋ค์์ ์ ๋ ฅ |
o | ํ์ฌ ์ปค์ ์๋ ํ์ ๊ฐํํ๊ณ ์ ๋ ฅ |
I | ํ์ฌ ์ปค์ ํ์ ์ฒ์์์ ์ ๋ ฅ |
A | ํ์ฌ ์ปค์ ํ์ ๋์์ ์ ๋ ฅ |
O | ํ์ฌ ์ปค์ ์ ํ์ ๊ฐํํ๊ณ ์ ๋ ฅ |
vi ๋ผ์ธ ์ด๋ ๋ช ๋ น์ด
- ๋งจ์์ผ๋ก - 1G / gg
- ๋งจ๋ค๋ก - G
๋ช ๋ น์ด | ์ค๋ช |
gg | ํ์ผ์ ๋งจ ์ฒ์ ํ์ผ๋ก ๊ฐ๊ธฐ |
G | ํ์ผ์ ๋งจ ๋ง์ง๋ง ํ์ผ๋ก ๊ฐ๊ธฐ |
21G | ํ์ผ์ 21๋ฒ์งธ ํ์ผ๋ก ๊ฐ๊ธฐ |
Ctrl + G | ํ์ฌ File name๊ณผ ์ปค์์ ๋ผ์ธ ์ ๋ณด |
:ํ๋ฒํธ | ์ง์ ํ ํ๋ฒํธ๋ก ์ปค์๋ฅผ ์ด๋ (๋ง์ง๋ง ํ ๋ชจ๋) |
:$ | ํ์ผ์ ๋ง์ง๋ง ํ์ผ๋ก ์ปค์๋ฅผ ์ด๋ (๋ง์ง๋ง ํ ๋ชจ๋) |
vi ๋ด์ฉ ๋ณ๊ฒฝ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
cw | ๋จ์ด ๋ณ๊ฒฝ |
cc | ํ ๋ณ๊ฒฝ |
C | ์ปค์ ์ค๋ฅธ์ชฝ์ ํ ๋ณ๊ฒฝ |
s | ์ปค์๊ฐ ์์นํ ๋ฌธ์์ด ๋์ฒด |
S | ์ปค์๊ฐ ์์นํ ๋ผ์ธ์ ๋ฌธ์์ด ๋์ฒด |
r | ์ปค์ ์์น ๋ฌธ์๋ฅผ ๋ค๋ฅธ ๋ฌธ์๋ก ๋์ฒด |
r-Enter | ํ ๋ถ๋ฆฌ |
J | ํ์ฌ ํ๊ณผ ์๋ ํ ๊ฒฐํฉ |
xp | ์ปค์ ์์น ๋ฌธ์์ ์ค๋ฅธ์ชฝ ๋ฌธ์ ๊ตํ |
~ | ๋ฌธ์ํ(๋, ์๋ฌธ์) ๋ณ๊ฒฝ |
vi ๋ด์ฉ ์ญ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
x | ์ปค์๊ฐ ์๋ ๋ฌธ์ ํ๊ธ์ ์ญ์ (๋ฐ๋์ธ del์ ์๋์ฐ์ ๋๊ฐ๋ค) |
nx | ์ปค์๊ฐ ์๋ ์์น๋ถํฐ n๊ฐ์ ๋ฌธ์๋ฅผ ์ญ์ |
dw | ํ์ฌ ์ปค์์ ์๋ ํ ๋จ์ด ์ญ์ |
dd | ์ปค์๊ฐ ์๋ ๋ผ์ธ(ํ) ์ญ์ |
ndd | ์ปค์๊ฐ ์๋ ๋ผ์ธ๋ถํฐ n๊ฐ์ ๋ผ์ธ ์ญ์ |
db | ์ปค์์ ์์น์์ ๊ฑฐ๊พธ๋ก ํ ๋จ์ด ์ญ์ |
D | ์ปค์ ์ค๋ฅธ์ชฝ ํ ์ญ์ |
:5,10d | 5~10๋ฒ์งธ ํ ์ญ์ |
vi ๋๋๋ฆฌ๊ธฐ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
u | ์ด์ ๋ช ๋ น ์ทจ์ (๋๋๋ฆฌ๊ธฐ) |
U | ํ ๋ณ๊ฒฝ ์ฌํญ ์ทจ์, ์ด์ ์ ์ต์ข ํ ์ทจ์ |
. | ์ด์ ์ต์ข ๋ช ๋ น ๋ฐ๋ณต |
vi ๋ณต๋ถ ๋ฐ ์ด๋ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
yy | ์ปค์๊ฐ ์์นํ ์ค ๋ณต์ฌ |
Y | ํ yank ๋๋ ๋ณต์ฌ |
yh | ์ปค์์ ์ผ์ชฝ ๋ฌธ์ ๋ณต์ฌ |
yl | ์ปค์์ ์์นํ ๋ฌธ์ ๋ณต์ฌ |
yi | ์ปค์๊ฐ ์์นํ ์ค๊ณผ ๊ทธ ์๋ซ์ค ๋ณต์ฌ |
yk | ์ปค์๊ฐ ์์นํ ์ค๊ณผ ๊ทธ ์์ค ๋ณต์ฌ |
p | ๋ถ์ฌ๋ฃ๊ธฐ (ํ ์๋ก ์ฝ์ ) |
P | ๋ถ์ฌ๋ฃ๊ธฐ (ํ ์๋์ ์ฝ์ ) |
:1,2 co 3 | 1~2ํ์ 3ํ ๋ค์์ผ๋ก ๋ณต์ฌ |
:4,5 m 6 | 4~5ํ์ 6ํ ์๋ก ์ด๋ |
ํ์ค ๋ณต์ฌ
ํด๋น ๋ผ์ธ์์ 'yy' ๋๋ฅด๋ฉด ์บ์์ ์ ์ฅ์ด ๋๋ค.
๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ํ๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ 'p'๋ฅผ ๋๋ฅด๋ฉด ์ปค์ ๋ค์ ๋ผ์ธ์ ๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ๋๋ค.
๋ธ๋ญ ๋ณต์ฌ
'v'ํค๋ฅผ ๋๋ฅธ ํ ์ปค์๋ฅผ ์ด๋ํ์ฌ ๋ธ๋ ฅ์ ์ค์ ํ๋ค.
(putty์ ๊ฒฝ์ฐ ๋ธ๋ญ์ด ์ค์ ๋๋ ๋ชจ์ต์ด ๋ณด์ด๋, ssh์ ๊ฒฝ์ฐ ๋ธ๋ญ ๋ชจ์ต์ด ๋ํ๋์ง ์์ผ๋ ์ค์ ๋ก๋ ์ค์ ๋๊ณ ์๋ค.)
์ํ๋ ๋ถ๋ถ์ ๋ธ๋ญ์ผ๋ก ์ค์ ํ ๋ค(์ค์ ์๋ฃํค๋ ์๋ค) 'y'ํค๋ฅผ ๋๋ฅด๋ฉด ์บ์์ ๋ณต์ฌ๊ฐ ๋๋ค.
๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ 'p'๋ฅผ ๋๋ฅด๋ฉด ์ปค์ ๋ค์ ๋ผ์ธ์ ๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ๋๋ค.
vi ํ ๋ฒํธ ํ์
๋ช ๋ น์ด | ์ค๋ช |
:set nu ๋๋ :set number | ์๋ํฐ์ ๊ฐ ํ์ ์ข์ธก์ ํ ๋ฒํธ ํ์. |
:set nonu | ์๋ํฐ์ ๊ฐ ํ์ ์ข์ธก ํ ๋ฒํธ ์จ๊ธฐ๊ธฐ |
vi ๊ฒ์ ๋ช ๋ น์ด
์๋์ฐ์ ctrl + f ๊ธฐ๋ฅ์ด๋ผ ๋ณด๋ฉด ๋๋ค.
๋ช ๋ น์ด | ์ค๋ช |
/{๊ฒ์ํ ๋ฌธ์์ด} | ์ค๋ฅธ์ชฝ ์๋ ๋ฐฉํฅ์ผ๋ก ๋ฌธ์์ด ๊ฒ์ |
?{๊ฒ์ํ ๋ฌธ์์ด} | ์ผ์ชฝ ์ ๋ฐฉํฅ์ผ๋ก ๋ฌธ์์ด ๊ฒ์ |
n | ๋ฌธ์์ด์ ๋ค์์ผ๋ก ๊ณ์ ๊ฒ์ |
N | ๋ฌธ์์ด์ ์ด์ ์ผ๋ก ๊ณ์ ๊ฒ์ |
vi ์ ์ฅ ๋ฐ ์ข ๋ฃ
๋ช ๋ น์ด | ์ค๋ช |
:w | ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ |
:w {ํ์ผ๋ช } | ๋ณ๊ฒฝ์ฌํญ ์ ๋ ฅํ ํ์ผ๋ช ์ผ๋ก ์ ์ฅ |
:wq | ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ด ํ vi ์ข
๋ฃ. ZZ ๋ช ๋ น๊ณผ ๊ฐ์. :w(๊ธฐ๋ก)๊ณผ :q(์ข ๋ฃ) ๋ฅผ ์ฐ์์ ์ผ๋ก ์ํ. |
ZZ | ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ด ํ vi ์ข
๋ฃ. ์์ ๋ฒํผ์ ๋ด์ฉ์ vi๋ก ํธ์ถํ ๋ ์ฌ์ฉ๋์๋ ํ์ผ์ ๊ธฐ๋กํ ํ vi๋ฅผ ๋น ์ ธ๋์ด. |
:q! | ๋ณ๊ฒฝ ๋ด์ฉ์ ์ ์ฅํ์ง ์๊ณ ์ข ๋ฃ |
:q | ์์ ํ๊ฒ ์์ผ๋ฉด ๊ทธ๋๋ก ์ข ๋ฃ |
:e! | ๋ง์ง๋ง์ผ๋ก ์ ์ฅํ๋ ๋ด์ฉ ์ดํ์ ์์ ํ ๊ฒ๋ค์ ์ทจ์ํ๊ณ ๋ค์ ํธ์ง์ํ๋ก |
vi ๋ด์ฉ ๋ฐ๊พธ๊ธฐ ๋ช ๋ น์ด
์๋์ฐ์ ctrl + h ๊ธฐ๋ฅ์ด๋ผ ๋ณด๋ฉด ๋๋ค.
๋ฌธ์์ด์ ๋ฐ๊ฟ๋์๋ ๋ง์ง๋ง ํ๋ชจ๋๋ก ์ ํ์ ํด์ผ๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค
๋ช ๋ น ํค | ์ค๋ช |
:s/[๋์๋ฌธ์์ด]/[๋ฐ๊ฟ๋ฌธ์์ด] | ์ปค์๊ฐ ์์นํ ํ์์ ์ฒซ๋ฒ์งธ๋ก ๋์ค๋ ๋์๋ฌธ์์ด์ ๋ฐ๊ฟ๋ฌธ์์ด๋ก ์นํ |
:%s[๋์๋ฌธ์์ด]/[๋ฐ๊ฟ๋ฌธ์์ด] | ํ์ผ ์ ์ฒด์์ ๋ชจ๋ ๋์๋ฌธ์์ด์ ๋ฐ๊ฟ๋ฌธ์์ด๋ก ์นํ |
:[๋ฒ์]s[๋์๋ฌธ์์ด]/[๋ฐ๊ฟ๋ฌธ์์ด] | ๋ฒ์ ๋ด ๋ชจ๋ ๊ฐ ํ์์ ์ฒซ๋ฒ์จฐ๋ก ๋์ค๋ ๋์๋ฌธ์์ด์ ๋ฐ๊ฟ๋ฌธ์์ด๋ก ์นํ |
:[๋ฒ์]s[๋์๋ฌธ์์ด]/[๋ฐ๊ฟ๋ฌธ์์ด]g | ๋ฒ์ ๋ด ๋ชจ๋ ํ์์ ๋์๋ฌธ์์ด์ ๋ฐ๊ฟ๋ฌธ์์ด๋ก ์นํ |
:[๋ฒ์]s[๋์๋ฌธ์์ด]/[๋ฐ๊ฟ๋ฌธ์์ด]gc | ๋ฒ์ ๋ด ๋ชจ๋ ํ์์ ๋์๋ฌธ์์ด์ ๋ฐ๊ฟ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ์์ ํ ์ง ์ฌ๋ถ๋ฅผ ๋ฌป๋๋ค |
# ๋ฌธ์์ด ์นํ์ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
: [๋ฒ์] / [๋งค์นญ๋ฌธ์์ด] / [์นํ๋ฌธ์์ด] / [ํ๋ฒ์]
#ํธ์ง๊ธฐ ์ ์ฒด์์ old๋จ์ด๋ฅผ new๋จ์ด๋ก replaceํ๋ค.
: %s / old๋จ์ด / new๋จ์ด / g
#ํธ์ง๊ธฐ ์ ์ฒด์์ old๋จ์ด๋ฅผ new๋จ์ด๋ก replaceํ๋๋ฐ ํ์ธํ๋ฉด์ replaceํ ๊ฑด์ง ๋ฌผ์ด๋ณธ๋ค
: %s / old๋จ์ด / new๋จ์ด / cg
:s/old/new # ํ์ฌ ํ์ ์ฒ์ old๋ฅผ new๋ก ๊ต์ฒด
:s/old/new/g # ํ์ฌ ํ์ ๋ชจ๋ old๋ฅผ new๋ก ๊ต์ฒด
:10, 20s/old/new/g # 10๋ฒ์งธ ํ๋ถํฐ 20๋ฒ์งธ ํ๊น์ง ๋ชจ๋ old๋ฅผ new๋ก ๊ต์ฒด
:-3, +4s/old/new/g # ํ์ฌ ์ปค์ ์์น์์ 3ํ ์๋ถํฐ 4ํ ์๋๊น์ง old๋ฅผ new๋ก ๊ต์ฒด
:%s/old/new/g # ๋ฌธ์ ์ ์ฒด์์ old๋ฅผ new๋ก ๊ต์ฒด
:%s/old/new/gc # ๋ฌธ์ ์ ์ฒด์์ old๋ฅผ new๋ก ํ์ธํ๋ฉฐ ๊ต์ฒด
:g/pattern/s/old/new/g # pattern์ด ์๋ ๋ชจ๋ ํ์ old๋ฅผ new๋ก ๊ต์ฒด
vi ํ๋ฉด ์ ๋ฆฌ
๋ช ๋ น์ด | ์ค๋ช |
Ctrl + l | ๋ถํ์ํ ํ๋ฉด์ ๋ฆฌ ํ ๋ค์ ํ์ |
vi ํ์ผ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช | ์์ |
:r {ํ์ผ๋ช } | ์ปค์ ๋ค์์ ํ์ผ ์ฝ์ | :r test.txt |
:{ํ๋ฒํธ} r {ํ์ผ๋ช } | ์ ๋ ฅํ ํ์ผ์ ์ ๋ ฅํ ํ๋ฒํธ ๋ค์์ ์ฝ์ | :10 r test.txt |
vi ๊ธฐํ ๋ช ๋ น์ด
๋ฌธ์ | ์ค๋ช |
. | ํ์ฌ line |
% | ์ ์ฒด line |
$ | ํ์ผ ๋งจ๋ line |
1,$ | % |
2,3 | 2 ~ 3 line |
vi ์ ์คํ ๋ช ๋ น์ด
๋ณดํต vi ์ฝ๋ฉ์ ํ๊ณ , :wqํด์ ์ ์ฅํ๊ณ ๋๊ฐ์ ์์ ์คํํ๊ฒ ์ง๋ง, ๋จ์ํ ๋์ ํ ์คํธ๋ฅผ ์ํด ๊ณ์ ์๋ค๊ฐ๋ค ํ๋๊ฒ ๋ณด๋ค, vi์์ ์ ๋ช ๋ น์ ์คํํ๊ฒ ํ๊ณ , ๊ฒฐ๊ณผ๊ฐ์ ํ์ธํ๊ณ ๋ฐ๋ก ์๋์ผ๋ก vi ์๋ํฐ๋ก ๋์์ค๋๋ก ํ ์ ์๋ค.
๋จ์ถํค | ๊ธฐ๋ฅ |
:! ์ ธ๋ช ๋ น | vi ์์ ์ ์ ์ ์ค๋จํ๊ณ ์ ธ ๋ช ๋ น์ ์คํ (vi๋ก ๋์์ค๋ ค๋ฉด Enterํค ์ ๋ ฅ) |
:sh | vi ๋ฅผ ์ ์ ๋น ์ ธ๋๊ฐ ์ ธ ๋ช ๋ น์ ์คํ (vi ๋ก ๋์์ค๋ ค๋ฉด exit๋ช ๋ น์ด ์ ๋ ฅ) |
vi ์ฝ๋ฉ ๋ช ๋ น์ด
๋จ์ถํค | ๊ธฐ๋ฅ |
ctrl+wf | ํค๋ ์ด๊ธฐ |
zf | ์ฝ๋ ์ ๊ธฐ |
zi | ์ฝ๋ ์ ๊ธฐ / ํด๊ธฐ (ํ ๊ธ) |
gg=G | ์ฝ๋ ๋ค์ฌ์ฐ๊ธฐ |
ctrl + p / ctrl + n | ์ฝ๋ ์๋์์ฑ |
ํค๋ํ์ผ ์ด์ด ํ์ธํ๊ธฐ
ํค๋ํ์ผ์ด ์๋ ๋ผ์ธ์ ctrl+wf ๋ฅผ ๋๋ฅด๋ฉด ํค๋ํ์ผ์ ๋ด์ฉ์ ์ฐฝ๋ถํ ๋ก ๋ณผ ์ ์๋ค.
์ฝ๋ ์ ๊ธฐ ๊ธฐ๋ฅ
์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด์ ์ด๋ ํจ์ ๋ถ๋ถ ๋ด์ฉ์ ์ ๊ณ ์ถ๋ค๋ฉด ํด๋ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.
ํธ์ง๊ธฐ์์ v๋ก ํจ์ ๋ชจ๋๋ฅผ ์ ํํ๊ฑฐ๋ v๋ฅผ ๋๋ฅด๊ณ ํ์ดํ๋ก ์ ํ์ ํ๋ค.
๊ทธ๋ฆฌ๊ณ '$'๋ฅผ ๋๋ฌ ๊ฐ์ฅ ๋งจ ๋ ์ค๋ก ์ด๋ํ๊ณ '%'๋ฅผ ๋๋ฌ ํจ์ ์ ์ฒด๋ฅผ ์ ํํ๋ค.
- zf : ํด๋ฉํ๋ ค๋ฉด ํจ์๊ฐ ๋ชจ๋ ์ ํ๋ ์ํฉ์์ zf๋ฅผ ๋๋ฅด๋ฉด ๋๋ค.
- zi : ํด๋ฉ๋ ์ํ์์ ํจ์๋ฅผ ๋ณด๊ณ ์ถ์ด์ ํผ๊ฑฐ๋, ์๋๋ฉด ํ๊ฒ์ ๋ค์ ์ ์ผ๋ ค๋ฉด zi๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋ค. ํ ๊ธ๋ฐฉ์์ผ๋ก ์ ์๋ค ํ๋คํ ์ ์๋ค.
์ฝ๋ ๋ค์ฌ์ฐ๊ธฐ ๊ธฐ๋ฅ
ํ๋ฒ์ ๋ค์ฌ์ฐ๋ ค๋ฉด gg=G ์ ๋ ฅ ํ๋ฉด ๋๋ค.
gg๋ ๋ฌธ์์ ๋งจ์์ ์๋ฏธ, G๋ ๋ฌธ์์ ๋์ ์๋ฏธํ๋ค. =์ tab์ ๊ฐ๊ฒฉ์ผ๋ก ๋ค์ฌ์ฐ๊ธฐ ํ๋ผ๋ ๋ช ๋ น์ด๋ค.
์ฝ๋ ์๋ ์์ฑ ๊ธฐ๋ฅ
ctrl + p , ctrl + n ์ผ๋ก IDE์ฒ๋ผ ์ฝ๋ ์๋์์ฑ ๊ธฐ๋ฅ์ ์ง์ ํ๋ค.
๋์ ์ฐจ์ด๋ ์ด๋์ชฝ์ผ๋ก ํผ์ณ์ง๋๋๋ง ๋ค๋ฅผ ๋ฟ์ด๋ค.
๋ฌธ์๋ฅผ ์ฐ๋ ํธ์ง ๋ชจ๋์์ ctrl + p, ctrl + n์ ์ฌ์ฉํ๋ค. (esc ๋๋ฅด๊ณ ์ฌ์ฉํ๋๊ฒ ์๋)
# ์ฐธ๊ณ ์๋ฃ
์์ ์กํ๋ Vim - ์ธ์ฌ์ดํธ
https://blockdmask.tistory.com/25
https://reakwon.tistory.com/182
https://potato-yong.tistory.com/132
https://tttap.tistory.com/m/216
https://coding-factory.tistory.com/505