Neovim ํ๋ก์ ํธ์ ํ๋ ์์ํฌ ๋ด์์ Vim ์ฝ๋ ๊ธฐ๋ฐ์ XNUMX๋
์ด์ ์ฌ์์
๋์ด ์์ผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ๊ณ ์ฌ๋ฌ ์ ์ง ๊ด๋ฆฌ์ ๊ฐ์ ์์
์ ๋ถ๋ฐฐํ๋ ์๋จ์ ์ ๊ณตํ๋ฉฐ ์ธํฐํ์ด์ค์ ์ธํฐํ์ด์ค๋ฅผ ๋ถ๋ฆฌํ๋ ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ๊ธฐ๋ณธ ๋ถ๋ถ(๋ด๋ถ๋ฅผ ๊ฑด๋๋ฆฌ์ง ์๊ณ ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ณ๊ฒฝํ ์ ์์) ๋ฐ ์๋ก์ด ๊ตฌํ
Neovim์ ๋ง๋ค๊ฒ ๋ Vim์ ๋ฌธ์ ์ ์ค ํ๋๋ 300๋ง ์ค์ด ๋๋ C(C89) ์ฝ๋๋ก ๊ตฌ์ฑ๋ ๋น๋ํ๊ณ ๋ชจ๋๋ฆฌ์ ์ฝ๋ ๊ธฐ๋ฐ์ด์์ต๋๋ค. ์์์ ์ฌ๋๋ค๋ง์ด Vim ์ฝ๋๋ฒ ์ด์ค์ ๋ชจ๋ ๋์์ค๋ฅผ ์ดํดํ๊ณ ์์ผ๋ฉฐ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํ ๋ช ์ ๊ด๋ฆฌ์์ ์ํด ์ ์ด๋๋ฏ๋ก ํธ์ง๊ธฐ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๊ณ ๊ฐ์ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. GUI๋ฅผ ์ง์ํ๊ธฐ ์ํด Vim ์ฝ์ด์ ๋ด์ฅ๋ ์ฝ๋ ๋์ Neovim์ ๋ค์ํ ํดํท์ ์ฌ์ฉํ์ฌ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ ์ ์๋ ๋ฒ์ฉ ๋ ์ด์ด ์ฌ์ฉ์ ์ ์ํฉ๋๋ค.
Neovim์ฉ ํ๋ฌ๊ทธ์ธ์ MessagePack ํ์์ด ์ฌ์ฉ๋๋ ์ํธ ์์ฉ์ ์ํด ๋ณ๋์ ํ๋ก์ธ์ค๋ก ์คํ๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ๊ณผ์ ์ํธ ์์ฉ์ ํธ์ง๊ธฐ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ฅผ ์ฐจ๋จํ์ง ์๊ณ ๋น๋๊ธฐ์์ผ๋ก ์ํ๋ฉ๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ก์ธ์คํ๋ ค๋ฉด TCP ์์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ ์ธ๋ถ ์์คํ ์์ ์คํ๋ ์ ์์ต๋๋ค. ๋์์ Neovim์ Vim๊ณผ์ ํ์ ํธํ์ฑ์ ์ ์งํ๊ณ Vimscript(Lua๊ฐ ๋์์ผ๋ก ์ ๊ณต๋จ)๋ฅผ ๊ณ์ ์ง์ํ๋ฉฐ ๋๋ถ๋ถ์ ํ์ค Vim ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค. Neovim์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ Neovim ์ ์ฉ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ ํ๋ฌ๊ทธ์ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ฌ ์ด๋ฏธ
์ผ๋ถ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋ก์ด API ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ด๋ฒคํธ๊ฐ ๋ง์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Lua ์ธ์ด๋ก ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ์๋ก์ด ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ Nvim-Lua๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค ํ๋กํ ์ฝ์ ๊ฐ๋ฐ์ ๊ณ์๋์ด ๊ฐ๋ณ ๋ฌธ์๊ฐ ์๋ ๋ผ์ธ ์์ค์์ ํ๋ฉด ์ ๋ณด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ๋ชจ๋ ์์น์ ๋ฐฐ์นํ๊ณ , ๊ฐ๋ณ ํธ์ง ๋ฒํผ์ ์ฐ๊ฒฐํ๊ณ , ๋ฉํฐ๊ทธ๋ฆฌ๋ ๋ชจ๋๋ก ๊ทธ๋ฃนํํ ์ ์๋ ๋ณธ๊ฒฉ์ ์ธ ๋ถ๋ ์ฐฝ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ฐํฌ๋ช ๋๋กญ๋ค์ด ๋ฉ๋ด์ 'pumblend' ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru