- NeoVim์์ ์ญ์ ํ๊ธฐ(์๋ชป ์ค์นํ์๋ ์์ ํ neovim์ง์ฐ๊ธฐ)
- ์์ฆ-์ฐ๋-lspinlayhint-color-setting & clangd inlayhint ํ์ฑํํ๊ธฐon
- ๋ผ์ธ-fold-unfold-์ ๊ธฐ--๋ซ๊ธฐ--์ ์ฒด-์ด๊ธฐ-์ ์ฒด-๋ซ๊ธฐlink
- rustsnippet๊ธฐ๋ณธ-์์น
- rust-snippets-์ ๋ฆฌ์ค
- ํ๋ฌ๊ทธ์ธ๋งค๋์ packer์ค์นํ๊ธฐPackerInstall์ค์น _ ์ญ์ ๋ PackerClean_์ ๋ฐ์ดํธ๋PackerSync
- hack-nerd-mono-font-์ค์น
- Tabby AI์ค์นํ๊ธฐ_Self-hosted AI coding assistant
- ๋ค์ค๋น-ํ๋ฌ๊ทธ์ธ-์ ๋ฆฌneovim-plugins
- ๋ด๊ฐ ์ธํ ํ ํค์ธํ keymap
- ๋๋ง์ ํ ๋ง๋ก ๋ณ๊ฒฝํ๊ธฐ_/lua/theme.lua
- ํ๋ฆฐ ๊ธ์ง ์๋์ผ๋ก ์ฐพ๊ธฐ ์๋ฌธ ์คํ ์ฒดํฌEng.(spell-check)
- LSP Settings(์ธ์ด๋ณ ์๋์์ฑ๋์ค๊ฒ ํ๊ธฐ)
- ๋ด LunarVim_Setting๋ฃจ๋๋น Setting
- ํด๊ฒฐํด์ผํ ๊ฒ_์ ๋ฆฌ_ํด๊ฒฐํ๊ฑฐ๋-ํด๊ฒฐ-๋ชปํ๊ฑฐ
- Deprecated ๋ฒ์ ผ์ ๋๋ฉด ํด๊ฒฐํด์ผํจ
- source-์ธ๊ตญ๋ถ-git์์-๋๋ถ๋ถ-๊ฐ์ ธ์ด
- ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ ๋ฉ์ง neovim์ธํ
rust_dev_neovide_LunarVimSetting(My Setting)_GY_Version|๐|
- ๋ฃจ๋๋น ์ธํ ์ต์ข (lvim)
- https://github.com/YoungHaKim7/lvim_Rust_AI_Setting
- LunarVim ์ธํ ๊ฐ์(์์ ์ฒ์๋ถํฐ)002๊ฐ๊ณ ์ํ๋ฉด์ ๋ฐฐ์ฐ๋ Rust_Basic(LunarVim, Helix, VSCode Zellij)
Neovide Setting(๋ฌ์คํธ๋ก ๋ง๋ ๊ฑฐ ๊ฒ๋๊ฒ ๋น ๋ฅด๋ค.)|๐|
-- Hack Nerd Font ์ธํ
์ ๊ธ์จ ํฌ๊ธฐ 25
:set guifont=Hack\ Nerd\ Font:h25
-- ์ปค์ ์ ๋๋งค์ด์
์์ ๋๊ฑฐ 0 ๊ฐ๋จํ๋ค ใ
. ๊ผด๋ ๋ณด๊ธฐ๋ ์ซ๋ค.
let g:neovide_cursor_animation_length = 0
-- scroll์ ์ ์ ๋๋งค์ด์
๋ฃ๋๊ฑฐ์ผ ๋๋ฆฌ๊ฒ ...
let g:neovide_scroll_animation_length = 0
-- ํ์ดํ ์น๋ฉด ๋ง์ฐ์ค ์์์ ์จ๊ฒจ์ค ๊ตฟ..
vim.g.neovide_hide_mouse_when_typing = true
-- ์์ฆ ์ฐ๋ ์ 241103(InlayHint์๊น ์ธํ
)
:hi LspInlayHint guifg=#35638f guibg=#420517
-- Remember Previous Window Size
-- VimScript:
let g:neovide_remember_window_size = v:true
-
nv . --size 2930x1300
- ์คํํ ๋ ์ฐฝํฌ๊ธฐ ์ง์ ๋จ ์ถ์ฒ : neovide/neovide#1636
- ์ถ์ฒ2 neovide/neovide#1706
-
๋๋ฅด๊ธฐ ๊ท์ฐฎ์์ ์ ๋๋งค์ด์ false์ธํ settings.lua์ ๋ฃ์ด์ค
-- neovide setting
vim.g.neovide_scroll_animation_length = 0
vim.g.neovide_cursor_animation_length = 0
vim.g.neovide_remember_window_size = true
vim.o.guifont = "Hack Nerd Font:h30"
["/home/gy/.config/neovide"]
ERROR [neovide::settings::config] Could not watch config file, chances are it just doesn't exist: No such file or directory (os error 2) about ["/home/gy/.config/neovide"]
NeoVim์์ ์ญ์ ํ๊ธฐ(์๋ชป ์ค์นํ์๋ ์์ ํ neovim์ง์ฐ๊ธฐ)|๐|
// ์ฒ์์ค์น๋ก ๋ง๋ค๊ธฐ & ์ธํ
ํ๋ค๊ฐ ์์ด๋๋ฉด ์บ์ฌ์ญ์ ํด์ฃผ๊ธฐ
// ๋ฐฑ์
mkdir ~/backup_nvim
cp -r ~/.config/nvim ~/backup_nvim
cp -r ~/.local/share/nvim ~/backup_nvim
cp -r ~/.cache/nvim ~/backup_nvim
// ์บ์ฌ์ญ์
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim
Dash๋ ๋งฅ์ฉ์ ์ ๋ฃ์ฑ(1๋ ์ ๊ธฐ ๊ตฌ๋ ์ผ๋ก ์ ๋ฃ์ ใ ใ )|๐|
๋ฌด๋ฃ๋ DevDocs ์น์ฉ์ด ์์|๐|
-
Zeal is an offline documentation browser for software developers.
Windows NeoVim ์ค์น๋ ์ด๊ฒ ์ข๋ค.|๐|
RustSnippet๊ธฐ๋ณธ ์์น|๐|
-
๋ด๊บผ ์ ๋ฆฌ https://github.com/YoungHaKim7/rust_vim_setting/tree/main/01_Vim_NeoVim_etc_Rust_settings/snippets_Lunar_NeoVim
-
:VsnipOpen
-
global.json์์น(~/.vsnip/global.json)
-
rust.json์์น(~/.vsnip/rust.json)
~/.vsnip at 19:17:08
โฏ tree
.
โโโ global.json
โโโ rust.json
0 directories, 2 files
Rust Snippets ์ ๋ฆฌ์ค|๐|
-
Rust Snippets.json
์ฌ๊ธฐ์ ์ ๋ฆฌ ์ค -
Rust Code Snippets๊ด๋ จ ์๋ฃ(์ธ๊ตญ์ฌ๋์ด Rust Snippets 10๋ ์ ์๋ฃ๋ผ ์์ ํด์ ์จ์ผํจ)
- Rust๊ณ ์์ snippets์ ๋ฆฌ
์์ฆ ์ฐ๋ LspInlayHint Color Setting|๐|
- inlayhint ์๊น hex color (LunarVim Inlayhint Color Settings)
// ์์ฆ ์ฐ๋ ์ 240106
:hi LspInlayHint guifg=#35638f guibg=#420517
:hi Comment guifg=#35638f guibg=#420517
// ๋ฐฐ๊ฒฝ์ ์ด๋์ด ๋นจ๊ฐ์ / ๊ธ์จ๋ ์ฝ๊ฐ ๋ฐ์ ์
:hi Comment guifg=#8aaecf guibg=#4e1a1a
Clangd_extension ์ถ๊ฐ ๊ธฐ๋ฅ&Clangd_InlayHint ํ์ฑํ|๐|
- clangd inlayhintsetting๋ก๋ ํ๋ฉด ๊ธ์จ ์ ์ ํด์ค์ผํจ. ์๋์ผ๋ก ์๋๋ค ใ ใ
:lua require("clangd_extensions.inlay_hints").set_inlay_hints()
-
neovim 0.10๋ฒ์ ผ ์ด์์ด์ฌ์ผ ํ๋?
-
:ClangdAST
to view the ast with the current line as the range
:ClangdAST
https://github.com/p00f/clangd_extensions.nvim
:ClangdSymbolInfo
with the cursor at the desired symbol.
:ClangdSymbolInfo
:ClangdTypeHierarchy
with the cursor over the desired type or a symbol of that type.gd
with the cursor over a type in a window to go to its definition.
:ClangdTypeHierarchy
:ClangdMemoryUsage
. Preamble can be large so it is collapsed by default, to expand it use:ClangdMemoryUsage expand_preamble
:ClangdMemoryUsage
:ClangdMemoryUsage expand_preamble
Inlay-hints์ธํ (๋ค๋ฅธ์ธ์ด๋ค๊น์ง ๋ชจ๋Java,Kotlin)|๐|
-
NeoVim๊ณต์ inlayhint์ธํ
- neovim/neovim#23426
- ์ฌ๊ธฐ๋ฅผ ์ง์ค์ ์ผ๋ก ๋ถ์ํด์ผํจ
-
Reddit๊ธ
๋ผ์ธ fold unfold ์ ๊ธฐ / ๋ซ๊ธฐ / ์ ์ฒด ์ด๊ธฐ/ ์ ์ฒด ๋ซ๊ธฐ|๐|
-
zR
์ ํ๊ฑฐ ๋ค ์ด๊ธฐOpen -
zM
์ด๋ฆฐ๊ฑฐ ๋ค (์ ๊ธฐ)๋ซ๊ธฐClose -
zo
์ง๊ธ ์ค๋ง (์ ๊ธฐ)์ด๊ธฐOpen -
zc
์ด๋ฆฐ๊ฑฐ_(๋ซ๊ธฐ)Close -
zf ๋ช ๋ น์ด๋ ๋ฌด์์ผ๊น? ๊ธฐ๋ณธ์ ์ผ๋ก z ๋ช ๋ น์ด๋ ์ธ๊ฐ์ง๊ฐ ์๋ค. ๋ง๋ค๊ธฐ, ์ด๊ธฐ, ๋ซ๊ธฐ
-
์ผ๋จ fold๋ฅผ ํ ๋ฒ ๋ง๋ค์ด ๋์ผ๋ฉด zo, zc๋ก ์ฌ๋ซ์ ์ ์๋ค.
zf "F-old ๋ง๋ค๊ธฐ (๋ง๋ค๋ฉด์ ์๋์ผ๋ก ๋ซ๋๋ค)
zo "O-pen fold (์ด๊ธฐ)
zc "C-lose fold (๋ซ๊ธฐ)
https://seulcode.tistory.com/488
Hack Nerd Mono Font ์ค์น|๐|
Tabby AI ์ค์น|๐|
-
https://tabby.tabbyml.com/docs/extensions/installation/vim#-packernvim
-
AI Models
-
Install(Nvidia Docker์ค์น์ ์ฌ์ ์ค์น ํ์) https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
-
lua packer ์ธํ (test ์์ )
--- Tabby AI plugin
use {
"TabbyML/vim-tabby",
-- lazy = false,
requires = {
"neovim/nvim-lspconfig",
},
config = function()
vim.g.tabby_agent_start_command = {"npx", "tabby-agent", "--stdio"}
vim.g.tabby_inline_completion_trigger = "auto"
end,
},
-
macOS
tabby serve --device metal --model TabbyML/StarCoder-3B /opt/homebrew/opt/tabby/bin/tabby serve --device metal --model StarCoder-3B
- service on/off
brew services start tabbyml/tabby/tabby brew services stop tabbyml/tabby/tabby
-
windows
.\tabby_x86_64-windows-msvc-cuda117.exe serve --model StarCoder-3B --device cuda
-
LinuxOS(Ubuntu24.04)
-
- apt install
-
sudo apt-get update
sudo apt-get install libssl-dev
# For Ubuntu / Debian
apt-get install protobuf-compiler libopenblas-dev
# cuda ์
๋ฐ์ดํธ 3d(Nvidia๊ธฐ์ค)
sudo apt install nvidia-cuda-toolkit
git clone --recurse-submodules https://github.com/TabbyML/tabby
cd tabby
-
LinuxOS(Ubuntu24.04)
-
- Configure the repository:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey |sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
&& sudo apt-get update
-
- Install the NVIDIA Container Toolkit packages:
sudo apt-get install -y nvidia-container-toolkit
- 3.Configure the container runtime by using the nvidia-ctk command:
sudo nvidia-ctk runtime configure --runtime=docker
-
- Restart the Docker daemon:
sudo systemctl restart docker
- tabby (Docker Install)
sudo docker run -it --gpus all -p 8080:8080 -v $HOME/.tabby:/data \
tabbyml/tabby \
serve --model TabbyML/StarCoder-3B --device cuda
- token setting
$ ~/.tabby-client
โฏ eza --icons -TL2
๎ฟ .
โโโ ๎ฟ agent
โโโ ๎ config.toml
โโโ ๎ data.json
- config.toml
## Tabby agent configuration file
## Online documentation: https://tabby.tabbyml.com/docs/extensions/configurations
## You can uncomment and edit the values below to change the default settings.
## Configurations in this file have lower priority than the IDE settings.
## Server
## You can set the server endpoint here and an optional authentication token if required.
[server]
endpoint = "http://localhost:8080" # http or https URL
token = "Input My token" # if token is set, request header Authorization = "Bearer $token" will be added automatically
## You can add custom request headers.
# [server.requestHeaders]
# Header1 = "Value1" # list your custom headers here
# Header2 = "Value2" # values can be strings, numbers or booleans
## Logs
## You can set the log level here. The log file is located at ~/.tabby-client/agent/logs/.
# [logs]
# level = "silent" # "silent" or "error" or "debug"
## Anonymous usage tracking
## Tabby collects anonymous usage data and sends it to the Tabby team to help improve our products.
## Your code, generated completions, or any sensitive information is never tracked or sent.
## For more details on data collection, see https://tabby.tabbyml.com/docs/extensions/configurations#usage-collection
## Your contribution is greatly appreciated. However, if you prefer not to participate, you can disable anonymous usage tracking here.
# [anonymousUsageTracking]
# disable = false # set to true to disable
http://localhost:8080/
ํฌ๋กฌ์ด๋ ํ์ด์ดํญ์ค ๋ธ๋ผ์ฐ์ ธ์์ ์ฃผ์์ฐฝ์ ์น๋ฉด DashBoard๋์จ๋ค.
copilot (disable)ํ๋๋ฒ|๐|
-
NeoVim Default Key๋
C-i
์ด๋ป๊ฒ ๋ณ๊ฒฝํ๋์ง ๋ชป์ฐพ์ ๊ทธ๋ฅC-i
๋๋ฅด๋ ๊ฑธ๋ก.. -
**(Install)**Neovim, Linux/macOS:
git clone https://github.com/github/copilot.vim.git \
~/.config/nvim/pack/github/start/copilot.vim
vim.api.nvim_set_keymap('i', '<C-b>', 'copilot#Accept()', true)
:Copilot disable Globally disable GitHub Copilot inline suggestions.
*:Copilot_enable*
:Copilot enable Re-enable GitHub Copilot after :Copilot disable.
*:Copilot_setup*
:Copilot setup Authenticate and enable GitHub Copilot.
*:Copilot_signout*
:Copilot signout Sign out of GitHub Copilot.
*:Copilot_status*
:Copilot status Check if GitHub Copilot is operational for the current
buffer and report on any issues.
*:Copilot_panel*
:Copilot panel Open a window with up to 10 completions for the
current buffer. Use <CR> to accept a completion.
Maps are also provided for [[ and ]] to jump from
completion to completion. This is the default command
if :Copilot is called without an argument.
*:Copilot_version*
:Copilot version Show version information.
*:Copilot_feedback*
:Copilot feedback Open the website for providing GitHub Copilot
feedback. Be sure to include |:Copilot_version|
output when reporting a bug.
๋ค์ค๋น ํ๋ฌ๊ทธ์ธ ์ ๋ฆฌ(NeoVim Plugins|๐|
-
๋ฌด์ง๊ฒ ์ ๊ดํธ(Rainbow_Parentheses)
~/.local/share/nvim/site/pack/packer/start # ๊ฐ์ ๋ก ์ค์น git clone https://github.com/HiPhish/rainbow-delimiters.nvim
- ๋ป์ผ๋ฉด ํ ์คํธ ์์
require('rainbow-delimiters.setup').setup{}
-
๋ฌด์ง๊ฐ์ ํญ ์ข๋ค ใ
-
(์ค๋ฅ๋๊ฑฐ ๋ฆฌ์คํธ๋ก ์ถ๋ ฅ ๊ตฟ)๐ฆ A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.
-
(ctag ๊ฐ์๊ฑฐ)A tree like view for symbols in Neovim using the Language Server Protocol. Supports all your favourite languages.
-
(ํฐ๋ฏธ๋์ฐฝ ๊ณต์ค์ ๋์ฐ๊ธฐ ๊ตฟ)A neovim lua plugin to help easily manage multiple terminal windows
:ToggleTerm direction=float
-
UnicodeTable ์ถ๊ฐ๋ง ํ๋ฉด ๊ทธ๋ฅ ๋(:UnicodeTable)
-- :UnicodeTable - Print Unicode Table in new window "chrisbra/unicode.vim",
-
- ํน์ ์ค๋ฅ ๋๋ฉด ๊ฐ์ ๋ก ์ค์น
/.local/share/nvim/site/pack/packer/start # ๊ฐ์ ๋ก ์ค์น git clone https://github.com/nvim-neotest/nvim-nio
-
C์ธ์ด ์๋์ ๋ ฌ
sudo apt update
apt search clang-format
- vim์์ ์ฌ์ฉ๋ฒ(์ค์นํ) command์ฐฝ์ ์ ๋ ฅํ๋ฉด ๋จ
:%!clang-format
:%!clang-format
Themeํ ๋ง ๋ณ๊ฒฝํ๊ธฐ|๐|
- ./lua/theme.lua
-- vim.cmd("colorscheme OceanicNext")
-- vim.cmd("colorscheme gruvbox")
-- vim.cmd("colorscheme dracura")
-- vim.cmd("colorscheme habamax")
vim.cmd("colorscheme tokyonight-night")
- dracula https://github.com/Mofiqul/dracula.nvim
- tokyonight https://github.com/folke/tokyonight.nvim
- oceanic-next https://github.com/roflolilolmao/oceanic-next.nvim
Keymap|๐|
vim.g.mapleader = " "
-- Disable Ctrl +Z
nnoremap("<C-z>", [[<nop>]])
-- Quick Replace of Word
-- nnoremap("S", [[:%s//g<Left><Left>]])
nnoremap("<leader>rnn", [[:%s//gc<Left><Left><Left>]])
nnoremap(",<leader>", [[:set hlsearch!<CR>]])
-- SymbolOutline
nnoremap("<leader>o", ":SymbolsOutline<CR>")
-- TroubleToggle
nnoremap("<leader>t", ":TroubleToggle<CR>")
nnoremap("<leader>e", ":NvimTreeToggle<CR>")
-- buffer bn bn
nnoremap("H", ":bp<CR>")
nnoremap("L", ":bn<CR>")
-- Disable Q
-- nnoremap([[<silent> Q]], [[nop]])
-- (vs, sp ์ด๊ฑฐ ํ์๋)์ง๊ธ ์ฐฝ์ ํฐ์ฐฝ์ผ๋ก ๋ง๋ค๊ธฐ only
nnoremap("<leader>bo", ":on<CR>")
-- Better tabbing
vnoremap("<", "<gv")
vnoremap(">", ">gv")
-- Terminal(Toggleterm)
nnoremap("<C-t>t", ":ToggleTerm direction=float<CR>")
nnoremap("<C-t>tv", ":ToggleTerm direction=vertical<CR>")
-- MoveLine Up & Down
vnoremap("J", ":m '>+1<CR>gv=gv")
vnoremap("K", ":m '<-2<CR>gv=gv")
-- Map Ctrl-W to delete the previous word in insert mode.
inoremap("<C-w>", "<C-\\><C-o>dB")
inoremap("jk", "<esc>")
-- Esc and Clear Highligh
nnoremap("<esc>", ":noh<return><esc>")
-- Yank Whole Line(:%y ์ ์ฒด๋ณต์ฌ , ์ ์ฒด ์ง์ฐ๊ธฐ :%d)
nnoremap("Y", "y$<CR>")
-- Buffer
nnoremap([[<leader>bt]],[[:tabnew<cr>]])
nnoremap([[<leader>btt]],[[:terminal<cr>]])
nnoremap([[,qt]],[[:tabonly<cr>]])
nnoremap([[<leader>q]],[[:tabclose<cr>]])
-- Previous
nnoremap([[bp]], [[:bprevious<CR>]])
-- Next
nnoremap([[bn]], [[:bnext<CR>]])
-- List
nnoremap([[bl]], [[:ls<CR>]])
-- Delete
nnoremap([[bd]], [[:bp <BAR> bd #<CR>]])
-- Delete all buffers except Currenly Open
nnoremap([[bq]],[[:w <bar> %bd <bar> e# <bar> bd# <CR>]])
-- TAB in normal mode will move to text buffer
nnoremap("<TAB>", ":bnext<CR>")
-- SHIFT-TAB will go back
nnoremap("<S-TAB>", ":bprevious<CR>")
-- windows split
nnoremap("vsp", ":vsplit<CR>")
nnoremap("sp", ":split<CR>")
-- Resize Panes with + - or with shift + -
nnoremap("__", ":resize -5<CR>")
nnoremap("++", ":resize +5<CR>")
nnoremap("--", ":vertical resize -5<CR>")
nnoremap("==", ":vertical resize +5<CR>")
-- Crates
nnoremap([[<leader>ct]], [[:lua require('crates').toggle()<cr>]])
nnoremap([[<leader>cr]], [[:lua require('crates').reload()<cr>]])
nnoremap([[<leader>cv]], [[:lua require('crates').show_versions_popup()<cr>]])
nnoremap([[<leader>cf]], [[:lua require('crates').show_features_popup()<cr>]])
nnoremap([[<leader>cu]], [[:lua require('crates').update_crate()<cr>]])
vnoremap([[<leader>cu]], [[:lua require('crates').update_crates()<cr>]])
nnoremap([[<leader>ca]], [[:lua require('crates').update_all_crates()<cr>]])
nnoremap([[<leader>cU]], [[:lua require('crates').upgrade_crate()<cr>]])
vnoremap([[<leader>cU]], [[:lua require('crates').upgrade_crates()<cr>]])
nnoremap([[<leader>cA]], [[:lua require('crates').upgrade_all_crates()<cr>]])
-- cmp๊ด๋ จ
mapping = {
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-u>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<C-y>"] = cmp.mapping.confirm({ select = true }),
["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }),
["<C-n>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }),
["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }),
["<C-p>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }),
},
sources = {
{ name = "nvim_lsp" },
{ name = "vsnip" },
{ name = "buffer" },
{ name = 'path' },
{ name = 'cmdline' }
},
HopChar KeyMap|๐|
gw
๋ helixํค์ ๋๊ฐ์ ใ
nnoremap("<backspace>f", [[:HopChar1<CR>]])
nnoremap("gw", [[:HopChar2<CR>]])
nnoremap("<leader>W", [[:HopWord<CR>]])
Telescope KeyMap|๐|
-- lvim
lvim.keys.normal_mode["<leader><leader>"] = ":Telescope buffers<CR>"
-- nvim setting
nnoremap([[<leader>f]], [[<cmd>Telescope current_buffer_fuzzy_find<CR>]])
nnoremap([[<leader><leader>]], [[<cmd>lua require('telescope.builtin').buffers()<cr>]])
nnoremap("<leader>p", [[:lua require("utils/telescope-config").project_files()<CR>]], true)
nnoremap("<leader>a", ":Telescope lsp_code_actions<CR>", true)
nnoremap("<leader>m", ":Telescope marks<CR>", true)
nnoremap("<leader>i", ":Telescope lsp_implementations<CR>", true)
nnoremap([[<leader>eo]], [[<cmd>lua require('telescope.builtin').oldfiles()<cr>]])
nnoremap([[<leader>S]], [[:Telescope lsp_dynamic_workspace_symbols<CR>]], true)
nnoremap([[<leader>u]], [[:Telescope lsp_references<CR>]], true)
nnoremap([[<leader>s]], [[:Telescope treesitter<CR>]], true)
LSP keymap|๐|
# LSP
-- Default LSP Keybindings
nnoremap("ga", "<cmd>lua vim.lsp.buf.code_action()<CR>", true)
nnoremap("gd", "<cmd>lua vim.lsp.buf.definition()<CR>", true)
nnoremap("gD", "<cmd>lua vim.lsp.buf.declaration()<CR>", true)
nnoremap("gr", "<cmd>lua vim.lsp.buf.references()<CR>", true)
nnoremap("gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", true)
nnoremap("gh", "<cmd>lua vim.lsp.buf.signature_help()<CR>", true)
nnoremap("gs", "<cmd>lua vim.lsp.buf.workspace_symbol()<CR>", true)
nnoremap("go", "<cmd>lua vim.lsp.buf.document_symbol()<CR>", true)
nnoremap("g[", "<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", true)
nnoremap("g]", "<cmd>lua vim.lsp.diagnostic.goto_next()<CR>", true)
nnoremap("<leader>rn", "<cmd>lua vim.lsp.buf.rename()<CR>", true)
nnoremap("<leader>wa", "<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>", true)
nnoremap("<leader>wr", "<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>", true)
nnoremap("<leader>wl", "<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>", true)
-- Quick Way to Trigger Code Action
nnoremap(",,", "<cmd>lua vim.lsp.buf.code_action()<CR>", true)
-- Press Twice to Enter Vim Buffer of the Hover Definition
nnoremap("K", "<cmd>lua vim.lsp.buf.hover()<CR>", true)
-- Trigger Format
Symbol-outline Keymap|๐|
# ๋ชจ๋ ์ ๊ธฐ W / ๋ชจ๋ ํด๊ธฐ E
keymaps = { -- These keymaps can be a string or a table for multiple keys
close = {"<Esc>", "q"},
goto_location = "<Cr>",
focus_location = "o",
hover_symbol = "<C-space>",
toggle_preview = "K",
rename_symbol = "r",
code_actions = "a",
fold = "h",
unfold = "l",
fold_all = "W",
unfold_all = "E",
fold_reset = "R",
},
Tabby Keybinding Accept|๐|
vim.g.tabby_keybinding_accept = '<C-b>'
Spell Check|๐|
- spell check์ ์ถ๊ฐํ๊ธฐ
- ๊ฒฝ๋ก๋ช (.config/nvim/spell/en.utf-8.add)
:spell {word}
-
์๋จ์ด txtํ์ผ๋ก ์ ๊ณตํจ(txt & yml)
-
tree
โฏ tree -L 2
.
โโโ config.toml
โโโ init.lua
โโโ lua
โย ย โโโ autocmd
โย ย โโโ autocmd.lua
โย ย โโโ globals.lua
โย ย โโโ keymaps
โย ย โโโ mappings.lua
โย ย โโโ packages.lua
โย ย โโโ plugins
โย ย โโโ settings.lua
โย ย โโโ theme.lua
โย ย โโโ utils
โย ย โโโ vim_g.lua
โโโ luarc.lua
โโโ plugin
โย ย โโโ packer_compiled.lua
โโโ readme.md
โโโ spell
โย ย โโโ en.utf-8.add
โย ย โโโ en.utf-8.add.spl
โโโ stylua.toml
7 directories, 15 files
packer|๐|
https://github.com/wbthomason/packer.nvim
LSP Setting|๐|
-
- rust-analyzer https://rust-analyzer.github.io/
# rustup # rust-analyzer is available in rustup: $ rustup component add rust-analyzer
- rust-analyzer https://rust-analyzer.github.io/
-
WASM support(Rust)
- install
rustup target add wasm32-wasi
cargo build --target wasm32-wasi wasmer run target/wasm32-wasi/debug/cve-rs.wasm
https://github.com/Speykious/cve-rs
curl https://get.wasmer.io -sSfL | sh
- Run in CLI
wasmer run cowsay "Hello world"
pdating bash profile /Users/g/.config/fish/config.fish we've added the following to your /Users/g/.config/fish/config.fish If you have a different profile please add the following: - Wasmer export WASMER_DIR="/Users/g/.wasmer" [ -s "$WASMER_DIR/wasmer.sh" ] && source "$WASMER_DIR/wasmer.sh" check: wasmer 4.2.7 installed successfully โ wasmer will be available the next time you open the terminal. If you want to have the commands available now please execute: source /Users/g/.wasmer/wasmer.sh
- FishShell์ธํ ํ๊ธฐ
-
- clangd https://llvm.org/
-
assembly(asm-lsp)
- Vim _ Assembly Highlight Syntax
:set ft=nasm " assembly highlight syntax
- NeoVim(asm-lsp)
- TSInstall๋ก Syntax Highlight์ ์ฉ(NeoVim)
:TSInstall asm
- NeoVim์์ assembly LSP ์ค์นํ๊ธฐ
- https://www.reddit.com/r/neovim/s/XAuQM98VY6
- https://github.com/bergercookie/asm-lsp
- Using cargo
- Install using the cargo package manager, either from crates.io or from github:
- Using cargo
- https://github.com/bergercookie/asm-lsp
- https://www.reddit.com/r/neovim/s/XAuQM98VY6
cargo install asm-lsp
# or to get the latest version from github
cargo install --git https://github.com/bergercookie/asm-lsp
-
python LSP ์ค์น
sudo apt-get install python3-pylsp
- macOS
brew install python-lsp-server
- Python Lint
brew install ruff
- Rust๋ก ๋ง๋ LSP Server(pylyzer)
-
Helix&NeoVim Java LSP์ธํ
Helix( Java LSP Install ) jdtls์ค์นํ๊ธฐ ๊ทธ๋ฅ github ๋ก๊ธฐ๊ณ installํ๋ฉด ์ค์น ๋๋ค. ์ต๊ณ ..|๐|
https://github.com/eruizc-dev/jdtls-launcher
git clone https://github.com/eruizc-dev/jdtls-launcher.git
Cloning into 'jdtls-launcher'...
remote: Enumerating objects: 241, done.
remote: Counting objects: 100% (85/85), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 241 (delta 43), reused 50 (delta 28), pack-reused 156
Receiving objects: 100% (241/241), 48.74 KiB | 9.75 MiB/s, done.
Resolving deltas: 100% (125/125), done.
$ cd jdtls-launcher
$ ls
CONTRIBUTING.md install.sh jdtls-launcher.sh LICENSE README.md
$ ./install.sh
INFO: Downloading JDTLS-LAUNCHER
-#O=# # #
INFO: Extracting JDTLS-LAUNCHER
INFO: Creating symlink at /home/gy/.local/bin/jdtls
Installing jdtls...
jdt-language-server-1.28.0-202309221544 is going to be installed
########################################################################################################################### 100.0%########################################################################################################################### 100.0%
Installing lombok...
########################################################################################################################### 100.0%
Lombok installation succesfull
JDTLS installation succesfull
INFO: Installation successful
INFO: Ensure /home/gy/.local/bin is in path
-
(์๋ฐJava LSP์ธํ )Configure Neovim for Java Development | Andrew Courter
-
(์ง๊ทธ๋ก ๋ง๋ค๊ฑฐ ์ข๋ค.)Language server for GLSL (autocomplete, goto-definition, formatter, and more)
-
Installation
- We provide precompiled binaries for Linux, MacOS and Windows on the Releases page. Make sure to copy it somewhere under your PATH environment variable (e.g. ~/.local/bin on Linux).
- Building from Source
zig build install -Doptimize=ReleaseSafe --prefix ~/.local/
Tested using zig 0.13.0.
-
Usage
-
By default glsl_analyzer communicates over stdin/stdout:
glsl_analyzer
- However, you can configure it to use a specific port (TCP) using the following command:
glsl_analyzer --port <PORT>
-
Neovim
-
nvim-lspconfig comes with support for glsl_analyzer. Simply add the following to your lua config:
require'lspconfig'.glsl_analyzer.setup{}
- Visual Studio Code
- Install the glsl-analyzer extension from the marketplace. It will automatically download the latest precompiled binary for your platform.
ํด๊ฒฐํด์ผํ ๊ฒ์ ๋ฆฌ_ํด๊ฒฐํ๊ฑฐ๋ ํด๊ฒฐ ๋ชปํ๊ฑฐ|๐|
- (ํด๊ฒฐ)truble.nvim์ค๋ฅ ๋ฉ์ธ์ง ํด๊ฒฐ ๋ชปํจ
- font ํฌ๊ธฐ ํด๊ฒฐ ๋ชปํจ(neovide์์ ์๋จ ๋ฒ๊ทธ์ธ๊ฐ??)neovim์์๋ ์๋ฒฝํ ์ ๋์๊ฐ
- LSP goto ํด๊ฒฐํจ (์ด๊ฐ๋จใ )
:lua vim.diagnostic.goto_next() or :lua vim.diagnostic.goto_prev()
- rainbow ๋์๋ค๊ฐ ์ ๋์๋ค๊ฐ ใ ใ ํด๊ฒฐ ๋๋ฏ.
:lua require('rainbow-delimiters.setup').setup()
require("plugins/rainbow-delimiters")
require('rainbow-delimiters.setup').setup()
require('rainbow-delimiters.setup').setup ()
-- This module contains a number of default definitions
local rainbow_delimiters = require 'rainbow-delimiters'
---@type rainbow_delimiters.config
vim.g.rainbow_delimiters = {
strategy = {
[''] = rainbow_delimiters.strategy['global'],
vim = rainbow_delimiters.strategy['local'],
},
query = {
[''] = 'rainbow-delimiters',
lua = 'rainbow-blocks',
},
priority = {
[''] = 110,
lua = 210,
},
highlight = {
'RainbowDelimiterRed',
'RainbowDelimiterYellow',
'RainbowDelimiterBlue',
'RainbowDelimiterOrange',
'RainbowDelimiterGreen',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
},
}
Undo & Swap file ์ค์ ํ๊ธฐ|๐|
-
์ด๊ฑธ๋ก ๋์ถฉ ํด์ค
-- Enable swap, backup, and persistant undo
vim.opt.directory = SWAPDIR
vim.opt.backupdir = BACKUPDIR
vim.opt.undodir = UNDODIR
vim.opt.swapfile = true
vim.opt.backup = true
vim.opt.undofile = true
-- Append backup files with timestamp
vim.api.nvim_create_autocmd("BufWritePre", {
callback = function()
local extension = "~" .. vim.fn.strftime("%Y-%m-%d-%H%M%S")
vim.o.backupext = extension
end,
})
- Lua config for Neovim
- Capture the current USER and store in variable.
- Capture the current GROUP by running a system command id -ng
USER = os.getenv("USER")
local curr_group = vim.fn.system("id -ng 2> /dev/null | tr -d '\n'")
- Use the variables above to assign some dynamically generated directories, based on your current group
SWAPDIR = "/home/" .. curr_group .. "/" .. USER .. "/nvim/swap//"
BACKUPDIR = "/home/" .. curr_group .. "/" .. USER .. "/nvim/backup//"
UNDODIR = "/home/" .. curr_group .. "/" .. USER .. "/nvim/undo//"
- If the dirs do not exist, create them
- Update their permissions to 700
if vim.fn.isdirectory(SWAPDIR) == 0 then
vim.fn.mkdir(SWAPDIR, "p", "0o700")
end
if vim.fn.isdirectory(BACKUPDIR) == 0 then
vim.fn.mkdir(BACKUPDIR, "p", "0o700")
end
if vim.fn.isdirectory(UNDODIR) == 0 then
vim.fn.mkdir(UNDODIR, "p", "0o700")
end
Deprecated ํด๊ฒฐํด์ผํ ๊ฒ ใ ใ |๐|
- Nvim 0.11๋ถํฐ ํด๊ฒฐํด์ผํ ๊ฒ
- ๋จ์1
- vim.lsp.util.parse_snippet is deprecated what should I do?
- ๋จ์2
vim.lsp.util.parse_snippet() is deprecated. :help deprecated
Feature will be removed in Nvim 0.11
stack traceback:
...ies/nvim-linux64/share/nvim/runtime/lua/vim/lsp/util.lua:624: in function 'parse_snippet'
/home/gy/.config/nvim/lua/plugins/cmp.lua:25: in function 'before'
...site/pack/packer/start/lspkind-nvim/lua/lspkind/init.lua:190: in function 'format'
...e/nvim/site/pack/packer/start/nvim-cmp/lua/cmp/entry.lua:295: in function 'callback'
.../site/pack/packer/start/nvim-cmp/lua/cmp/utils/cache.lua:38: in function 'get_vim_item'
...e/nvim/site/pack/packer/start/nvim-cmp/lua/cmp/entry.lua:411: in function 'callback'
.../site/pack/packer/start/nvim-cmp/lua/cmp/utils/cache.lua:38: in function 'match'
.../nvim/site/pack/packer/start/nvim-cmp/lua/cmp/source.lua:116: in function 'get_entries'
...re/nvim/site/pack/packer/start/nvim-cmp/lua/cmp/view.lua:75: in function 'open'
...re/nvim/site/pack/packer/start/nvim-cmp/lua/cmp/core.lua:336: in function <...re/nvim/site/pack/packer/start/nvim-cmp/lua/cmp/core.lua:309>
- ์ค๋ฅ๊ฐ ๋ ๋์ด๋จ
gitsigns: Ignoring invalid configuration field 'yadm'
'signs.add.hl' is now deprecated, please define highlight 'GitSignsAdd' e.g:
vim.api.nvim_set_hl(0, 'GitSignsAdd', { link = 'GitSignsAdd' })
'signs.add.linehl' is now deprecated, please define highlight 'GitSignsAddLn' e.g:
vim.api.nvim_set_hl(0, 'GitSignsAddLn', { link = 'GitSignsAddLn' })
'signs.add.numhl' is now deprecated, please define highlight 'GitSignsAddNr' e.g:
vim.api.nvim_set_hl(0, 'GitSignsAddNr', { link = 'GitSignsAddNr' })
'signs.change.hl' is now deprecated, please define highlight 'GitSignsChange' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChange', { link = 'GitSignsChange' })
'signs.change.linehl' is now deprecated, please define highlight 'GitSignsChangeLn' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChangeLn', { link = 'GitSignsChangeLn' })
'signs.change.numhl' is now deprecated, please define highlight 'GitSignsChangeNr' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChangeNr', { link = 'GitSignsChangeNr' })
'signs.changedelete.hl' is now deprecated, please define highlight 'GitSignsChangedelete' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChangedelete', { link = 'GitSignsChange' })
'signs.changedelete.linehl' is now deprecated, please define highlight 'GitSignsChangedeleteLn' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChangedeleteLn', { link = 'GitSignsChangeLn' })
'signs.changedelete.numhl' is now deprecated, please define highlight 'GitSignsChangedeleteNr' e.g:
vim.api.nvim_set_hl(0, 'GitSignsChangedeleteNr', { link = 'GitSignsChangeNr' })
'signs.delete.hl' is now deprecated, please define highlight 'GitSignsDelete' e.g:
vim.api.nvim_set_hl(0, 'GitSignsDelete', { link = 'GitSignsDelete' })
'signs.delete.linehl' is now deprecated, please define highlight 'GitSignsDeleteLn' e.g:
vim.api.nvim_set_hl(0, 'GitSignsDeleteLn', { link = 'GitSignsDeleteLn' })
'signs.delete.numhl' is now deprecated, please define highlight 'GitSignsDeleteNr' e.g:
vim.api.nvim_set_hl(0, 'GitSignsDeleteNr', { link = 'GitSignsDeleteNr' })
'signs.topdelete.hl' is now deprecated, please define highlight 'GitSignsTopdelete' e.g:
vim.api.nvim_set_hl(0, 'GitSignsTopdelete', { link = 'GitSignsDelete' })
'signs.topdelete.linehl' is now deprecated, please define highlight 'GitSignsTopdeleteLn' e.g:
vim.api.nvim_set_hl(0, 'GitSignsTopdeleteLn', { link = 'GitSignsDeleteLn' })
-- More --
Source ์ธ๊ตญ๋ถ git์์ ๋๋ถ๋ถ ๊ฐ์ ธ์ด|๐|
- https://github.com/codeitlikemiley/neovide-rust-neovim
- ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐ ๋ง์ด ํด์ผํจ(๋ค ํก์ ๋ชปํจ ใ ใ )
๋ค๋ฅธ ์ธ๊ตญ์ธ์ ๋ฉ์ง NeoVim์ธํ |๐|
-
ํ๊ตญ ์ฌ๋
Neovide ์ด๋ฏธ์ง๋ฅผ ์คํ์ํค๊ธฐ ์ํ FUSE|๐|
- https://github.com/ggml-org/llama.vim
- VIM๋ด์์ ๋ก์ปฌ LLM ๊ธฐ๋ฐ์ ํ ์คํธ ์๋์์ฑ ๊ธฐ๋ฅ์ ์ ๊ณต
Insert
๋ชจ๋์์ ์ปค์ ์ด๋ ์ ์๋ ์ ์Ctrl+F
๋ก ์๋ ์ ์ ์ ํ ๊ฐ๋ฅTab
์ผ๋ก ์ ์ ์๋ฝShift+Tab
์ผ๋ก ์ฒซ ๋ฒ์งธ ์ค ์ ์ ์๋ฝ- ์ต๋ ํ ์คํธ ์์ฑ ์๊ฐ ์ค์ ๊ฐ๋ฅ
- ์ปค์ ์ฃผ๋ณ์ ์ปจํ ์คํธ ๋ฒ์ ์ค์ ๊ฐ๋ฅ
- ์ด๋ฆฐ ํ์ผ...
ArchLinux์์ ์ ์๋๋๊ฑฐ ๋ชจ์|๐|
-
ํด๋ฆฝ๋ณด๋ ๋ณต์ฌ/๋ถํ๋ฃ๊ธฐ ํด๊ฒฐ
-
https://www.reddit.com/r/neovim/comments/i65pwd/no_python3_provider_found_run_checkhealth_provider/
sudo pacman -S python-neovim
NeoVim ๋ฌ์คํธ๋ก ๋ง๋ ๊ฑฐ ๋ชจ์(NeoVim PlugIns)|๐|
NeoVim ์ธ๋งํ๊ฑฐ|๐|
- NerdTree Alternative๋์ฒด์ฌ
echasnovski/mini.nvim|๐|
- Library of 40+ independent Lua modules improving overall Neovim (version 0.8 and higher) experience with minimal