# 🛠️ Config neovim trên win 11

By 3T1C · Generated by Everwise

Khóa quick learn dành cho người đã biết vim motion nhưng từng bỏ cuộc ở bước config. Đi thẳng vào việc tự dựng cấu hình Neovim bằng Lua và plugin manager trên Windows 11, gắn từng mảng tính năng (LSP, Telescope, Treesitter, Git, terminal) vào một cấu hình gọn, đủ dùng cho công việc thật.

- **Level:** Intermediate
- **Language:** Vietnamese
- **Focus:** [cau hinh lua va plugin manager](/courses?q=cau%20hinh%20lua%20va%20plugin%20manager), [keybinding va workflow hieu qua](/courses?q=keybinding%20va%20workflow%20hieu%20qua), [lsp autocomplete diagnostics](/courses?q=lsp%20autocomplete%20diagnostics), [telescope tim kiem file grep](/courses?q=telescope%20tim%20kiem%20file%20grep), [treesitter cu phap va folding](/courses?q=treesitter%20cu%20phap%20va%20folding), [tich hop git va terminal](/courses?q=tich%20hop%20git%20va%20terminal), [khac phuc loi tren windows](/courses?q=khac%20phuc%20loi%20tren%20windows)
- **Practice:** Capstone project
- **Time:** ~4.7h
- **Voice:** Một kỹ sư senior làm mentor, chỉ từng bước và giải thích lý do đằng sau mỗi dòng config
- **Not covered:** bo_qua_gioi_thieu_neovim_la_gi, bo_qua_vim_motion_co_ban

## Bạn sẽ đạt được gì

Sau khóa học, bạn tự dựng và bảo trì được một cấu hình Neovim bằng Lua trên Windows 11, có LSP, Telescope, Treesitter, Git và terminal, đồng thời tự xử lý được các lỗi đặc thù của Windows.

Cụ thể hơn, bạn sẽ có khả năng:

- Viết `init.lua` từ đầu và tổ chức file cấu hình theo module, biết file nào chịu trách nhiệm gì và vì sao tách như vậy.
- Cài và quản lý plugin bằng `lazy.nvim`, hiểu cơ chế lazy-load để Neovim vẫn khởi động nhanh, và biết hướng mở rộng sang `vim.pack`.
- Thiết lập leader key và keybinding theo workflow làm việc thật, không copy nguyên bộ keymap của người khác mà không hiểu.
- Gắn LSP, autocomplete và diagnostics để có gợi ý, nhảy định nghĩa và bắt lỗi ngay trong buffer.
- Dùng Telescope để tìm file và grep trong dự án, dùng Treesitter cho highlight và folding.
- Tích hợp Git và terminal ngay trong Neovim thay vì nhảy ra ngoài.
- Nhận diện và khắc phục các lỗi đặc thù trên Windows 11: đường dẫn, shell, quyền, encoding, và những lỗi khiến bạn từng bỏ cuộc ở bước config.

Điểm quan trọng: mỗi dòng config bạn viết đều có lý do. Bạn không học thuộc một file cấu hình mẫu, bạn học cách tự thêm plugin và tự mở rộng khi nhu cầu tăng.

## Khóa học này dành cho ai

Khóa học ở mức **intermediate**. Bạn không cần học lại Neovim là gì, và khóa học cũng bỏ qua vim motion cơ bản, chỉ nhắc lại khi cần.

Điều kiện tiên quyết thực tế:

- Bạn đã dùng Vim hoặc Neovim đủ quen để di chuyển, vào insert mode, lưu và thoát mà không phải nghĩ.
- Bạn đang chạy Windows 11 và muốn Neovim phục vụ công việc thật, không phải để nghịch.
- Bạn đã từng thử config Neovim và bỏ cuộc ở bước cấu hình. Đây chính là điểm khóa học nhắm tới: đi chậm, giải thích lý do, và xử lý đúng những chỗ hay vấp trên Windows.

Bạn không cần biết Lua trước. Cú pháp Lua dùng trong khóa được giới thiệu ngay khi cần.

## Lộ trình khóa học

Khóa học gồm 3 module, 12 bài, khoảng 280 phút.

**Module 1: Nền tảng cấu hình bằng Lua và plugin manager**

- **1.1 Bộ khung init.lua và cách tổ chức file cấu hình trên Windows 11.** Dựng bộ khung `init.lua` và chia cấu hình thành các file dễ bảo trì, đặt đúng chỗ trên Windows.
- **1.2 Quản lý plugin với lazy.nvim và hướng mở rộng với vim.pack.** Cài plugin manager, hiểu cách nó load plugin, và biết đường nâng cấp khi cần.
- **1.3 Keybinding, leader key và workflow làm việc hiệu quả.** Thiết kế keymap quanh công việc thật của bạn thay vì quanh plugin.
- **1.4 Checkpoint: Nền tảng cấu hình Lua và plugin manager.** Bài kiểm tra chốt lại phần nền trước khi thêm tính năng IDE.

**Module 2: Đưa Neovim lên mức IDE: LSP, Telescope, Treesitter**

- **2.1 LSP, autocomplete và diagnostics.** Gắn language server, autocomplete và hiển thị lỗi để Neovim hiểu code như một IDE.
- **2.2 Telescope: tìm file và grep trong dự án.** Tìm file và grep trong dự án mà không rời khỏi Neovim.
- **2.3 Treesitter: cú pháp, highlight và folding.** Highlight chính xác theo cú pháp và folding dựa trên cấu trúc code.
- **2.4 Checkpoint: LSP, Telescope và Treesitter.** Kiểm tra lại toàn bộ lớp IDE trước khi bước vào phần tích hợp.

**Module 3: Capstone: cấu hình hoàn chỉnh dùng cho công việc thật**

- **3.1 Tích hợp Git và terminal trong Neovim.** Đưa thao tác Git và terminal vào trong Neovim để giữ mạch làm việc.
- **3.2 Khắc phục lỗi đặc thù trên Windows 11.** Đi qua những lỗi hay gặp nhất trên Windows và cách xử lý từng cái.
- **3.3 Capstone: đóng gói cấu hình Neovim cho công việc thật.** Đóng gói cấu hình hoàn chỉnh, dùng được hằng ngày và mang theo được.
- **3.4 Checkpoint: Capstone và xử lý sự cố trên Windows.** Bài kiểm tra cuối, tập trung vào capstone và xử lý sự cố.

## Khóa học vận hành thế nào

Mỗi bài thường có ba phần: **lý thuyết** ngắn để hiểu cơ chế, **thực hành** để bạn gõ và chạy config ngay trên máy mình, và **checkpoint quiz** ở cuối mỗi module để chốt lại. Các bài trong Module 3 nặng về **project**: bạn lắp ráp cấu hình thật thay vì làm bài tập rời.

Tổng thời lượng ước tính khoảng **280 phút cho 12 bài**, chưa tính thời gian bạn dừng lại để đọc lỗi và sửa config trên máy mình. Trên thực tế, hãy dự trù thêm thời gian cho phần đó, vì đó là lúc bạn học nhiều nhất.

Cách dùng khóa học:

- **Đi tuyến tính** nếu đây là lần đầu bạn dựng cấu hình từ đầu. Các bài trong Module 1 xây nền mà Module 2 và 3 dựa vào.
- **Có thể nhảy** nếu bạn đã có một cấu hình `lazy.nvim` chạy được: bài 1.1 và 1.2 có thể đọc lướt, nhưng đừng bỏ 1.3 (keybinding) và 3.2 (lỗi Windows), vì đây là hai chỗ quyết định cấu hình có dùng được hằng ngày hay không.
- **Luôn làm checkpoint** trước khi sang module tiếp theo. Quiz ở đó được thiết kế để phát hiện lỗ hổng sớm, khi sửa còn dễ.

Một lưu ý về tinh thần: khóa học cố ý không đưa bạn một file cấu hình khổng lồ kiểu IDE. Trục chính là Lua và plugin manager, các mảng khác (LSP, Telescope, Treesitter, Git, terminal) được gắn vào khi thêm plugin tương ứng. Nhờ vậy bạn hiểu từng mảnh, và tự thêm được mảnh mới về sau.

## Đồ án của khóa học

Đồ án xuyên suốt khóa là **"Neovim config cho công việc thật"**: một cấu hình Neovim hoàn chỉnh, viết bằng Lua, chạy ổn trên Windows 11, từ lúc mở file đầu tiên đến lúc commit và chạy terminal trong cùng một cửa sổ.

Đây là **một sợi chỉ liên tục**, không phải các bài tập rời rạc. Mỗi bài thêm một lớp vào cùng một cấu hình:

- **Bài 1.1 đến 1.3** dựng bộ khung `init.lua`, cài `lazy.nvim` và thiết lập keybinding. Đây là phần xương sống mà mọi thứ sau đó gắn vào.
- **Bài 2.1 đến 2.3** gắn LSP, autocomplete, diagnostics, Telescope và Treesitter vào bộ khung đó, biến nó thành môi trường viết code thật.
- **Bài 3.1** thêm Git và terminal, hoàn thiện vòng làm việc khép kín trong Neovim.
- **Bài 3.2** rà soát và sửa các lỗi Windows trên chính cấu hình bạn đã dựng.
- **Bài 3.3** đóng gói toàn bộ thành cấu hình bạn mang theo và bảo trì được về sau.

Kết thúc khóa, bạn không chỉ có một cấu hình chạy được. Bạn có một cấu hình mà mình hiểu từng dòng, và biết cách tự thêm phần mới khi công việc thay đổi.

## Contents

- **🧱 Nền tảng cấu hình bằng Lua và plugin manager**
  - [📁 Bộ khung init.lua và cách tổ chức file cấu hình trên Windows 11](https://everwise.study/courses/config-neovim-tren-win-11/bo-khung-init-lua-tren-windows-11.md)
  - [📦 Quản lý plugin với lazy.nvim và hướng mở rộng với vim.pack](https://everwise.study/courses/config-neovim-tren-win-11/quan-ly-plugin-lazy-nvim-va-vim-pack.md) (sign-in required)
  - [⌨️ Keybinding, leader key và workflow làm việc hiệu quả](https://everwise.study/courses/config-neovim-tren-win-11/keybinding-leader-key-va-workflow.md)
  - [✅ Checkpoint: Nền tảng cấu hình Lua và plugin manager](https://everwise.study/courses/config-neovim-tren-win-11/checkpoint-nen-tang-cau-hinh-lua.md)
- **🧠 Đưa Neovim lên mức IDE: LSP, Telescope, Treesitter**
  - [🔍 LSP, autocomplete và diagnostics](https://everwise.study/courses/config-neovim-tren-win-11/lsp-autocomplete-va-diagnostics.md)
  - [🔭 Telescope: tìm file và grep trong dự án](https://everwise.study/courses/config-neovim-tren-win-11/telescope-tim-file-va-grep.md)
  - [🌳 Treesitter: cú pháp, highlight và folding](https://everwise.study/courses/config-neovim-tren-win-11/treesitter-cu-phap-va-folding.md)
  - [✅ Checkpoint: LSP, Telescope và Treesitter](https://everwise.study/courses/config-neovim-tren-win-11/checkpoint-lsp-telescope-treesitter.md)
- **🚀 Capstone: cấu hình hoàn chỉnh dùng cho công việc thật**
  - [🌿 Tích hợp Git và terminal trong Neovim](https://everwise.study/courses/config-neovim-tren-win-11/tich-hop-git-va-terminal.md)
  - [🩺 Khắc phục lỗi đặc thù trên Windows 11](https://everwise.study/courses/config-neovim-tren-win-11/khac-phuc-loi-dac-thu-tren-windows-11.md)
  - [🏗️ Capstone: đóng gói cấu hình Neovim cho công việc thật](https://everwise.study/courses/config-neovim-tren-win-11/capstone-dong-goi-cau-hinh-neovim.md) (premium content)
  - [✅ Checkpoint: Capstone và xử lý sự cố trên Windows](https://everwise.study/courses/config-neovim-tren-win-11/checkpoint-capstone-windows.md) (premium content)
- [Course cheatsheet](https://everwise.study/courses/config-neovim-tren-win-11/cheatsheet.md) (premium content)
