Neovim เป็น Text Editor ที่ทรงพลังและยืดหยุ่นสูง ซึ่งเป็นที่นิยมในหมู่นักพัฒนาจำนวนมาก บทความนี้จะแนะนำขั้นตอนการปรับแต่ง Neovim ตั้งแต่การติดตั้ง การตั้งค่าพื้นฐาน การจัดการ Plugin ไปจนถึงการเพิ่มประสิทธิภาพการทำงาน เพื่อให้คุณได้ Neovim ที่สวยงามและตอบโจทย์การใช้งานของคุณอย่างเต็มที่
1. การติดตั้ง Neovim (สำหรับ macOS)
สำหรับผู้ใช้งาน macOS เราสามารถติดตั้ง Neovim ได้ง่ายๆ ผ่าน Homebrew:
brew install neovim
เพื่อให้เรียกใช้งาน Neovim ด้วยคำสั่ง vim
ตามความเคยชิน และตั้งค่าให้ Neovim เป็น Editor หลักของระบบ (เช่น เมื่อใช้ git commit
):
เปิดไฟล์ ~/.zshrc
(หรือ ~/.bashrc
หากใช้ Bash) และเพิ่มบรรทัดต่อไปนี้:
alias vim='nvim'
export EDITOR='nvim'
หลังจากบันทึกไฟล์ อย่าลืมปิดและเปิด Terminal ใหม่ หรือใช้คำสั่ง source ~/.zshrc
(หรือ source ~/.bashrc
) เพื่อให้การเปลี่ยนแปลงมีผล
2. การตั้งค่าพื้นฐาน: init.vim
ไฟล์ตั้งค่าหลักของ Neovim คือ init.vim
ซึ่งอยู่ที่ ~/.config/nvim/init.vim
หากยังไม่มีโฟลเดอร์ nvim
หรือไฟล์ init.vim
ให้สร้างขึ้น:
mkdir -p ~/.config/nvim
touch ~/.config/nvim/init.vim
เริ่มต้นด้วยการตั้งค่าให้แสดงหมายเลขบรรทัด:
เปิดไฟล์ init.vim
(เช่น ใช้ nvim ~/.config/nvim/init.vim
) และเพิ่ม:
set number
บันทึกไฟล์และเปิด Neovim ใหม่อีกครั้ง จะเห็นว่ามีหมายเลขบรรทัดแสดงขึ้นมาแล้ว
3. การจัดการ Plugin ด้วย vim-plug
vim-plug
เป็น Plugin Manager ที่นิยมสำหรับ Vim และ Neovim ช่วยให้การติดตั้งและจัดการ Plugin เป็นเรื่องง่าย
การติดตั้ง vim-plug
:
สร้างโฟลเดอร์ autoload
และดาวน์โหลด plug.vim
:
mkdir -p ~/.config/nvim/autoload
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
ตั้งค่า vim-plug
ใน init.vim
:
เพิ่มส่วนต่อไปนี้ในไฟล์ init.vim
เพื่อกำหนดพื้นที่สำหรับ khai báo Plugin:
call plug#begin('~/.config/nvim/plugged')
" khai báo Plugin ต่างๆ ที่นี่
call plug#end()
4. ปรับแต่งหน้าตา (Appearance)
4.1. Theme สี: Onedark
Theme onedark
เป็น Theme ที่สวยงามและสบายตา
ติดตั้ง onedark.vim
:
เพิ่มบรรทัดต่อไปนี้ระหว่าง plug#begin
และ plug#end
ใน init.vim
:
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
call plug#end()
บันทึกไฟล์ init.vim
จากนั้นเปิด Neovim และพิมพ์คำสั่ง :PlugInstall
แล้วกด Enter เพื่อติดตั้ง Plugin
เปิดใช้งาน Theme:
เพื่อให้ Theme onedark
ถูกใช้งานทุกครั้งที่เปิด Neovim และเปิดการใช้งาน Syntax Highlighting ให้เพิ่มบรรทัดเหล่านี้ใน init.vim
(ควรวางไว้หลัง call plug#end()
):
syntax on
colorscheme onedark
ไฟล์ init.vim
ของคุณตอนนี้ควรมีลักษณะประมาณนี้:
set number
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
call plug#end()
syntax on
colorscheme onedark
4.2. Status Line ที่สวยงาม: Lightline
lightline.vim
ช่วยเพิ่ม Status Line ที่สวยงามและแสดงข้อมูลที่เป็นประโยชน์
ติดตั้ง lightline.vim
:
เพิ่ม Plug 'itchyny/lightline.vim'
ในส่วน Plugin ของ init.vim
:
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
call plug#end()
บันทึกไฟล์, เปิด Neovim, และรัน :PlugInstall
ตั้งค่า Lightline ให้เข้ากับ Onedark:
เพิ่มการตั้งค่าต่อไปนี้ใน init.vim
เพื่อให้ Lightline ใช้โทนสีของ Onedark:
let g:lightline = { 'colorscheme': 'onedark' }
ไฟล์ init.vim
จะเป็นดังนี้:
set number
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
call plug#end()
syntax on
colorscheme onedark
let g:lightline = { 'colorscheme': 'onedark' }
5. เพิ่มประสิทธิภาพการทำงาน (Functionality)
5.1. Syntax Highlighting หลากหลายภาษา: vim-polyglot
vim-polyglot
เป็น Plugin ที่รวม Syntax Highlighting สำหรับภาษาโปรแกรมจำนวนมาก ช่วยให้โค้ดอ่านง่ายขึ้น
ติดตั้ง vim-polyglot
:
เพิ่ม Plug 'sheerun/vim-polyglot'
ใน init.vim
และควรเพิ่ม set nocompatible
ไว้ด้านบนสุดของไฟล์ เพื่อให้ Plugin ทำงานได้เต็มประสิทธิภาพ:
set number
set nocompatible " เพิ่มบรรทัดนี้
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
Plug 'sheerun/vim-polyglot' " เพิ่ม Plugin นี้
call plug#end()
syntax on
colorscheme onedark
let g:lightline = { 'colorscheme': 'onedark' }
บันทึกและรัน :PlugInstall
5.2. ค้นหาไฟล์อย่างรวดเร็ว: CtrlP
ctrlp.vim
ช่วยให้คุณค้นหาและเปิดไฟล์ในโปรเจกต์ได้อย่างรวดเร็วด้วยการกด Ctrl+P
คล้ายกับใน VS Code
ติดตั้ง ctrlp.vim
:
เพิ่ม Plug 'kien/ctrlp.vim'
ใน init.vim
:
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
Plug 'sheerun/vim-polyglot'
Plug 'kien/ctrlp.vim' " เพิ่ม Plugin นี้
call plug#end()
บันทึกและรัน :PlugInstall
5.3. ระบบช่วยเขียนโค้ดอัจฉริยะ: Coc (Conquer of Completion)
coc.nvim
เปลี่ยน Neovim ให้เป็น IDE ที่มีความสามารถหลากหลาย เช่น Autocomplete, Linting, Formatting และอื่นๆ
ข้อกำหนดเบื้องต้น:
ต้องติดตั้ง Node.js phiên bản 10.12 หรือสูงกว่า
ติดตั้ง coc.nvim
:
เพิ่ม Plug 'neoclide/coc.nvim', {'branch': 'release'}
ใน init.vim
:
call plug#begin('~/.config/nvim/plugged')
Plug 'joshdick/onedark.vim'
Plug 'itchyny/lightline.vim'
Plug 'sheerun/vim-polyglot'
Plug 'kien/ctrlp.vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'} " เพิ่ม Plugin นี้
call plug#end()
บันทึกและรัน :PlugInstall
ติดตั้ง Extensions ที่น่าสนใจสำหรับ Coc:
Coc มี Extensions มากมายที่ช่วยเพิ่มความสามารถ เราสามารถติดตั้งได้โดยใช้คำสั่ง :CocInstall
ภายใน Neovim ตัวอย่าง Extensions ที่มีประโยชน์:
-
coc-tsserver
: รองรับ TypeScript และ JavaScript -
coc-eslint
: ενσωμάτωση ESLint สำหรับ JavaScript/TypeScript -
coc-prettier
: ช่วยจัดรูปแบบโค้ดให้สวยงาม -
coc-snippets
: รองรับ Code Snippets ช่วยให้พิมพ์โค้ดซ้ำๆ ได้เร็วขึ้น -
coc-spell-checker
: ตรวจสอบการสะกดคำ -
coc-tailwindcss
: (ถ้ามีการใช้งาน Tailwind CSS)
ตัวอย่างการติดตั้งหลาย Extension พร้อมกัน:
:CocInstall coc-tsserver coc-eslint coc-prettier coc-snippets coc-spell-checker
หมายเหตุ: บาง Extension อาจต้องการ Python ให้ติดตั้ง Python ไว้ในระบบด้วย
สามารถตรวจสอบความพร้อมของระบบสำหรับ Coc ด้วยคำสั่ง :checkhealth provider
หากมีข้อผิดพลาด ควรแก้ไขตามคำแนะนำ
ตั้งค่าเพิ่มเติมสำหรับ coc-prettier
(ตัวอย่าง):
เพิ่มการตั้งค่าต่อไปนี้ใน init.vim
เพื่อให้สามารถใช้คำสั่ง :Prettier
สำหรับจัดรูปแบบไฟล์ และสร้าง key mapping สำหรับจัดรูปแบบโค้ดที่เลือก:
command! -nargs=0 Prettier :CocCommand prettier.formatFile
vmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
(<leader>
key โดยปกติคือ \
สามารถเปลี่ยนได้)
6. การจัดการ Plugin ด้วย vim-plug
-
:PlugInstall [ชื่อ Plugin]
: ติดตั้ง Plugin ใหม่ (ถ้าไม่ระบุชื่อ จะติดตั้ง Plugin ทั้งหมดที่ยังไม่ได้ติดตั้ง) -
:PlugUpdate [ชื่อ Plugin]
: อัปเดต Plugin (ถ้าไม่ระบุชื่อ จะอัปเดต Plugin ทั้งหมด) -
:PlugClean
: ลบ Plugin ที่ไม่ได้ถูก khai báo ในinit.vim
ออกจากระบบ (จะถามยืนยันก่อนลบ)
หากต้องการลบ Plugin:
- ลบบรรทัด
Plug '...'
ของ Plugin นั้นออกจากinit.vim
- บันทึกไฟล์
- เปิด Neovim และรันคำสั่ง
:PlugClean
7. Plugin เสริม: vim-numbertoggle
vim-numbertoggle
เป็น Plugin เล็กๆ ที่ทำให้หมายเลขบรรทัดปัจจุบันดูเด่นขึ้น อาจมีปัญหากับการเลื่อนหน้าจอเร็วๆ ด้วยคำสั่ง nG
ในบางกรณี
หากต้องการลอง:
call plug#begin('~/.config/nvim/plugged')
" ... Plugin อื่นๆ ...
Plug 'jeffkreeftmeijer/vim-numbertoggle'
call plug#end()
จากนั้นรัน :PlugInstall
สรุป
การปรับแต่ง Neovim อาจดูซับซ้อนในตอนแรก แต่เมื่อคุณเริ่มคุ้นเคยกับ init.vim
และ vim-plug
แล้ว คุณจะพบว่ามันเป็นเครื่องมือที่ทรงพลังและสามารถปรับแต่งให้เข้ากับการทำงานของคุณได้อย่างไร้ขีดจำกัด ขอให้สนุกกับการสร้าง Neovim ในแบบของคุณ!
หากมีข้อเสนอแนะหรือพบข้อผิดพลาด สามารถแสดงความคิดเห็นเพื่อนำไปปรับปรุงต่อไป
Top comments (0)