์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
vi improved | |
๊ฐ๋ฐ์ | Bram Moolenaar |
์ต์ด ๋ฆด๋ฆฌ์ฆ | |
๊ฐ๋ฐ ์ธ์ด | |
์ด์ ์ฒด์ | ๋ฉํฐ ํ๋ซํผ[1] |
์ธ์ด | ๋ค๊ตญ์ด ์ง์ (์์ด ๊ธฐ๋ณธ) |
๋ผ์ด์ ์ค | ์ฑ๋ฆฌํฐ์จ์ด GPL |
์น ์ฌ์ดํธ | |
TUI ํ๊ฒฝ์ vim |
์ด ์คํฌ๋ฆฐ์ท์ vim์ ๊ทธ๋ํฝ ๋ฒ์ ์ธ GVim์ด๋ค. ์๋ vi๋ vim์ TUI์ด๋ค. ํ์ง๋ง CUI์ ์์ฃผ ํผ๋๋๋ค. CUI๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๋ฌธ์์ด์ ๋์ด๋ก ์ด๋ฃจ์ด์ง๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ด๊ณ , TUI๋ ํํ์ ๋จ์ํ ๋ฌธ์ ๋๋ ํ
์คํธ๋ฅผ ์ฌ์ฉํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ์ฆ ํ
์คํธ GUI์ด๋ค. |
1. ๊ฐ์[ํธ์ง]
2. ์์ธ[ํธ์ง]
์์ฆ ๋๋ถ๋ถ์ ์ ๋์ค์ ๋ฆฌ๋
์ค ๋ฐฐํฌํ์์ ํฐ๋ฏธ๋์ vi๋ฅผ ์น๋ฉด vim์ด ๋จ๋๋ก ํ์ฌ[2] ์์ฆ์ ๋ฆฌ๋
์ค๋ ์ ๋์ค๋ฅผ ๋ฐฐ์ด ์ฌ๋๋ค์ vim์ด vi์ธ ์ค ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ๊ทธ๋์ vi์๋ ์์ ํ ๋ค๋ฅธ ๋ฌผ๊ฑด์ด์ง๋ง, ์ ๊ตฌ๋ณํ์ง ๋ชป ํ๋ ์ฌ๋์ด ๋ง๋ค.
์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ESCํค๋ฅผ ๋๋ฅธ ํ
์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ ESCํค๋ฅผ ๋๋ฅธ ํ
:q! ๋ฅผ ์์๋๋ก ์
๋ ฅํ๊ณ ์ํฐํค๋ฅผ ๋๋ฅด๋ฉด ๋๋ค. ์ ์ฅ ํ ์ข
๋ฃ๋ :wq ์ด๋ค. Emacs์๋ ์์ฃผ ์ฌํ ๋ผ์ด๋ฒ ๊ด๊ณ๋ค. |
3. ์ญ์ฌ์ ํํฉ[ํธ์ง]
๋ง์ ์์ ๋ฆฌ๋
์ค๋ ์ ๋์ค์์๋ vim์ vi๋ก alias(๋ฐ๋ก๊ฐ๊ธฐ, ๋งํฌ, ์ฐ๊ฒฐ)์์ผ ๋์๊ธฐ ๋๋ฌธ์ vi๋ฅผ ์ณ๋ vim์ผ๋ก ์ฐ๊ฒฐ๋๋ค. ๋จ, minimal ๋ฒ์ ์ด๋ค. ๋ฐ๋ผ์ ์์ฆ ๋งํ๋ vi๋ ๋๋ถ๋ถ ๋ณ์ข
ํ์ธ vim(vi improved)์ ์ง์นญํ๋ฉฐ, nVi(Not Vi), elVis ๋ฑ์ ๋ค๋ฅธ ๋ณ์ข
๋ ์กด์ฌํ๋ค. ํนํ vim์ ๋ชจ๋ ๋ฆฌ๋
์ค ๋ฐฐํฌํ๊ณผ OS X์ ๊ธฐ๋ณธ์ผ๋ก ํ์ฌ๋๋ฉด์ ๊ฑฐ์ ๋๋ถ๋ถ์ vi ์ด์ฉ์๊ฐ ์ด ๋ฒ์ ์ผ๋ก ์
๋ฌธํด์ ์ด ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ ์ ๋. ๊ฒ๋ค๊ฐ vim์ GUI ํ๊ฒฝ์์ ์ธ ์ ์๊ฒ GVim์ผ๋ก๋ ๋ณ์ข
๋์๋ค. ๋น์ฅ ์ด ๋ฌธ์ ์๋จ ์คํฌ๋ฆฐ์ท๋ GVim์ ์คํฌ๋ฆฐ์ท์ด๋ค.
๋จ, ์ ๋์ค์ ๋ฐ๋ผ์ vim์ด ์๋ ์ง์ง vi ํน์ ๊ทธ๊ฒ์ ํด๋ก ์ด ๊ธฐ๋ณธ์ธ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์๊ณ , ์ด๋ฐ ๋ฌผ๊ฑด์ ์ฌ์ง์ด ๋ฒ๊ทธ๊น์ง๋ ๊ณผ๊ฑฐ BSD์ vi ๊ฒ์ ๊ทธ๋๋ก ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ด์, vim ์ฌ์ฉ์๊ฐ ๋ชจ๋ฅด๋ ํด๊ดดํ ๋ฒ๊ทธ๊ฐ ์๋ค๊ฑฐ๋ vim์์ ์์ฃผ์ฐ๋ ํต์ฌ๊ธฐ๋ฅ์ด ์๋ ๋ฑ vim๊ณผ ๋ค๋ฅผ ์ ์๋ค. ๋๋น๋ฅผ 80๋ฌธ์ ์ด์ ์ง์ํ์ง ์์ ๊นจ์ง๋ค๊ฑฐ๋, ๋น์ฃผ์ผ ๋ชจ๋๊ฐ ์๋ค๊ฑฐ๋ ๋ฑ๋ฑ...
2019๋ , vim์ neovim์์ ์ฌ๊ฐํ ์ ธ ์คํ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์๋ค. # ํด๋น ์ทจ์ฝ์ ์ CVE-2019-12735 ์ด๋ฉฐ Modelines ๊ธฐ๋ฅ์์ ๋ฐ์ํ ์ทจ์ฝ์ ์ผ๋ก ํ์ผ์ ์ฌ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ทธ๋๋ก ๊ฐ์ผ๋๋ค. ์ํฅ ๋ฐ๋ ๋ฒ์ ์ vim๋ 8.1.1365, neovim๋ 0.3.6์ด๋ฉฐ ์ดํ ๋ฒ์ ์์ ํจ์น๋์๋ค.
์ญ์ฌ์ ์ ํต๊ณผ ํจ๊ป ์์ค์ฝ๋๊ฐ ๋งค์ฐ ๋ณต์กํด์ ธ, NeoVim์ด๋ผ๋ ์ฝ๋๋ฅผ ๋ค์ ์ง๋ ํ๋ก์ ํธ๊ฐ ์งํ์ค์ด๋ค. https://neovim.io/
์ง์ ์ฅ๋ฒฝ์ด ์์ด์์ธ์ง VimAdventure๋ผ๋ ํ์ต์ฉ ๊ฒ์๋ ์์ผ๋ ๋ฐฐ์ฐ๊ณ ์ถ์ ์ฌ๋์ ์ฐธ๊ณ ํ์. https://vim-adventures.com/
์ฌ์ค vim์ด ์ ๋์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๊ณ ์๊ธด ํ์ง๋ง ๊ฒฐ๊ตญ ๋ชจ์ฒด๋ vi์ด๊ณ ํต์ฌ ๊ธฐ๋ฅ์ธ ํน์ ์ ํค๋งต์ ๊ฑฐ์ ๋๋ถ๋ถ vi๋ก๋ถํฐ ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋์ด ๊ฐ๋ ์ํฉ์ด๊ธด ํ๋ค. ์์ ํ๋ฏ ์์ฆ์ vi์ vim์ ์ ๊ตฌ๋ถ ๋ชปํ๋ ๊ฒ๋ ์๊ณ .
๋ฆฌ๋ ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ๋ฏธ๋์ฐฝ์ vimtutor๋ผ๊ณ ์น๋ฉด ๊ธฐ๋ณธ์๊ฐ ๋ฌ๋ค. vim์ ์ต์ํ๊ณ ์ถ์ ์ ์ ๋ ์ฐธ๊ณ ํ๋๋ก ํ์.
๋จ, ์ ๋์ค์ ๋ฐ๋ผ์ vim์ด ์๋ ์ง์ง vi ํน์ ๊ทธ๊ฒ์ ํด๋ก ์ด ๊ธฐ๋ณธ์ธ ๊ฒฝ์ฐ๊ฐ ์ ์ง ์๊ณ , ์ด๋ฐ ๋ฌผ๊ฑด์ ์ฌ์ง์ด ๋ฒ๊ทธ๊น์ง๋ ๊ณผ๊ฑฐ BSD์ vi ๊ฒ์ ๊ทธ๋๋ก ๊ฐ์ง ๊ฒฝ์ฐ๊ฐ ์์ด์, vim ์ฌ์ฉ์๊ฐ ๋ชจ๋ฅด๋ ํด๊ดดํ ๋ฒ๊ทธ๊ฐ ์๋ค๊ฑฐ๋ vim์์ ์์ฃผ์ฐ๋ ํต์ฌ๊ธฐ๋ฅ์ด ์๋ ๋ฑ vim๊ณผ ๋ค๋ฅผ ์ ์๋ค. ๋๋น๋ฅผ 80๋ฌธ์ ์ด์ ์ง์ํ์ง ์์ ๊นจ์ง๋ค๊ฑฐ๋, ๋น์ฃผ์ผ ๋ชจ๋๊ฐ ์๋ค๊ฑฐ๋ ๋ฑ๋ฑ...
2019๋ , vim์ neovim์์ ์ฌ๊ฐํ ์ ธ ์คํ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์๋ค. # ํด๋น ์ทจ์ฝ์ ์ CVE-2019-12735 ์ด๋ฉฐ Modelines ๊ธฐ๋ฅ์์ ๋ฐ์ํ ์ทจ์ฝ์ ์ผ๋ก ํ์ผ์ ์ฌ๋ ๊ฒ๋ง์ผ๋ก๋ ๊ทธ๋๋ก ๊ฐ์ผ๋๋ค. ์ํฅ ๋ฐ๋ ๋ฒ์ ์ vim๋ 8.1.1365, neovim๋ 0.3.6์ด๋ฉฐ ์ดํ ๋ฒ์ ์์ ํจ์น๋์๋ค.
์ญ์ฌ์ ์ ํต๊ณผ ํจ๊ป ์์ค์ฝ๋๊ฐ ๋งค์ฐ ๋ณต์กํด์ ธ, NeoVim์ด๋ผ๋ ์ฝ๋๋ฅผ ๋ค์ ์ง๋ ํ๋ก์ ํธ๊ฐ ์งํ์ค์ด๋ค. https://neovim.io/
์ง์ ์ฅ๋ฒฝ์ด ์์ด์์ธ์ง VimAdventure๋ผ๋ ํ์ต์ฉ ๊ฒ์๋ ์์ผ๋ ๋ฐฐ์ฐ๊ณ ์ถ์ ์ฌ๋์ ์ฐธ๊ณ ํ์. https://vim-adventures.com/
์ฌ์ค vim์ด ์ ๋์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๊ณ ์๊ธด ํ์ง๋ง ๊ฒฐ๊ตญ ๋ชจ์ฒด๋ vi์ด๊ณ ํต์ฌ ๊ธฐ๋ฅ์ธ ํน์ ์ ํค๋งต์ ๊ฑฐ์ ๋๋ถ๋ถ vi๋ก๋ถํฐ ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋์ด ๊ฐ๋ ์ํฉ์ด๊ธด ํ๋ค. ์์ ํ๋ฏ ์์ฆ์ vi์ vim์ ์ ๊ตฌ๋ถ ๋ชปํ๋ ๊ฒ๋ ์๊ณ .
๋ฆฌ๋ ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ๋ฏธ๋์ฐฝ์ vimtutor๋ผ๊ณ ์น๋ฉด ๊ธฐ๋ณธ์๊ฐ ๋ฌ๋ค. vim์ ์ต์ํ๊ณ ์ถ์ ์ ์ ๋ ์ฐธ๊ณ ํ๋๋ก ํ์.
3.1. ๊ด๋ จ ๋ฌธ์[ํธ์ง]
[1] ์ฌ์ง์ด iOS ์ฑ์คํ ์ด์๋ ์ฌ๋ผ์ ์๋ค. ๊ทธ๊ฒ๋ ์ง๊ธ๋ณด๋ค ๋์ฑ ์๊ฒฉํ๋ ์ก์ค ์์ ๋ถํฐ ์์๋ค!! ๋งํฌ vim ์ ์ ๋ฉด์ ์์ดํฐ์ ์ฐ๊ณ ์๋ค๋ฉด ํ๋ฒ ์ค์นํด๋ณด์.
[2] vi์ vim์ด ๋ค๋ฅด๊ฒ ์๋๋๋ ๋ฆฌ๋
์ค ๋ฐฐํฌํ๋ ์กด์ฌํ๋ค. ์ด๋ฐ ๋ฐฐํฌํ์์ ์ด ๋์ ๊ฐ์ฅ ๋์ ๋๋ ์ฐจ์ด์ ์ ํต์ง ํฐ์์ผ๋ก๋ง ๋ํ๋๋(vi), ๋ฌธ๋ฒ ํ์ด๋ผ์ดํ
์ ํ๋๋(vim)์ด๋ค.