## 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")
```