Skip to content
/var/log/tienvv.blog
About meLinkedin

Từ VSCode đến NeoVim

devops, tech, feature2 min read

  • Notepad++, Atom, Sublime, VSCode và gần đây nhất là vim. Là những text editor mà mình từng sử dụng qua và cuối cùng mình đã dừng lại ở neovim là text editor hằng ngày của mình

Với công việc hiện tại là DevOps Engineer, phải xoay chuyển liên tục với nhiều projects cùng một lúc, nên việc quản lý source code cũng như quản lý credentials cho từng project càng ngày càng trở nên phức tạp. Với gian đoạn đầu, mình đảm nhận khoảng 5 projects, với 1~3 repositories cho mỗi project thì con số tổng cộng là đâu đó khoảng 10 repositories.

Để chuyển qua lại giữa các repo, mình từng dùng extension WorkspaceSidebar trên VSCode. Tuy nhiên, để mở nhiều projects cùng một lúc thì VSCode càng ngày càng trở nên nặng nề và chậm chạm. Khi mình mở 5-6 windows VSCode cùng lúc thì tình trạng càng tồi tệ hơn, thậm chí crash/freeze rất khó chịu.

Đồng thời, phần lớn thời gian coding của mình là dành cho edit, việc di chuyển giữa các workspace, dòng và vị trí cần sửa tốn nhiều thời gian khi mình phải với tay sang để di chuột, làm mình cảm thấy khá bất tiện. Từ đó mình quyết định sử dụng thêm extension Vim trên VSCode để làm quen và đồng thời tăng hiệu suất công việc bằng cách giảm các thao tác sử dụng chuột.

Sau này, khi các thao tác trong công việc của mình phần lớn xảy ra ở terminal, cũng như việc edit source code với vim trở nên quen thuộc, mình nghĩ đã đến lúc chuyển hẳn sang neovim để tận dụng những cải tiến cũng như tối ưu tài nguyên của máy tính.

Sau khi tham khảo các bộ setup, mình quyết định dụng neovim kết hợp với Alacritty và tmux để cá nhân hóa terminal của mình đồng thời đồng bộ trên các máy khác nhau bằng cách sử dụng dotfiles repository


NeoVim

Tại sao lại là NeoVim? mà không phải Vim

Tại thời điểm viết bài, mình đang dùng

1#Ubuntu
2NVIM v0.8.0-dev
3Build type: RelWithDebInfo
4LuaJIT 2.1.0-beta3

Installation

For Ubuntu

1sudo apt install neovim

For MacOS

1brew install neovim

More: https://github.com/neovim/neovim/wiki/Installing-Neovim

Alacritty

Ưu điểm Alacritty:

  • Cross platform: Alacritty dùng được cho Linux, MacOS, Windows(chưa thử)
  • GPU-acceleration/Hardware-acceleration: Alacritty được viết bằng Rust, sử dụng OpenGL để render terminal
  • No tabs/splits: Không hỗ trợ tab/split, nhưng kết hợp với tmux thì điều này không phải vấn đề

Installation

For Ubuntu

1sudo add-apt-repository ppa:aslatter/ppa
2sudo apt updates
3sudo apt install alacritty

For MacOS

1# because Alacritty isn’t part of the Apple developer program, we need to authorize by --no-quarantine option
2brew install --cask --no-quarantine alacritty

More: https://github.com/alacritty/alacritty/blob/master/INSTALL.md

Install NerdFont

Chọn & tải 1 font trên Nerd Font

For Ubuntu

1unzip downloaded_font
2cp downloaded_font `~/.fonts`
3fc-cache -fv

Tmux

Tmux

  • Tmux thay thế cho GNU Screen
  • Tmux giúp bù đắp phần thiếu sót của Alacritty
  • Quản lý multiple session
  • Tmux session sẽ tiếp tục chạy cho dù user đã detach/disconnect

Installation

For Ubuntu

1sudo apt install tmux

For MacOS

1brew install tmux

More: https://linuxize.com/post/getting-started-with-tmux/

Configuration files

Hãy tham khảo repository này để biến nó thành của riêng bạn và tự cấu hình theo cách bạn muốn https://github.com/tienvu461/dotfiles

Trong đó, script config.sh sẽ giúp bạn tự động tạo symlink từ các file config của repo đến file config ở trên máy

© 2024 by /var/log/tienvv.blog. All rights reserved.
Theme inspired by LekoArts