๐vi ์๋ํฐ๋?
- vi๋ ๋น ์กฐ์ด๊ฐ ๋ง๋ UNIX๊ณ์ด ํ๊ฒฝ์์ ๊ฐ์ฅ ๋ง์ด์ฐ์ด๋ ์คํ ์์ค ๋ฌธ์ ํธ์ง๊ธฐ๋ก ํ ์ค์ฉ ํธ์งํ๋ ์ค๋จ์ ํธ์ง๊ธฐ๊ฐ ์๋๋ผ ํ ํ๋ฉด์ ํธ์งํ๋ 'Visual Editor' ๋ผ๋ ๋ป์์ ์ ๋ํ์์ต๋๋ค.
๐vi ์ vim ์ ์ฐจ์ด?
vim์ 'VI Improved' ์ฆ, ํฅ์๋ vi๋ฅผ ์๋ฏธํ๋๋ฐ, vi์ ๊ฒฝ์ฐ ๊ฐ๊ฒฐํ ํ ์คํธ ํธ์ง๊ธฐ๋ฅ๋ง์ ์ ๊ณตํ๋ ๋ฐ๋ฉด์ VIM์ ํ์ฅ๋ ์ ๊ท ํํ์ ๋ฌธ๋ฒ, ๋ฌธ๋ฒ ๊ฐ์กฐ๊ธฐ๋ฅ, ๋ค์ค ๋๋๋ฆฌ๊ธฐ ๋ฑ vi๋ณด๋ค ํ์ฅ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋๋ค์์ UNIX์ LINUX ๋ฐฐํฌํ์ ๊ฒฝ์ฐ vim์ด ์ค์น๋์ด ์๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ, ์ด๋ ๋ด๋ถ์ ์ผ๋ก vi๋ฅผ alias ์ค์ ํ์ฌ vi๋ฅผ ์ด์ด๋ vim์ด ์ด๋ฆฌ๋๋ก ์ธํ ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๋ก์ , ๊ตณ์ด vi์ vim์ ๋ณ๋๋ก ๊ตฌ๋ถํ์ฌ ์ ํ์๋ ์์ด๋ณด์ ๋๋ค.
๐vi ์๋ํฐ ํํค์ณ๋ณด๊ธฐ
๐vi ์๋ํฐ์ 3๊ฐ์ง ๋ชจ๋
1. ์ผ๋ฐ ๋ชจ๋: ํ์ดํ ์ด๋์ด๋ ํน์ ๋ฌธ์ ์์ /์ญ์ ๋ฐ ํธ์ง์ ์ฐ์ด๋ ๋๋ถ๋ถ์ ๋ช ๋ น์ด๊ฐ ์ฌ๊ธฐ์ ์คํ๋ฉ๋๋ค. ์ด ๋ชจ๋๊ฐ ๊ธฐ๋ณธ ๋ชจ๋ ํํ ์ ๋๋ค.
2. ์ ๋ ฅ ๋ชจ๋:์ผ๋ฐ ๋ชจ๋์์ i(ํ ์ปค์ ์์น์์ ์ ๋ ฅ๋ชจ๋), a(ํ ์ปค์ ํ ์นธ ๋ค์์ ์ ๋ ฅ๋ชจ๋), o(ํ ์ค ์ถ๊ฐ ํ ์ ๋ ฅ๋ชจ๋)๋ฑ์ ์ ๋ ฅํ์ ๋ ์๋์ผ๋ก ๋ค์ด๊ฐ๋ ๋ชจ๋๋ก, ์ด ์ํ์์๋ง ํ ์คํธ ์ ๋ ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
3. ๋ช ๋ น ๋ชจ๋(์ฝ๋ก ๋ชจ๋): ์์คํ ๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ์ ๋ด๋นํ๋ ๋ชจ๋. ์ผ๋ฐ ๋ชจ๋์์ :(์ฝ๋ก )์ ๋๋ฅด๋ฉด ๋ฉ๋๋ค. ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ค์ ๋๋ํ๋ฅผ ๋ถ์ด๋ฉด ๊ฐ์ ๋ช ๋ น์ผ๋ก ์คํ๋ฉ๋๋ค.
๐vi ์๋ํฐ๋ก ๋ฌธ์ํธ์ง ์ ์ง์ ๋ฐ ๋ชจ๋ ๋ณํ ํํ
vi ํ์ผ๋ช
→ ์ผ๋ฐ๋ชจ๋ ์ง์
→ i ๋๋ a๋ก ์
๋ ฅ๋ชจ๋ ์ง์
→ ์์ฑ ๋ฐ ์์ ์๋ฃํ ๋ค → esc๋ก ์ผ๋ฐ๋ชจ๋์ง์
→ ์ฝ๋ก (:)์ผ๋ก ๋ช
๋ น๋ชจ๋(์ฝ๋ก ๋ชจ๋) ์ง์
→ ์ ์ฅ(w), ์ข
๋ฃ(q), ์ทจ์(i), ์ ์ฅ ํ ์ข
๋ฃ(wq)
* vi์ ๋น์ ์ ์ข ๋ฃ์ swp ํ์ผ์ด ๋จ์ → 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 {ํ์ผ๋ช }"๋ช ๋ น์ด๋ก ์ ๋ ฅํ์ ๋, ์ ๋ ฅํ ํ์ผ๋ช ์ด ์ค์ ์กด์ฌ ํ ๊ฒฝ์ฐ ํ์ผ์ ์์
์ ๊ท ํ์ผ ์์ฑ
"vi {ํ์ผ๋ช }"๋ช ๋ น์ด๋ก ์ ๋ ฅํ์ ๋, ์ ๋ ฅํ ํ์ผ๋ช ์ด ์ค์ ์กด์ฌ ํ์ง ์๋ ๊ฒฝ์ฐ ํ์ผ์ ์์ฑ
๐vi ์ปค์ ์ด๋
์ปค์ | ์ค๋ช |
h (←) | ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
j (↓) | ์๋๋ก ์ปค์ ์ด๋ |
k (↑) | ์๋ก ์ปค์ ์ด๋ |
l (→) | ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
w | ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ๋ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
e | ์ค๋ฅธ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
b | ์ผ์ชฝ ํ ๋จ์ด์ ์ ๋ถ๋ถ์ผ๋ก ์ปค์ ์ด๋ |
Enter | ํ ํ ์๋๋ก ์ปค์ ์ด๋ |
Back space | ํ ๋ฌธ์ ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
Space Bar | ํ ๋ฌธ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
^ | ํ์ ๋งจ ์ผ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
$ | ํ์ ๋งจ ์ค๋ฅธ์ชฝ์ผ๋ก ์ปค์ ์ด๋ |
H | ํ๋ฉด์ ๋งจ ์๋ก ์ด๋ |
M | ํ๋ฉด์ ์ค๊ฐ์ผ๋ก ์ด๋ |
L | ํ๋ฉด์ ๋งจ ์๋๋ก ์ด๋ |
์ซ์G | ‘์ซ์’ ๋งํผ ์ง์ ํ ์ค๋ก ์ปค์ ์ด๋ |
Ctrl + i | ํ ํ๋ฉด ์๋ก ์ด๋ |
Ctrl + b | ํ ํ๋ฉด ์๋๋ก ์ด๋ |
Ctrl + d | ๋ฐ ํ๋ฉด ์๋ก ์ด๋ |
Ctrl + u | ๋ฐ ํ๋ฉด ์๋๋ก ์ด๋ |
Ctrl + e | ํ ์ค์ฉ ์๋ก ์ด๋ |
Ctrl + y | ํ ์ค์ฉ ์๋๋ก ์ด๋ |
๐๋ฌธ์, ํ , ์ฝ์ ๋ช ๋ น์ด
์ปค์ | ์ค๋ช |
a | ์ปค์ ์ค๋ฅธ์ชฝ์ ๋ฌธ์ ์ฝ์ |
A | ์ปค์ ์ค๋ฅธ์ชฝ, ํ์ ๋์ ๋ฌธ์ ์ฝ์ |
i | ์ปค์ ์ผ์ชฝ์ ๋ฌธ์ ์ฝ์ |
I | ์ปค์ ์ผ์ชฝ, ํ์ ์ฒ์์ ๋ฌธ์ ์ฝ์ |
o | ์ปค์ ์๋์ ํ ์ฝ์ |
O | ์ปค์ ์์ ํ ์ฝ์ |
ESC | ์ข ๋ฃ |
๐ํ ์คํธ ๋ณ๊ฒฝ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
cw | ๋จ์ด ๋ณ๊ฒฝ |
cc | ํ ๋ณ๊ฒฝ |
C | ์ปค์ ์ค๋ฅธ์ชฝ์ ํ ๋ณ๊ฒฝ |
s | ์ปค์๊ฐ ์์นํ ๋ฌธ์์ด ๋์ฒด |
S | ์ปค์๊ฐ ์์นํ ๋ผ์ธ์ ๋ฌธ์์ด ๋์ฒด |
r | ์ปค์ ์์น ๋ฌธ์๋ฅผ ๋ค๋ฅธ ๋ฌธ์๋ก ๋์ฒด |
r-Enter | ํ ๋ถ๋ฆฌ |
J | ํ์ฌ ํ๊ณผ ์๋ ํ ๊ฒฐํฉ |
xp | ์ปค์ ์์น ๋ฌธ์์ ์ค๋ฅธ์ชฝ ๋ฌธ์ ๊ตํ |
~ | ๋ฌธ์ํ(๋, ์๋ฌธ์) ๋ณ๊ฒฝ |
u | ์ด์ ๋ช ๋ น ์ทจ์ |
U | ํ ๋ณ๊ฒฝ ์ฌํญ ์ทจ์, ์ด์ ์ ์ต์ข ํ ์ทจ์ |
. | ์ด์ ์ต์ข ๋ช ๋ น ๋ฐ๋ณต |
๐ํ ์คํธ ์ญ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
x | ์ปค์๊ฐ ์๋ ๋ฌธ์ ์ญ์ |
nx | ์ปค์๊ฐ ์๋ ์์น๋ถํฐ n๊ฐ์ ๋ฌธ์๋ฅผ ์ญ์ |
dw | ํ์ฌ ์ปค์์ ์๋ ํ ๋จ์ด ์ญ์ |
dd | ์ปค์๊ฐ ์๋ ๋ผ์ธ ์ญ์ |
ndd | ์ปค์๊ฐ ์๋ ๋ผ์ธ๋ถํฐ n๊ฐ์ ๋ผ์ธ ์ญ์ |
db | ์ปค์์ ์์น์์ ๊ฑฐ๊พธ๋ก ํ ๋จ์ด ์ญ์ |
D | ์ปค์ ์ค๋ฅธ์ชฝ ํ ์ญ์ |
:5,10d | 5~10๋ฒ์งธ ํ ์ญ์ |
๐๋ณต์ฌ ๋ฐ ์ด๋ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
yy | ์ปค์๊ฐ ์์นํ ์ค ๋ณต์ฌ |
Y | ํ yank ๋๋ ๋ณต์ฌ |
yh | ์ปค์์ ์ผ์ชฝ ๋ฌธ์ ๋ณต์ฌ |
yl | ์ปค์์ ์์นํ ๋ฌธ์ ๋ณต์ฌ |
yi | ์ปค์๊ฐ ์์นํ ์ค๊ณผ ๊ทธ ์๋ซ์ค ๋ณต์ฌ |
yk | ์ปค์๊ฐ ์์นํ ์ค๊ณผ ๊ทธ ์์ค ๋ณต์ฌ |
p | yank ๋๊ฑฐ๋ ์ญ์ ๋ ํ ํ์ฌ ํ ์๋ก ์ฝ์ |
P | yank ๋๊ฑฐ๋ ์ญ์ ๋ ํ ํ์ฌ ํ ์๋์ ์ฝ์ |
:1,2 co 3 | 1~2ํ์ 3ํ ๋ค์์ผ๋ก ๋ณต์ฌ |
:4,5 m 6 | 4~5ํ์ 6ํ ์๋ก ์ด๋ |
- yank : ํฑ ์ก์๋น๊ธฐ๋ค
ํ์ค ๋ณต์ฌ
ํด๋น ๋ผ์ธ์์ 'yy', ์ฆ y๋ฅผ ๋๋ฒ ๋๋ฅด๋ฉด ์บ์์ ์ ์ฅ
๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ํ๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ 'p'๋ฅผ ๋๋ฅด๋ฉด ์ปค์ ๋ค์ ๋ผ์ธ์ ๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ๋จ
๋ธ๋ญ ๋ณต์ฌ
'v'ํค๋ฅผ ๋๋ฅธ ํ ์ปค์๋ฅผ ์ด๋ํ์ฌ ๋ธ๋ญ์ ์ค์
(putty์ ๊ฒฝ์ฐ ๋ธ๋ญ์ด ์ค์ ๋๋ ๋ชจ์ต์ด ๋ณด์ด๋, ssh์ ๊ฒฝ์ฐ ๋ธ๋ญ ๋ชจ์ต์ด ๋ํ๋์ง ์์ผ๋ ์ค์ ๋ก๋ ์ค์ ๋๊ณ ์์)
์ํ๋ ๋ถ๋ถ์ ๋ธ๋ญ์ผ๋ก ์ค์ ํ ๋ค(์ค์ ์๋ฃํค๋ ์์) 'y'ํค๋ฅผ ๋๋ฅด๋ฉด ์บ์์ ๋ณต์ฌ๊ฐ ๋จ
๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋ ๊ณณ์ผ๋ก ์ด๋ํ์ฌ 'p'๋ฅผ ๋๋ฅด๋ฉด ์ปค์ ๋ค์ ๋ผ์ธ์ ๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ๋จ
๐ํ ๋ฒํธ ์ค์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
:set nu ๋๋ :set number | ์๋ํฐ์ ๊ฐ ํ์ ์ข์ธก์ ํ ๋ฒํธ ํ์ |
:set nonu | ์๋ํฐ์ ๊ฐ ํ์ ์ข์ธก ํ ๋ฒํธ ์จ๊ธฐ๊ธฐ |
๐ํ ์ฐพ๊ธฐ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
G | ํ์ผ์ ๋ง์ง๋ง ํ์ผ๋ก ๊ฐ๊ธฐ |
21G | ํ์ผ์ 21๋ฒ์งธ ํ์ผ๋ก ๊ฐ๊ธฐ |
Ctrl + G | ํ์ฌ File name๊ณผ ์ปค์์ ๋ผ์ธ ์ ๋ณด |
๐ํ์ ๋ฐ ๋์ฒด ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
/{๊ฒ์ํ ๋ฌธ์์ด} | ์ค๋ฅธ์ชฝ ์๋ ๋ฐฉํฅ์ผ๋ก ๋ฌธ์์ด ๊ฒ์ |
?{๊ฒ์ํ ๋ฌธ์์ด} | ์ผ์ชฝ ์ ๋ฐฉํฅ์ผ๋ก ๋ฌธ์์ด ๊ฒ์ |
n | ๋ฌธ์์ด์ ๋ค์์ผ๋ก ๊ณ์ ๊ฒ์ |
N | ๋ฌธ์์ด์ ์ด์ ์ผ๋ก ๊ณ์ ๊ฒ์ |
:g/search-string/s/ | ๊ฐ ๋ฐ์ ํ์ ํ ํ์ธํ๊ณ ๋์ฒด |
:s/string/rep | ํ์ฌ ํ์ str์ rep๋ก ๋์ฒด |
:1,.s/string/rep/ | 1๋ถํฐ ํ์ฌ ํ์ str์ rep๋ก ๋์ฒด |
:%s/string/rep/g | ํ์ผ ์ ์ฒด str์ rep๋ก ์ ๋ถ๋์ฒด |
:.$/aaa/bbb | ์ปค์์ ์์น๋ก๋ถํฐ ํ์ผ์ ๋๊น์ง ์๋ ๋ชจ๋ aaa๋ฅผ bbb๋ก ๋์ฒด |
๐ํ๋ฉด ์ ๋ฆฌ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
Ctrl + l | ๋ถํ์ํ ํ๋ฉด์ ๋ฆฌ ํ ๋ค์ ํ์ |
๐ํ์ผ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช | ์์ |
:r {ํ์ผ๋ช } | ์ปค์ ๋ค์์ ํ์ผ ์ฝ์ | :r test.txt |
:{ํ๋ฒํธ} r {ํ์ผ๋ช } | ์ ๋ ฅํ ํ์ผ์ ์ ๋ ฅํ ํ๋ฒํธ ๋ค์์ ์ฝ์ | :10 r test.txt |
๐๋ณด๊ด ๋ฐ ์ข ๋ฃ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
:w | ๋ณ๊ฒฝ์ฌํญ ์ ์ฅ |
:w {ํ์ผ๋ช } | ๋ณ๊ฒฝ์ฌํญ ์ ๋ ฅํ ํ์ผ๋ช ์ผ๋ก ์ ์ฅ |
:wq | ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ด ํ vi ์ข ๋ฃ. ZZ ๋ช ๋ น๊ณผ ๊ฐ์. :w(๊ธฐ๋ก)๊ณผ :q(์ข ๋ฃ) ๋ฅผ ์ฐ์์ ์ผ๋ก ์ํ |
ZZ | ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ด ํ vi ์ข ๋ฃ. ์์ ๋ฒํผ์ ๋ด์ฉ์ vi๋ก ํธ์ถํ ๋ ์ฌ์ฉ๋์๋ ํ์ผ์ ๊ธฐ๋กํ ํ vi๋ฅผ ๋น ์ ธ๋์ด |
:q! | ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ดํ์ง ์๊ณ ์ข ๋ฃ |
q | ์์ ํ ํ์ผ์ ์ ์ฅํ์ง ์๊ณ vi ์ข ๋ฃ |
e! | ์์ ํ ๊ฒ์ ๋ฌด์ํ๊ณ ๋ค์ ํธ์ง์ํ๋ก |
๐๊ธฐํ
๋ฌธ์ | ์ค๋ช |
. | ํ์ฌ line |
% | ์ ์ฒด line |
$ | ํ์ผ ๋งจ๋ line |
1,$ | % |
2,3 | 2 ~ 3 line |
๐ vi/vim ๋จ์ถํคํ
๐ vim ์ด๋ ๋จ์ถํคํ
๐ vim ๋ช ๋ น์ด ๋จ์ถํคํ
§์ถ์ฒ:
https://iamfreeman.tistory.com/entry/vi-vim-ํธ์ง๊ธฐ-๋ช ๋ น์ด-์ ๋ฆฌ-๋จ์ถํค-๋ชจ์-๋ชฉ๋ก
https://ko.wikipedia.org/wiki/Vi
'OS > Linux' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DNF (0) | 2021.07.27 |
---|---|
ํ๋ก๊ทธ๋จ ์ค์น๋ฅผ ์ํ RPM๋ช ๋ น์ด (0) | 2021.07.27 |
์ฌ์ฉ์์ ๊ทธ๋ฃน๊ด๋ฆฌ (0) | 2021.07.13 |
๋ฆฌ๋ ์ค ๊ธฐ๋ณธ ๋ช ๋ น์ด (0) | 2021.07.13 |
Linux ๊ฐ์์ฝ์๊ณผ ๋ฐ๋ ๋ฒจ (0) | 2021.07.12 |
SysAdmin ๋ฉ๋ชจ์ฅ๐
์๋ ํ์ธ์. System Engineer๋ฅผ ๊ฟ๊พธ๋ฉฐ ๋์ ์ด๋ ๋ฉ๋ชจ์ฅ์ ๋๋ค.