## Linux 搭建 Neovim + LazyVim + 快捷鍵自訂義 教學 Last edited : 2026-02-09 目標:在 Windows 的 WSL Ubuntu 24.04 裡,建立一套好用、漂亮、速度快、可寫 Python/JS/Go/Rust 的 Neovim IDE 使用框架:LazyVim(lazy.nvim + 大量預設) LazyVim 是一套基於 Neovim 的「配置框架」,它: - 內建插件管理器 lazy.nvim - 內建 LSP、格式化、補全、Telescope、Git UI - 開箱即用 - 非常適合 WSL + Ubuntu # 1. 安裝前檢查(Checklist) | 項目 | 必須 | 說明 | | ---------------- | ---- | ------------------- | | WSL 已安裝 | ✅ | 建議 WSL2 | | Ubuntu 24.04 | ✅ | 本教學針對 24.04 | | Git | ✅ | LazyVim 需要 | | Neovim >= 0.11.2 | ✅ | 建議 0.11+ | | Node.js | 可選 | 用於部分 LSP、treesitter | | Python3 + pip | 建議 | 用於 pynvim、格式化工具 | | Nerd Font | 強烈建議 | 否則 icon 會亂碼 | # 2. 更新系統與基本工具 在 WSL Ubuntu 裡執行: ```bash sudo apt update && sudo apt upgrade -y ``` # 3. 安裝 Neovim(使用 appimage) Ubuntu 24.04 apt 內建的 neovim 版本通常偏舊,LazyVim 建議用新版。 ```bash curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage chmod u+x nvim.appimage ./nvim.appimage # or sudo mv nvim.appimage /usr/local/bin/nvim # You can now run Neovim by typing nvim in your terminal. nvim ./ nvim --version # 確認版本 ``` 退出: `:qa` # 4. 安裝 LazyVim (neovim 插件) Prerequisites - Neovim: Version 0.11.2 or higher is required. - Git: Version 2.19.0 or higher. 備份舊有的nvim(if exist),第一次安裝可以無視 ```bash mv ~/.config/nvim ~/.config/nvim.bak mv ~/.local/share/nvim ~/.local/share/nvim.bak ``` 安裝(細節請參考 [Official doc](https://www.lazyvim.org/)): ```bash # Neovim >= 0.11.2 installed and git installed. git clone https://github.com/LazyVim/starter ~/.config/nvim rm -rf ~/.config/nvim/.git nvim ``` 等待他執行完畢,之後去[Nerdfront](https://www.nerdfonts.com/)下載字體 neovim 有許多特殊符號,第一次安裝你需要從下載字體並配置到 terminal,neovim內的圖案標示才可正常顯示。 # LazyExtras 配置代碼服務器 使用 `:LazyExtras` 配置代碼服務器,你可以用 `j`(向下) `k`(向上)移動光標,`/`搜尋,嘗試 `/lang.python` 找到 python,使用 `x` 加入至 Enabled languages 列表中,隨後退出重啟。 若你使用`python`,安裝 `pyright` 庫可以提供代碼提示 ```bash! sudo apt install pyright ``` 重啟 neovim 後可以看到 pyright 安裝成功 # 修改代碼補全快捷鍵 當前最新版本使用的是 `blink.cmp` 非舊版本的 `nvim-cmp`,若想修改代碼補全快捷鍵由 `<Enter>` 改為 `<Tab>`,在 `~/.config/nvim/lua/plugins/completion.lua`設定(若該資料夾下沒有自創一個xxx.lua): ```lua! -- completion.lua return { { "saghen/blink.cmp", opts = { keymap = { preset = "enter", -- 這是預設值,我們要改掉它 ["<Tab>"] = { "select_and_accept", "fallback" }, ["<CR>"] = { "fallback" }, -- 讓 Enter 變回單純換行 }, }, }, } ``` # 自定義快捷鍵 你可以在 `~/.config/nvim/init.lua` 自定義快捷鍵: 下方是範例設定為 `<Alt> + j` 向下拖動代碼,`<Alt> + k` 向上拖動代碼 (有裝 LazyVim 可忽略) ```lua! -- Normal 模式:搬移當前行 vim.keymap.set('n', '<A-j>', ':m .+1<CR>==') vim.keymap.set('n', '<A-k>', ':m .-2<CR>==') -- Visual 模式:搬移選中區塊 vim.keymap.set('v', '<A-j>', ":m '>+1<CR>gv=gv") vim.keymap.set('v', '<A-k>', ":m '<-2<CR>gv=gv") -- bootstrap lazy.nvim, LazyVim and your plugins require("config.lazy") ```