Skip to content

YoungHaKim7/rust_dev_neovide_nvimsetting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Link






rust1 ferris
nvim vim



rust_dev_neovide_LunarVimSetting(My Setting)_GY_Version|๐Ÿ”|


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
-- 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 ์›น์šฉ์ด ์žˆ์Œ|๐Ÿ”|


Windows NeoVim ์„ค์น˜๋Š” ์ด๊ฒŒ ์ข‹๋‹ค.|๐Ÿ”|


RustSnippet๊ธฐ๋ณธ ์œ„์น˜|๐Ÿ”|

~/.vsnip                                                                                          at 19:17:08
โฏ tree
.
โ”œโ”€โ”€ global.json
โ””โ”€โ”€ rust.json

0 directories, 2 files

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()
: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)|๐Ÿ”|


๋ผ์ธ 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 ์„ค์น˜|๐Ÿ”|

    --- 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
  • https://tabby.tabbyml.com/docs/installation/windows/

  • LinuxOS(Ubuntu24.04)

      1. 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
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
    1. 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
    1. 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|๐Ÿ”|

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")
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}
โฏ 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

https://github.com/wbthomason/packer.nvim

LSP Setting|๐Ÿ”|

:set ft=nasm  " assembly highlight syntax
  • NeoVim(asm-lsp)
    • TSInstall๋กœ Syntax Highlight์ ์šฉ(NeoVim)
:TSInstall asm
cargo install asm-lsp
# or to get the latest version from github
cargo install --git https://github.com/bergercookie/asm-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 ํ•ด๊ฒฐํ•ด์•ผํ• ๊ฒƒ ใ… ใ… |๐Ÿ”|

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์—์„œ ๋Œ€๋ถ€๋ถ„ ๊ฐ€์ ธ์˜ด|๐Ÿ”|

๋‹ค๋ฅธ ์™ธ๊ตญ์ธ์˜ ๋ฉ‹์ง„ NeoVim์„ธํŒ…|๐Ÿ”|


Neovide ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ FUSE|๐Ÿ”|


  • https://github.com/ggml-org/llama.vim
  • VIM๋‚ด์—์„œ ๋กœ์ปฌ LLM ๊ธฐ๋ฐ˜์˜ ํ…์ŠคํŠธ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • Insert ๋ชจ๋“œ์—์„œ ์ปค์„œ ์ด๋™ ์‹œ ์ž๋™ ์ œ์•ˆ
  • Ctrl+F๋กœ ์ˆ˜๋™ ์ œ์•ˆ ์ „ํ™˜ ๊ฐ€๋Šฅ
  • Tab์œผ๋กœ ์ œ์•ˆ ์ˆ˜๋ฝ
  • Shift+Tab์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„ ์ œ์•ˆ ์ˆ˜๋ฝ
  • ์ตœ๋Œ€ ํ…์ŠคํŠธ ์ƒ์„ฑ ์‹œ๊ฐ„ ์„ค์ • ๊ฐ€๋Šฅ
  • ์ปค์„œ ์ฃผ๋ณ€์˜ ์ปจํ…์ŠคํŠธ ๋ฒ”์œ„ ์„ค์ • ๊ฐ€๋Šฅ
  • ์—ด๋ฆฐ ํŒŒ์ผ...

ArchLinux์—์„œ ์ž˜ ์•ˆ๋˜๋Š”๊ฑฐ ๋ชจ์Œ|๐Ÿ”|

sudo pacman -S python-neovim

NeoVim ๋Ÿฌ์ŠคํŠธ๋กœ ๋งŒ๋“ ๊ฑฐ ๋ชจ์Œ(NeoVim PlugIns)|๐Ÿ”|

๐Ÿฆ€ Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim


NeoVim ์“ธ๋งŒํ•œ๊ฑฐ|๐Ÿ”|

echasnovski/mini.nvim|๐Ÿ”|