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[๐Ÿ”]


Dash๋Š” ๋งฅ์šฉ์€ ์œ ๋ฃŒ์•ฑ(1๋…„ ์ •๊ธฐ ๊ตฌ๋…์œผ๋กœ ์œ ๋ฃŒ์ž„ ใ… ใ… )[๐Ÿ”]

๋ฌด๋ฃŒ๋Š” DevDocs ์›น์šฉ์ด ์žˆ์Œ[๐Ÿ”]


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

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

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๋‚˜์˜จ๋‹ค.

๋„ค์˜ค๋น” ํ”Œ๋Ÿฌ๊ทธ์ธ ์ •๋ฆฌ(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",
    
  • Symbol-outline

    • ํ˜น์‹œ ์˜ค๋ฅ˜ ๋‚˜๋ฉด ๊ฐ•์ œ๋กœ ์„ค์น˜
    /.local/share/nvim/site/pack/packer/start
    
    # ๊ฐ•์ œ๋กœ ์„ค์น˜
    git clone https://github.com/nvim-neotest/nvim-nio

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[๐Ÿ”]

nnoremap("<backspace>f", [[:HopChar1<CR>]])
nnoremap("<leader>F", [[: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[๐Ÿ”]

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

ํ•ด๊ฒฐํ•ด์•ผํ• ๊ฒƒ์ •๋ฆฌ_ํ•ด๊ฒฐํ•œ๊ฑฐ๋ž‘ ํ•ด๊ฒฐ ๋ชปํ•œ๊ฑฐ[๐Ÿ”]

  • (ํ•ด๊ฒฐ)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',
    },
}

Source ์™ธ๊ตญ๋ถ„ git์—์„œ ๋Œ€๋ถ€๋ถ„ ๊ฐ€์ ธ์˜ด[๐Ÿ”]

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