Skip to content

ngthminhdev/nvim_configs

Repository files navigation

[[[# 🚀 Neovim Configuration

Đây là cấu hình Neovim cá nhân của tôi, được tối ưu hóa cho phát triển phần mềm với trải nghiệm hiện đại và hiệu quả.

Xem thêm Wiki tại đây

✨ Tính năng

  • 🔌 Plugin quản lý tự động với lazy.nvim
  • 🌳 Hỗ trợ LSP cho nhiều ngôn ngữ lập trình
  • 🔍 Tìm kiếm mã nguồn nhanh chóng với Telescope
  • 🎨 Theme đẹp mắt với highlighting nâng cao
  • 📁 File explorer với Neo-tree
  • 🔤 Tự động hoàn thành thông minh với nvim-cmp
  • 📊 Git integration với lazygit.nvim
  • ⚡ Khởi động nhanh và trải nghiệm mượt mà
  • 📝 Formatting và linting tích hợp
  • 🧩 Giao diện UI hiện đại với noice.nvim

📋 Yêu cầu

Cần thiết

  • Neovim >= 0.10.0
  • Git
  • Node.js (cho một số LSP và plugin)
  • Nerd Font (cho icons và glyph)
  • gcc/clang (cho việc biên dịch một số plugin)

Công cụ bên ngoài

  • Ripgrep (cho Telescope tìm kiếm văn bản)
  • fd (cho Telescope tìm kiếm file nhanh)
  • Lazygit (cho giao diện Git)
  • fzf (cho tìm kiếm mờ)
  • xclip hoặc xsel (cho clipboard trên Linux)

Khuyến nghị

⚙️ Cài đặt

  1. Sao lưu cấu hình Neovim hiện tại của bạn (nếu có):
mv ~/.config/nvim ~/.config/nvim.backup
  1. Cài đặt các công cụ bên ngoài cần thiết:
# Ubuntu/Debian
sudo apt install git curl ripgrep fd-find xclip lazygit

# Arch Linux
sudo pacman -S git curl ripgrep fd xclip lazygit

# macOS (với Homebrew)
brew install git curl ripgrep fd lazygit
  1. Cài đặt Nerd Font:
# Ví dụ với JetBrainsMono Nerd Font
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLO https://github.com/ryanoasis/nerd-fonts/raw/HEAD/patched-fonts/JetBrainsMono/Ligatures/Regular/JetBrainsMonoNerdFontMono-Regular.ttf
fc-cache -f -v
  1. Clone repository này:
git clone https://github.com/ngthminhdev/nvim_configs.git ~/.config/nvim
  1. Khởi động Neovim để tự động cài đặt lazy.nvim và các plugin:

🔌 Danh sách plugin chính

⌨️ Phím tắt quan trọng

Chung

Phím tắt Mô tả
<Space> Leader key
<Space>ff Tìm kiếm file
<Space>fc Tìm văn bản trong files
<Space>fb Tìm buffer
<C-f> Mở file explorer (Neo-tree)
<Space>w Lưu file
<Space>x Đóng buffer hiện tại
<Space>gf Mở lazygit
<F12> Mở terminal
<Space-h/j/k/l> Di chuyển giữa các split

LSP

Phím tắt Mô tả
gd Đi đến định nghĩa
gr Xem tham chiếu
K Hiện thông tin
<Space>ca Hiện code actions
<Space>rn Đổi tên biến/hàm
<Space>fm Format code
<Space>ds Hiện diagnostics
[d / ]d Chuyển tới lỗi trước/sau

Telescope

Phím tắt Mô tả
<Space>fw Tìm với live grep
<Space>fh Tìm help tags
<Space>fk Tìm keymaps

Danh sách đầy đủ các phím tắt có thể được tìm thấy trong file lua/mappings.lua.

🎨 Theme

Cấu hình này sử dụng theme Catppuccin mặc định với flavor "mocha". Bạn có thể thay đổi theme hoặc flavor trong file cấu hình plugin tương ứng.

Catppuccin Theme

🔧 Tùy chỉnh

Bạn có thể dễ dàng tùy chỉnh cấu hình bằng cách chỉnh sửa các file trong thư mục lua/. Một số file quan trọng:

  • lua/options.lua: Cài đặt Neovim cơ bản
  • lua/mappings.lua: Phím tắt
  • lua/plugins/init.lua: Cấu hình lazy.nvim và các plugin
  • lua/configs/: Thư mục chứa cấu hình chi tiết cho từng plugin

💡 Các tính năng nổi bật

Lazygit Integration

Bạn có thể mở lazygit trực tiếp từ Neovim bằng cách nhấn <Space>gf. Đảm bảo bạn đã cài đặt lazygit trên hệ thống của mình.

LSP và Mason

Cấu hình sử dụng mason.nvim để quản lý và cài đặt các LSP servers, formatters, và linters. Bạn có thể mở Mason bằng cách gõ lệnh :Mason và cài đặt các tools cần thiết từ giao diện của nó.

Telescope với ripgrep và fd

Để tìm kiếm văn bản nhanh chóng qua nhiều file, cấu hình sử dụng ripgrepfd. Đảm bảo bạn đã cài đặt chúng để Telescope hoạt động hiệu quả nhất.

Treesitter

Syntax highlighting nâng cao được cung cấp bởi nvim-treesitter. Các ngôn ngữ sẽ được cài đặt tự động khi bạn mở file thuộc ngôn ngữ đó lần đầu tiên.

📝 Ghi chú

  • Cấu hình này được tối ưu hóa cho phát triển với các ngôn ngữ phổ biến như JavaScript, TypeScript, Python, Rust, Go, và Lua.
  • LSP servers, formatters, và linters sẽ được cài đặt thông qua Mason khi bạn cần.
  • Nếu bạn gặp vấn đề khi sử dụng đầy đủ các tính năng, hãy kiểm tra lại bạn đã cài đặt đầy đủ các requirement bên ngoài.

🤝 Đóng góp

Đóng góp luôn được chào đón! Hãy thoải mái fork repository này và gửi pull request.

📄 Giấy phép

Dự án này được cấp phép theo MIT License.

📞 Liên hệ

Nếu bạn có bất kỳ câu hỏi nào, hãy tạo một issue trong repository này hoặc liên hệ với tôi qua:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages