用 lua 編寫的最小 Neovim 配置
目錄
Neovim 是 Vim 的一個非常酷的繼承者,專注於相容性,同時添加非同步插件功能並嘗試清理程式碼庫。在厭倦了多次 Sublime Text(2 和 3)和 Atom 後,在意識到我透過 SSH 進行了多少開發之後,使用 vim(或 nvim,在本例中)作為我的 IDE 似乎是合理的。優點主要歸結為:
因此,我決定創建這個存儲庫。有多個版本,請查看 CHANGELOG。
此配置只是一個起點,它只適合我的需要。如果您想定制,請跳至6.定制。
mv ~ /.config/nvim ~ /.config/nvim.bak
作業系統 | 小路 |
---|---|
Linux、蘋果系統 | $XDG_CONFIG_HOME/nvim , ~/.config/nvim |
Windows(命令) | %localappdata%nvim |
Windows(電源外殼) | $env:LOCALAPPDATAnvim |
注意您的 fork 的 url 將類似於:
https://github.com/<your_github_username>/neovim-config.git
注意如果遵循上述建議步驟(即分叉儲存庫),請在下列命令中將
ntk148v
替換為<your_github_username>
git clone https://github.com/ntk148v/neovim-config.git " ${XDG_CONFIG_HOME :- $HOME / .config} " /nvim
如果您使用的是cmd.exe
:
git clone https://github.com/ntk148v/neovim-config.git " %localappdata%nvim "
如果您使用的是powershell.exe
git clone https://github.com/ntk148v/neovim-config.git " ${env : LOCALAPPDATA} nvim "
nvim
git pull
保持更新。 config 下的檔案將在適當的時候自動加載,因此您無需手動請求這些檔案。
tree ~ /.config/nvim
├── init.lua
├── lazy-lock.json
└── lua
├── autocmds.lua
├── custom.lua
├── mappings.lua
├── options.lua
├── plugins
│ ├── configs
│ │ ├── cmp.lua
│ │ ├── gitsigns.lua
│ │ ├── lspconfig.lua
│ │ ├── lualine.lua
│ │ ├── luasnip.lua
│ │ ├── mason.lua
│ │ ├── null-ls.lua
│ │ ├── telescope.lua
│ │ ├── tree.lua
│ │ └── treesitter.lua
│ └── init.lua
└── sample_custom.lua
外掛 | 描述 |
---|---|
懶惰的nvim | Neovim 的現代插件管理器 |
梅森.nvim | 適用於 Neovim 的便攜式套件管理器,可在 Neovim 運行的任何地方運作。輕鬆安裝和管理 LSP 伺服器、DAP 伺服器、linter 和格式化程式。 |
nvim-lspconfig | Neovim內建語言伺服器用戶端常用設定集 |
gitsigns | 超快的 git 裝飾純粹用 lua/teal 實現 |
nvim 樹管理員 | Nvim Treesitter 配置與抽象層 |
nvim-cmp | 自動完成插件 |
盧阿剪輯 | 用 Lua 寫的 Neovim 片段引擎 |
nvim-tree.lua - | 用Lua寫的文件瀏覽器 |
nvim 自動配對 | Neovim 的超強大自動配對 |
nvim-web-devicons | neovim 的 vim-web-devicons 的 Lua fork |
lualine.nvim | 一個用純 lua 編寫的速度極快且易於配置的 neovim statusline 插件。 |
norcalli/nvim-colorizer.lua | 最快的 Neovim 著色器。 |
nvim-望遠鏡/telescope.nvim | 尋找、過濾、預覽、挑選。所有的lua,所有的時間。 |
玫瑰松木 | Neovim 的 Soho 氛圍 |
nvimtools/none-ls.nvim | null-ls.nvim 重新載入 / 使用 Neovim 作為語言伺服器透過 Lua 注入 LSP 診斷、程式碼操作等。 |
福克/which-key.nvim | 建立持久的按鍵綁定。 WhichKey 透過在您鍵入時在彈出視窗中顯示可用的按鍵綁定來幫助您記住 Neovim 鍵盤映射。 |
預設情況下,安裝並配置以下 LSP 伺服器:
此外,它與 nvim-treesitter 集成,提供豐富的語法突出顯示和其他語言解析魔法。
如果您的語言不受支持,請按照以下步驟操作:
:LspInstall ` <your_language_server> `
:TSInstall ` <language_to_install> `
您可以透過編輯自訂檔案來新增更多 LSP 伺服器和語言語法突出顯示。
這些是預設的鍵盤映射,在以下快捷鍵中, <leader>
+` 鍵設定為``(空格)字符,檢查:keymaps.lua。
捷徑 | 模式 | 描述 |
---|---|---|
kk | 插入 | 按kk 退出 |
<leader> + r | 普通的 | 重新載入設定檔 |
<leader> + s | 普通的 | 儲存檔案 |
<leader> + q | 普通的 | 儲存(關閉所有視窗)並退出 Neovim |
<leader> + n | 普通的 | 打開 NvimTree |
<leader> +號碼 | 普通的 | 刷新 NvimTree |
<leader> + nf | 普通的 | 在 NvimTree 中尋找文件 |
<leader> + ff | 普通的 | 打開望遠鏡查找文件 |
<leader> + fg | 普通的 | 開啟 Telescope 進行即時 grep |
<leader> + FB | 普通的 | 打開 Telescope 列出緩衝區 |
<leader> + fh | 普通的 | 打開望遠鏡顯示幫助 |
<leader> + fo | 普通的 | 開啟 Telescope 顯示最近開啟的文件 |
<leader> +厘米 | 普通的 | 開啟 Telescope 列出 git 提交 |
<leader> + wh/j/k/l | 普通的 | 圍繞分割移動 |
毫米 | 普通的 | 註解/取消註解行 |
預設的鍵盤映射有很多,你可以使用:map
指令查看。還有其他變體:
:nmap
用於正常模式映射:vmap
用於視覺模式映射:imap
用於插入模式映射上面的列表並不完整。在 Vim 中輸入:help map
將為您提供更多資訊。
您可以透過建立custom
模組來自訂此配置。您可以選擇以下兩種方式之一:
${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom.lua
檔案。${XDG_CONFIG_HOME:-$HOME/.config}/nvim/lua/custom/
查看範例自訂檔案作為起點。邏輯取自 CyberNvim。配置中有許多定義的部分:
M.setup_sources
用於新增額外的來源以連接到 Null-ls - 您可以在此處找到來源清單。參數 b 只是 null_ls.builtins 的縮寫。M.ensure_installed
用於增加額外的 Treesitter 螢光筆。M.plugins
是您添加自己的插件定義的地方。M.configs
是您自己的配置中最重要的部分。您可以在此處定義任何自動命令、需要任何檔案或以其他方式完全移植目前設定。M.formatting_servers
用來設定自動格式化規則。您需要選擇將提供自動格式化功能的語言伺服器請隨意提出問題或提出拉取請求。不客氣!