2026๋ 3์ 29์ผ, ์๋ฐฉํ๋ค ํ ์คํธ ์๋ํฐ ๋ค์ค๋น ๋ฒ์ 0.12๊ฐ ์ถ์๋์๊ณ , 4์ 6์ผ์ ์์ ๋ฒ์ ์ด ๋ฐฐํฌ๋์์ต๋๋ค. 0.12.1 ๋ฆด๋ฆฌ์ค์ด๋ฒ ๋ฆด๋ฆฌ์ค๋ ์ต๊ทผ ๋ค์ด ๊ฐ์ฅ ํฐ ๊ท๋ชจ์ ๋ฆด๋ฆฌ์ค ์ค ํ๋์ ๋๋ค. 340๊ฐ ์ด์์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๊ณ , ๋ด์ฅ ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ์, HTTP ํด๋ผ์ด์ธํธ ๋ฐ ์ฌ์์ ๋ช ๋ น์ด ์ถ๊ฐ๋์์ผ๋ฉฐ, ๋ด์ฅ LSP ํด๋ผ์ด์ธํธ๊ฐ ํฌ๊ฒ ํ์ฅ๋์๊ณ , ๋ฉ์์ง ํ์ ์์คํ ์ด ์คํ์ ์ผ๋ก ์ฌ์ค๊ณ๋์์ต๋๋ค.
ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ:
- ์ ๊ฑฐ๋จ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ vim.diagnostic API;
- Ctrl-R์ ๋๋ฅด๋ฉด ์ฝ์ ๋ชจ๋๋ก ์ ํ๋ฉ๋๋ค. ์ฝ์ ๊ณผ ์ ์ฌํ๊ฒ ์๋ํฉ๋๋ค;
- ์ง์์ด ์ค๋จ๋์์ต๋๋ค. ์ ๊ณต์ ์ฒด์ Python 3.7 ๋ฐ 3.8์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ์ ธ๋ฉ๋ด ํ๋ฌ๊ทธ์ธ ์ ๊ฑฐ๋จ, tohtml ์์ง์ด๋ ํฉ/๋ถ์ฐ/์ต์ /์ ์์;
- ํธ๋ฆฌ์ํฐ: ์คํ์ ์ง์นจ! ๋ชจ๋ ์บก์ฒ์ ์ ์ฉ๋ฉ๋๋ค., get_parser ์ค๋ฅ ๋ฐ์ ์ nil์ ๋ฐํํฉ๋๋ค., Query:iter_matches์์ "all" ์ต์ ์ด ์ ๊ฑฐ๋์์ต๋๋ค.;
- LSP: ํ ์คํธ ๋ฌธ์/์ฝ๋๋ ์ฆ ์ฅ์ ์ ๊ณต์ ์ฒด๋ก ๋ค์ ์์ฑ๋จ;
- UI: ext_messages ๋ฉ์์ง ๊ทธ๋ฆฌ๋์ ์ฐ๊ฒฐ๋์ง ์์;
- RFC 3986 ์ง์ path_with_url์ ์์ต๋๋ค.
๋ด์ฅ ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ์(vim.pack):
์ถ๊ฐ๋จ ์คํ์ ์ธ ๋ด์ฅ ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ์ vim.pack์ ๋๋ค. ๋ค์์ ์ง์ํฉ๋๋ค. ์ ๊ธ ํ์ผ ๋ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, ์คํ๋ผ์ธ ์ ๋ฐ์ดํธ, ๋์ ๋ฒ์ ์ง์ , ์น์ธ ๋ฒํผ [[[/]]๋ฅผ ํตํ ํ์ ๋ฐ ์ฝ๋ ์ก์ VCS์ ๋ํ ์ ๋ณด๋ ๋ค์์ ํตํด ํ์ธํ ์ ์์ต๋๋ค. vim.pack.get์์ ์งํ ์ํฉ ํ์๋ nvim_echo๋ฅผ ํตํด kind=progress๋ก ์งํํฉ๋๋ค. checkhealth์ ํตํฉ๋จ.
LSP:
๋ด์ฅ LSP ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์์ต๋๋ค.
- ์๋ก์ด ๋ช ๋ น์ด: lsp ์ํธ ์์ฉ์ ์ธ ๊ณ ๊ฐ ๊ด๋ฆฌ๋ฅผ ์ํด;
- vim.lsp.enable ะธ vim.lsp.is_enabled ํ์์ ๋ฐ๋ผ LSP ์๋ฒ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ์ฝ์ ๋ชจ๋์์ ๋ด์ฅ๋ ์๋ ์์ฑ ๊ธฐ๋ฅ ์ง์ ์๋ฃ ํญ๋ชฉ/ํด๊ฒฐ (completeopt=popup์ผ๋ก ์ค์ ) ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ค๋ํซ ะธ ์์, ์ง์ํ๋ค ์๋ฃ ํญ๋ชฉ.๋ ์ด๋ธ ์ธ๋ถ ์ ๋ณด;
- ์ ์ง์ ์ ํ์ ํตํด ํ ์คํธ๋ฌธ์/์ ํ๋ฒ์๋ฅผ ํฌํจํ์ฌ ์ด์์ ๋๊ธฐ ๋ชจ๋;
- ํ ์คํธ/๋ฌธ์์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋จ, ์ง์ ์ถ๊ฐ๋จ ์ปฌ๋ฌํ๋ ์ ํ ์ด์ ;
- ์ง์ ํ ์คํธ๋ฌธ์/๋ฌธ์๋งํฌ, ํ ์คํธ ๋ฌธ์/์ธ๋ผ์ธ ์๋ ์์ฑ, ํ ์คํธ๋ฌธ์/onTypeFormatting;
- ์ฝ๋๋ ์ฆ ๊ฐ์์ ์ผ๋ก ํ์๋จ ์ฅ์ ์ ๊ณต์ ์ฒด๋ฅผ ํตํด;
- ์๋ฏธ ํ ํฐ ๊ฐ์ ์ฌํญ: ๋ฉํฐ๋ผ์ธ ํ ํฐ์์ฒญ ๋ฒ์ ๋ฐ ์ ์ฒด;
- ์ง์ ์ํฌ์คํ์ด์ค ์ง๋จ, ๋์ ๋ฑ๋ก, ์๊ตฌ ์ง๋จ/์๋ก ๊ณ ์นจ;
- ์ด๋ฆ์ด ๋ณ๊ฒฝ๋๋ ๊ธฐํธ๋ฅผ ๊ฐ์กฐํฉ๋๋ค., ์ง์ํ๋ค ์ฃผ์์ด ๋ฌ๋ฆฐ ํ ์คํธ ํธ์ง ะธ ์ฐ๊ฒฐ๋ ํธ์ง ๋ฒ์;
- ์๋ก์ด ๊ธฐ๋ณธ ๋งคํ: grt โ ํ์ ์ ์๋ก ์ ํ, GRX โ ์ฝ๋๋ ์ฆ ์ถ์;
- LSP ๊ณ ๊ฐ ํ์ผ ํ์์ ๋ณ๊ฒฝํ๋ฉด ์๋์ผ๋ก ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.;
- ๊ตฌ์์ผ๋ก ์ ์ธ๋จ vim.lsp.stop_client ะธ vim.lsp.util.stylize_markdown.
:restart ๋ฐ :detach ๋ช ๋ น:
์ ํ :์ฌ์์ Nvim์ ์ฌ์์ํ๊ณ ํ์ฌ UI์ ๋ค์ ์ฐ๊ฒฐํฉ๋๋ค. ์ง์ Windows์์ `:detach` ๋ฐ `:restart`๋ฅผ ์คํํ์ธ์.๋ ๊ธฐ๋ฅ ๋ชจ๋ ๋ชจ๋ ํ๋ซํผ์์ ์๋ํฉ๋๋ค.
๋คํธ์ํฌ(vim.net):
๋ด์ฅ HTTP ํด๋ผ์ด์ธํธ ์ถ๊ฐ vim.net.request ๋ฐ :edit URL. ์ต์ outbuf ์ธ์๋ฅผ ์ฌ์ฉํ vim.net.request ์๋ฒ์ ์๋ต์ ์ง์ ๋ ๋ฒํผ์ ์ง์ ๊ธฐ๋กํฉ๋๋ค.
UI ๋ฐ ๋ฉ์์ง:
- ui2 โ ๋ฉ์์ง ํ์ ์์คํ ๋ฐ ๋ช ๋ น์ค์ ์คํ์ ์ธ ์ฌ์์ , TUI์ฉ ext_cmdline/๋ฉ์์ง;
- ์๋ก์ด ๋ฐฑ๋ผ์ดํธ ๊ทธ๋ฃน hl-StderrMsg ๋ฐ hl-StdoutMsg;
- nvim_echo๋ ์ง์ํฉ๋๋ค. ์งํ ์ํฉ ์น์ ํจ๊ณผ ์ง์ ์ด ํจ๊ปํฉ๋๋ค.
- ๊ธฐ๋ณธ ์ํ ํ์์ค ์ง๋จ ์นด์ดํฐ, ์งํ ์ํฉ ๋ฐ LSP ์ํ๋ฅผ ํ์ํฉ๋๋ค., ๊ณ ์ฉ ์ํ ๋ฒํผ;
- ํ์ ๋ฉ๋ด ํ๋ ์ ํํ๋ณด๋ ๊ทธ๋์ ์คํฌ๋กค๋ฐ.
๋ฃจ์ API:
- ์๋ก์ด ์ ํ vim.Pos ๋ฐ vim.Range ์ง์ ๋ฐ ๋ฒ์ ์์ ์ ์ํด, ์์น ํ์ ๊ฐ ๋ณํ ์ปค์, extmark, Vim ๋ฐ LSP;
- vim.list.bisect, vim.list.unique;
- ๋ฐ๋ณต:๊ณ ์ , Iter:peek ๋ฐ Iter:skip ๋ฆฌ์คํธ๊ฐ ์๋ ๋ฐ๋ณต์์ ๊ฒฝ์ฐ;
- vim.wait ์ฝ๋ฐฑ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- vim.json.encode ์์ ์ถ๋ ฅ ํ์์ ์ง์ํฉ๋๋ค. sort_keys;
- ๋งค๊ฐ๋ณ์ ํจ์๋ก์์ ํ๋ tbl_extend ๋ฐ tbl_deep_extend์ โโ๊ฒฝ์ฐ;
- ์ ๋ชจ๋ vim._async.
์ง๋จ:
- ์ง๋จ ์ํ ั ์ฌ์ฉ์ ์ง์ ์์ ะธ ์กฐ๋ช ;
- ํํฐ ํ์ฑํ๋จ, ํ์ ์ต์ setloclist/setqflist์ ๊ฒฝ์ฐ;
- ์ ํ ์ ์ฝ๋ฐฑ;
- ๊ด๋ จ ์ ๋ณด๋ก ์ด๋ open_float์์;
- ํ์ด๋ผ์ดํธ ์ค๋ฒ๋ ์ด ์ง๋จ ๋ถํ์ ๋ฐ ์ง๋จ ์ฌ์ฉ ์ค๋จ.
๋๋ฌด ์์ ์์ ์๋ ์ฌ๋:
- ๋งํฌ๋ค์ด ๊ฐ์กฐ ํ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.;
- ์ ์ง์ ์ ํ Treesitter๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ:
- :๋ฒฝ ++p ๊ฐ ๋ฒํผ์ ๋ํ ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
- exrc ์์ ๋๋ ํฐ๋ฆฌ์์ ๊ตฌ์ฑ ํ์ผ์ ๊ฒ์ํฉ๋๋ค. ั ํ์ ํ์ธ ์ ์ฐจ: trust;
- :source๋ Lua ๋ธ๋ก๊ณผ Treesitter ์ฃผ์ ์ ์ํํ ์ ์์ต๋๋ค.;
- nvim_open_tabpage โ ํญ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์์ฑํ๊ธฐ ์ํ API;
- ์ ๋ฐ์ดํธ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ nvim_set_hl ๋ค๋ฅธ ์์ฑ์ ๋ฎ์ด์ฐ์ง ์๊ณ ๊ฐ๋ณ ๊ฐ์กฐ ํ์ ์์ฑ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
- ์คํ์ผ ์ผ์: XNUMX๋ XNUMX์ XNUMX์ผ ํ์์ผ XNUMX:XNUMXpm - XNUMX:XNUMXpm ์ฅ์: ์ฌ์๋ ํ์ด๋ชฌํธ ์ฐ๋ฐฐ์๋ ์์ธ ํธํ XNUMXF ์์๋ ์์ค ๋ฃธ [์ฝ๋] ํ์ฌ ๋ฌธ์: info.korea@rescale.com ะธ ์ฌ์ฉ์ ์ ์ ๊ธฐํธ ์ฐฝ ํ ๋๋ฆฌ์์;
- ์ง์ ํ๋กํ ์ฐฝ์ ์ํ ํ์์ค;
- .nvimlog ํ์ผ ์ด๋ฆ์ nvim.log๋ก ๋ณ๊ฒฝ;
- ํ์ฑ ํญ ์ ์ง ๋ฐฑ๋ผ์ดํธ ๋จํธ์ ์ผ๋ก;
- ๋ด์ฅ ๋ฐํ์ ์ธ๋ํธ๋ฆฌ;
- ์ํ ํ=false ๊ธฐ๋ณธ์ ์ผ๋ก;
- ์ฃผ๋ฌธ ํ์ผ stdpath์ ์ ์ฅ๋ ๋ฐ์ดํฐ;
- ๊ฒ์ ๊ฒฐ๊ณผ ์ต๋ ๊ฐ์๊ฐ 999๊ฐ๋ก ๋์ด๋ฌ์ต๋๋ค.;
- SSH ๊ตฌ์ฑ ํ์;
- ๋๊ธฐํ๋ ์ถ๋ ฅ ํฐ๋ฏธ๋์์ (๋ชจ๋ 2026);
- ๋จ๋ง๊ธฐ ์ข ๋ฃ ์ฝ๋๋ฅผ ํ์ํฉ๋๋ค. ๊ฐ์ ๋ฌธ์๋ฅผ ํตํด.
๋ค์ค๋น 0.12.1:
์์ ๋ฆด๋ฆฌ์ค 2026๋ 4์ 6์ผ, 26๊ฐ์ ๋ฒ๊ทธ ์์ ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ ํ๋(:restart)๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ๋ชจ๋ UI๋ฅผ ๋ค์ ์ฐ๊ฒฐํฉ๋๋ค์ค์ํ ๊ฐ์ ์ฌํญ ์ค์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์์ต๋๋ค.
- :์ฌ์์: ์ ๋์ค์์์ stderr ์์, ์ฌ๋ฐ๋ฅธ ์ฒ๋ฆฌ โํค๋๋ฆฌ์ค;
- LSP: codeLens ์๋ก๊ณ ์นจ ๋ฐ๋ณต ์์ฒญ, ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ค๋ํซ, ๋ฌธ์ ์์ ๋ฒ์ ์ฌ์ค์ ;
- ui2: ํธ์ถ๊ธฐ์ ์ ์ํ ๋ ๊น๋นก๊ฑฐ๋ฆผ, ์๋ชป๋ ๋ฒํผ ์ฐธ์กฐ, ์ ์ถ ํ์๊ธฐ ์ ๋ฐ์ดํธ;
- ๋๋ฌด ์์ ์์ ์๋ ์ฌ๋: ๋ ธ๋ ๋์ ์ ๋์ฝ๋ ๋ฌธ์๊ฐ ํฌํจ๋ ์ ํ;
- vim.net: tar/zip์ ํตํด ์์ถ๋ URL์ ์ฒ๋ฆฌํฉ๋๋ค.;
- vim.pack: uv.available_parallelism์ ์ฌ์ฉํฉ๋๋ค. ์ค๋ ๋ ์๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด;
- Vim ๋ณด์ ํจ์น: ๋ชจ๋ธ๋ผ์ธ์ ํตํด ๋ณด์ ๋ชจ๋ธ์ ์ฐํํ๋ ๊ฒ, zip.vim ๊ฒฝ๋ก ํ์;
- vim.pos ์ต์ ํ: ๋ชจ๋ ์ค์ ๋ก๋ํ๋ ๋์ nvim_buf_line_count๋ฅผ ์ฌ์ฉํฉ๋๋ค..
์ถ์ฒ : linux.org.ru
