Zig + Nvim ์„ค์ •

last updated: {{ โ€œ1710903265โ€ | date: โ€œ%Y-%m-%d %H:%Mโ€ }} Intro neovim์—์„œ zig ์„ค์ • ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค. Install on Alpine ์„ค์น˜ํ•˜๊ธฐ $ doas apk add zig zls neovim $ nvim ~/.local/nvim/init.lua require 'lspconfig'.zls.setup{} ๋‹ค๋ฅธ ์–ด๋–ค ์–ธ์–ด๋ณด๋‹ค๋„ ์„ค์ •์ด ๊ฐ„๋‹จํ•˜๋‹ค. zls๋Š” zig language server lspconfig๋Š” neovim์— ๋‚ด์žฅ๋œ LSP ์„ค์ •์„ ๋งํ•œ๋‹ค. nvim ์„ค์ • ํ›„ zigํŒŒ์ผ์„ ์—ด๊ณ  ์ฝ”๋”ฉํ•˜๋ฉด ๋„์›€๋ง์ด ๋‚˜ํƒ€๋‚œ๋‹ค. tab์œผ๋กœ ์ด๋™ํ•˜๊ณ  Enter๋กœ ์„ ํƒํ•œ๋‹ค. Install zls from Source ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ตœ์‹  ๋ฒ„์ „์˜ zig(ํ˜„์žฌ 0.12)์ด์–ด์•ผ git ์†Œ์Šค๋กœ ์ปดํŒŒ์ผ ๋œ๋‹ค. zig ์ตœ์‹  ๋ฒ„์ „์€ zig ํ™ˆ์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ๋นŒ๋“œํ•œ๋‹ค. $ git clone https://github.com/zigtools/zls $ cd zls $ zig build -Doptimize=ReleaseSafe $ mkdir ~/bin && cp zig-out/bin/zls ~/bin $ echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile $ source ~/.bash_profile $ zls --version Links Neovim setup for Zig https://terminalprogrammer.com/neovim-setup-for-zig

2024-03-12 ยท 121 words

nvim-scp - nvim์œผ๋กœ ์›๊ฒฉ ํŒŒ์ผ ํŽธ์ง‘

Intro ์›๊ฒฉ์ง€์— ์ง์ ‘ ๋กœ๊ทธ์ธํ•ด์„œ ํŽธ์ง‘ํ•  ๊ฒฝ์šฐ ๊ทธ ๊ณณ์˜ vim ๋˜๋Š” nvim ์„ ์„ค์น˜, ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํŽธํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํžˆ ์ˆ˜์ •ํ•˜๋Š” ์ •๋„๋ฉด ๊ธฐ๋ณธ์ ์ธ vi ์ •๋„๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๊ฒƒ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ข€ ๋” ์ž์„ธํ•œ ์ˆ˜์ • ๋˜๋Š” ์ฝ”๋”ฉ์„ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋ถˆํŽธํ•˜๋‹ค. ๋กœ์ปฌ์—์„œ ์ž์‹ ์ด ์„ค์ •ํ•ด ๋†“์€ (n)vim์œผ๋กœ ์›๊ฒฉ์ง€ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ์‰ฌ์šด ๋ฐฉ๋ฒ•์ด๋‹ค. ์กฐ์‚ฌํ•œ ๊ฒฐ๊ณผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ๋งŽ์€๋ฐ scp๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณต์žกํ•˜์ง€ ์•Š๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์“ฐ๊ธฐ ์ข‹๋‹ค. ๊ทธ ๋ฐ–์˜ ๋ฐฉ๋ฒ•์œผ๋กœ nvim server/client mode๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, rsync, tmux, distant.nvim ๋“ฑ์ด ์žˆ๋‹ค. Howto ๋จผ์ € ๋กœ์ปฌ์— ssh, scp ๋“ฑ์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋‹น์—ฐํžˆ ๋กœ์ปฌ์— ์ž์‹ ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์„ค์น˜ ์„ค์ •๋œ (n)vim๋„ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์›๊ฒฉ์ง€์— ssh๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ๋„ ํ•„์š”ํ•˜๋‹ค. ssh์›๊ฒฉ๋กœ๊ทธ์ธ์„ ํ‚ค์ธ์ฆ์œผ๋กœ ํ•ด ๋†“์œผ๋ฉด ๋”์šฑ ํŽธ๋ฆฌํ•˜๋‹ค. (ssh-keygen์œผ๋กœ ์ƒ์„ฑ, local:id_rsa.pub -> remmote:authorized_keys ์ถ”๊ฐ€) $ vim scp://user@server-name[:port]//path-to-file.txt ๋˜๋Š” (n)vim์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ...

2023-09-07 ยท (updated 2023-09-08) ยท 164 words

Comment.nvim - nvim ์ฃผ์„์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ

Intro ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์—์„œ ๊ฐ ์–ธ์–ด๋ณ„ ์ฃผ์„์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ จ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ค‘์— ๊ฐ€์žฅ ์ธ๊ธฐ๊ฐ€ ๋งŽ๊ณ  ์‚ฌ์šฉ์ด ํŽธ๋ฆฌํ•˜๋‹ค. Features Supports treesitter. Supports commentstring. Read :h comment.commentstring Supports line (//) and block (/* */) comments Dot (.) repeat support for gcc, gbc and friends Count support for [count]gcc and [count]gbc Left-right (gcw gc$) and Up-Down (gc2j gc4k) motions Use with text-objects (gci{ gbat) Supports pre and post hooks Ignore certain lines, powered by Lua regex Install With packer.nvim use { 'numToStr/Comment.nvim', config = function() require('Comment').setup() end } Manual Install $ cd ~/.local/share/nvim/site $ git clone https://github.com/numToStr/Comment.nvim $ cp Comment.nvim/plugin/Comment.lua plugin/ $ cp -r Comment.nvim/lua/Comment lua/ $ vi ~/.config/nvim/init.lua ... lua require('Comment').setup() :so % REFERNCE Comment.nvim Github: https://github.com/numToStr/Comment.nvim

2023-08-10 ยท 119 words

nvim ๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋Šฅ๋“ค

Intro ์ด๋ฌธ์„œ๋Š” ํ˜„์žฌ ์ตœ์‹  ๋ฒ„์ „ nvim 0.8.1์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ๋‹ค. nvim์˜ ๊ธฐ๋ณธ ๋‚ด์žฅ ๊ธฐ๋Šฅ์œผ๋กœ๋„ ๋งค์šฐ ํ›Œ๋ฅญํ•œ ๋งŽ์€ ๊ฒƒ๋“ค์ด ์ œ๊ณต๋œ๋‹ค. ์ค‘์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋œ ๊ฒƒ๋“ค๋„ ๋งŽ๋‹ค. ์ค‘๋ณต๋˜๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋งŽ์ด ์„ค์น˜ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋Šฅ์„ ์ถฉ๋ถ„ํžˆ ์‚ดํŽด๋ณด๊ณ  ๊ฐ€๋ณ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๋“ฏ. Features lsp(Language Server Protocol) ๋‚ด์žฅ treesitter ๋‚ด์žฅ ๋งจํŽ˜์ด์ง€์™€ ํ„ฐ๋ฏธ๋„์—๋ฎฌ๋ ˆ์ดํ„ฐ: :Man, :terminal vim๊ณผ ์ฐจ์ด ๋น„๊ต: :help nvim-from-vim ํ›Œ๋ฅญํ•œ defaults ๊ธฐ๋Šฅ๋“ค(์•„๋ž˜ Defaults ์„น์…˜ ์ฐธ์กฐ) Defaults help๋กœ ํ™•์ธ :help defaults command-line highlighting commands: :checkhealth nvim์˜ ์ƒํƒœ ๊ฒ€์‚ฌ :dr[op] {file} Edit the first {file} in a window :Man {name} manpage view :match can be invoked before highlight group is defined :source reset config works with lua :write with ++p flag creates parent directories :terminal terminal support ๋งจํŽ˜์ด์ง€ ๋ณด๊ธฐ - man.lua๋กœ ๋™์ž‘ํ•œ๋‹ค. :Man printf printf() ํ•จ์ˆ˜ ๋งจํŽ˜์ด์ง€ ๋ณด๊ธฐ(์ˆ˜ํ‰) :vertical Man printf ์ฐฝ ์ˆ˜์ง๋ถ„ํ•  ๋ณด๊ธฐ :Man {sect} {name} ์„น์…˜ ์ง€์ • ๋งจํŽ˜์ด์ง€ :help Man ๊ด€๋ จ ๋„์›€๋ง ๋ณด๊ธฐ Links neovim.io https://neovim.io/

2022-12-17 ยท 143 words

lua-dev.nvim - nvim์—์„œ lua ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ

Intro lua๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ ํ•จ์ˆ˜๋‚˜ ์ž๋™์™„์„ฑ์„ ๋„์™€์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‹ค. nvim์˜ lua ๋‚ด์žฅํ•จ์ˆ˜ ๋ฐ api๋„ ์ง€์›ํ•œ๋‹ค. ๋‹ค๋ฅธ lsp ์„œ๋ฒ„์˜ ์„ค์น˜์™€ ์„ค์ •๋ณด๋‹ค ์–ด๋ ค์›Œ์„œ ๋งŽ์ด ๊ณ ์ƒํ–ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ lua-language-server๋ฅผ ์ œ๋Œ€๋กœ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์„œ๋ฒ„๋ฅผ ์ปดํŒŒ์ผ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด ๋ฐ›์•„ ์“ฐ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. Requirements nvim-cmp :์ž๋™์™„์„ฑ ํ”Œ๋Ÿฌ๊ทธ์ธ nvim-lsp :Language Server Protocol ํ”Œ๋Ÿฌ๊ทธ์ธ cmp-nvim-lsp : lsp ์ž๋™์™„์„ฑ ์ง€์› ํ”Œ๋Ÿฌ๊ทธ์ธ sumneko lua-language-server : Lua lsp server ํ”„๋กœ๊ทธ๋žจ (lua 5.1 ~ 5.4, luaJit ๋ชจ๋‘ ์ง€์›) lua-language-server Install ์•„๋ž˜์—์„œ ์ปดํŒŒ์ผ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋‹ค์šด๋กœ๋“œ (๋ฆฌ๋ˆ…์Šค 64bit๊ธฐ์ค€) https://github.com/sumneko/lua-language-server/releases ์ ๋‹นํ•œ ์œ„์น˜์— ์„ค์น˜ $ mkdir ~/data/lua-language-server && cd lua-language-server $ tar xvfz ~/Download/lua-language-server-3.5.5.tar.gz . $ cat <<EOF > ~/bin/lua-language-server # ์‹คํ–‰์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ #!/usr/bin/bash exec "~/data/lua-language-server/bin/lua-language-server" "$@" EOF $ chmod u+x ~/bin/lua-language-server # ~/bin ์ด PATH์— ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ $ lua-language-server --version # ์—๋Ÿฌ ์—†์ด ๋ฒ„์ „์ด ์ถœ๋ ฅ๋˜๋ฉด ์„ฑ๊ณต lua-dev Install ๋จผ์ € nvim-cmp nvim-lsp, cmp-nvim-lsp๊ฐ€ ์„ค์น˜ ๋ฐ ์„ค์ •๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ...

2022-09-12 ยท (updated 2022-10-31) ยท 245 words