Neovim and its Plugin Manager (Lazy)
Vim-fork focused on extensibility and usability
วิธีติดตั้ง Neovim
ดูวิธีติดตั้งได้ที่ neovim/INSTALL.md
คำสั่งต่าง ๆ จะเหมือน Vim หมด แล้วก็เวลาเปิดไฟล์จะใช้คำสั่ง nvim
แทน ตามนี้
ใช้ Alias เรียก vim
เพื่อเปิด Neovim
เราสามารถตั้ง alias เพื่อเปิด Neovim เวลาที่เราสั่ง vim
โดยการใส่บรรทัดด้านล่างนี้ไว้ใน
~/.zshrc
หรือไฟล์ rc
อื่น ๆ
Plugin ใน Neovim มีหลายตัวให้เลือกใช้ สำหรับเวิร์คชอปนี้เราจะใช้ lazy.nvim กัน
วิธีติดตั้ง Lazy
เราจะทำตาม Installation | lazy.nvim เลย แบบ Single File Setup (เดี๋ยวเราค่อยปรับเป็นแบบ Structured Setup ในหัวข้อถัด ๆ ไป)
Note
สังเกตว่า configuration ของ Neovim จะเขียนด้วยภาษา Lua
โดยที่ไฟล์ init.lua
คือไฟล์แรกที่ Neovim จะเข้ามาอ่านทุกครั้งที่เราเปิด Neovim
ติดตั้ง Plugin ผ่าน Lazy
Plugin แรกที่เราจะลองติดตั้งคือ Catppuccin for (Neo)vim ซึ่งเป็น theme ของ Neovim เติมความสวยงามน่าใช้ให้กับ Neovim ของเรา
ที่ไฟล์ ~/.config/nvim/init.lua
เราจะเติมโค้ดด้านล่างนี้
เข้าไปที่ส่วน spec
ใน require("lazy").setup
พร้อมกับเติมบรรทัดด้านล่างนี้เพื่อใช้งาน
สุดท้ายเราจะได้โค้ดตามนี้
-- Setup lazy.nvim
require("lazy").setup({
spec = {
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 }
},
-- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins.
install = { colorscheme = { "habamax" } },
-- automatically check for plugin updates
checker = { enabled = true },
})
vim.cmd.colorscheme "catppuccin"
หลังจากนั้นพอเราเปิด Neovim ขึ้นมา Catppuccin ก็จะถูกติดตั้งโดยอัตโมมัติ
Tip
เรื่องฟอนต์แนะนำให้โหลด Nerd Fonts มาใช้งาน ฟอนต์สวย ๆ อย่างเช่น CaskaydiaCove (Cascadia Code) ก็น่าใช้ดีนะ 😉
ทีนี้เวลาที่เราอยากเพิ่ม plugin เราก็แค่ไปเพิ่มตรงส่วน spec
ใน require("lazy").setup
เราก็สามารถใช้ plugin ใหม่นั้น ๆ ได้แล้ว
การจัดโครงสร้างโฟลเดอร์ Neovim Configuration
เราจะมาจัดโครงสร้างโฟลเดอร์ของ Neovim configuration และ plugins กัน หน้าตาโครงสร้างที่เราจะมาวางกันจะมีหน้าตาแบบนี้
~/.config/nvim
├── init.lua
└── lua
├── config
│ ├── globals.lua
│ ├── keymaps.lua
│ ├── lazy.lua
│ └── options.lua
└── plugins
├── catppuccin.lua
├── comment.lua
├── indent-blankline.lua
├── neo-tree.lua
├── telescope.lua
├── treesitter.lua
└── which-key.lua
Plugins ที่แนะนำให้ใช้ก็จะมีตามที่ใส่ไว้ในโฟลเดอร์ plugins
ด้านบนเลย
ดูไฟล์ configuration ต่าง ๆ แต่ละไฟล์ได้ที่ zkan/nvim