- Регистрация
- 1 Мар 2015
- Сообщения
- 1,481
- Баллы
- 155
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 \
ตั้งค่า 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 ที่มีประโยชน์:
ตัวอย่างการติดตั้งหลาย 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
หากต้องการลบ Plugin:
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 ในแบบของคุณ!
หากมีข้อเสนอแนะหรือพบข้อผิดพลาด สามารถแสดงความคิดเห็นเพื่อนำไปปรับปรุงต่อไป
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 \
ตั้งค่า 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
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 ในแบบของคุณ!
หากมีข้อเสนอแนะหรือพบข้อผิดพลาด สามารถแสดงความคิดเห็นเพื่อนำไปปรับปรุงต่อไป