Neovim 配置
Neovim 配置
Neovim 的配置是 dotfile 裡最複雜的單一工具——plugin 生態龐大、整個配置系統基於 Lua。Lua 語法基礎見 Lua 腳本語言。
配置路徑:~/.config/nvim/
配置結構
1~/.config/nvim/
2├── init.lua # 入口,source 其他模組
3├── lua/
4│ ├── options.lua # 基本設定(行號、tab 寬度、搜尋行為)
5│ ├── keymaps.lua # 快捷鍵
6│ ├── autocmds.lua # 自動指令
7│ └── plugins/ # 各 plugin 的配置
8│ ├── init.lua # plugin manager 載入
9│ ├── lsp.lua # LSP 設定
10│ ├── telescope.lua # fuzzy finder
11│ ├── treesitter.lua
12│ └── ...
13└── lazy-lock.json # lazy.nvim 的 lockfile(要進 Git)是否該用預設配置包
LazyVim、NvChad、AstroNvim 這類預設配置包提供了一整套開箱即用的 neovim 設定。判讀:
- 用預設配置包:想要快速可用的 IDE-like 體驗、不想花時間逐一選 plugin 和配置。Dotfile 裡放的是「對預設的覆寫」
- 自己從零組:想完全理解每一個 plugin 做什麼、容忍前期投入時間。Dotfile 裡放的是完整配置
兩種都是 dotfile 管理的合法對象。差異在出問題時的除錯路徑:自己組的知道每一行做什麼,預設配置包的要先理解它的分層才能改。
Dotfile 結構對應
1~/dotfiles/
2├── alacritty/
3│ └── .config/
4│ └── alacritty/
5│ └── alacritty.toml
6├── tmux/
7│ └── .config/
8│ └── tmux/
9│ └── tmux.conf
10├── nvim/
11│ └── .config/
12│ └── nvim/
13│ ├── init.lua
14│ ├── lazy-lock.json
15│ └── lua/
16│ └── ...
17└── zellij/ # 如果用 zellij
18 └── .config/
19 └── zellij/
20 └── config.kdl每個工具是獨立的 stow package,可以在不同機器選擇性安裝。例如伺服器只 stow tmux nvim、桌面機才加 stow alacritty。