Dài dòng giới thiệu

Đúng là môi trường định hình nên con người, trước thời sinh viên sống chật vật với cái máy cùi (4GB RAM - HDD) mở cái VSCode thì phải tắt Chrome đi, mà mình dân web dev mà tắt chrome đi thì live-preview kiểu gì? Thế là mình phải bỏ VSCode tìm cái text-editor khác cho nó nhẹ thế là mình tìm ra thằng Vim. Nói qua thì trước khi dùng thằng Vim thì mình rất ít khi dùng đến Terminal (by the way mình dùng Wezterm), nhưng mà sau khi dùng nó thì phần lớn thời gian của mình đều ở trong terminal đến nỗi mỗi khi bật máy lên thì app đầu tiên mình bật là Terminal như một phản xạ tự nhiên. Sau một thời gian sống cùng Terminal mình cũng đã setup được một môi trường lập trình cho riêng mình, nơi mình boost tối đa năng suất của mình. Lướt qua môi trường mà mình đang sử dụng nào >>

1. Terminal - Wezterm

Sống trong terminal thì cái này tất nhiên là quan trọng nhất rồi, mình từng thử qua nhiều cái Terminal rồi (Konsole, Alacritty, Kitty, ... ở Windows thì Windows Terminal, Tabby...), nhưng thằng Wezterm là thằng mình ưng nhất (nó có nhiều chức năng mà mình cần ... và muốn). Mình dùng cả ở Linux và Windows (WSL). Tại sao mình thích thằng Wezterm :

  • Cross-platform (thằng Kitty thì ko có ở Windows thì phải)
  • Blazingly fast (nó viết bằng Rust tương tự như Alacritty)
  • Icons Emoji support (Thằng Konsole khá là sida trong khoản này Emoji >< Nerd font icons nhé)
  • Có thể set background image (Thằng Alacritty thì ko support cái này)
  • Font-fallback (có thể dùng font thường + nerd fonts + powerline fonts)

Wezterm

isay

Hạn chế dùng Emoji trên Windows nhé! Một số emoji icons có thể làm thằng Wezterm này bị glitch, chữ lệch, ko hiển thị đúng... Nhưng trên Windows (WSL) ngoài thằng Windows Terminal ra thì thằng terminal nào mình dùng trên Windows cũng bị lỗi do thằng icons (toàn không dùng được luôn), thằng Wezterm bị ít nhất sau thằng Windows Terminal, nhưng thằng Windows Terminal thì có quá ít tính năng (ko có font-fallback, ko có căn chỉnh line-height các thứ gì...)

2. Shell - Fish

Mở thằng Terminal lên là tự động vào thằng này luôn, mặc định có thể là Bash hay trên Mac thì là ZSH. Trước kia mình có dùng Zsh, nhưng giờ thấy bảo Fish nhanh hơn Zsh gấp mấy lần thế là mình switch luôn. Fish nhanh, completion ngon, chuyển sang Fish mình cũng bớt custom theme cho shell nữa, chứ trước ở Zsh dùng powerlevel9k đến powerlevel10k suốt ngày custom mệt mỏi. Giờ theo chủ nghĩa minimalism cho nó nhàn.

Mình dùng Starship config dễ, giao diện nhìn cũng ổn, và nó được quảng cáo là nhanh thế là mình dùng thôi.

Fish

3. Tmux

Mặc dù Terminal nó cũng hỗ trợ split, tab các thứ nhưng mình thích dùng thằng Tmux này hơn. Ngoài split, tab ra thằng Tmux còn mạnh về quản lý các session (detach, attach) các thứ, mình dùng thêm plugin để restore session (chỉ restore layout với đường dẫn của các tab, pane thôi).

Thằng này giúp mình làm đa nhiệm tốt hơn, một tab để coding, 1 tab để take note, 1 tab để nghe nhạc các thứ.

Tmux

Đang code switch sang viết blog tí:

Tmux Blog

isay

Mình tự custom config cho thằng Tmux, màu sắc, mappings các thứ cho nó đồng bộ, xem config của mình ở đây

4. Editor - Nvim

Tool chính, thứ mang mình tiếp cận với các tool bên trên, không có thằng này thì mình chắc giờ vẫn stick with VSCode chẳng mấy khi động đến terminal, có khi chả biết Tmux là thằng nào. Nvim haizz không biết có nên cảm ơn mày không, nhờ mày mà mọi người xung quanh nhìn tao như kiểu freak, đi ngược với đám đông, chơi trội các thứ.

Neovim

Nhân tiện Nvim mới release bản 0.8 (được hơn 1 tuần thì phải). Anh em nào chưa upgrade thì mau upgrade lên đi, mình thấy performance khá ổn áp, thêm vài tính năng hay ho (winbar, statusline clikable,...), nâng cấp thêm LSP...

Config mình để ở đây. Config mình chạy trên cả WSl và Linux (Manjaro mình đang dùng). À mà cái bài viết trước kia của mình về Nvim (Nvim của tôi ...) giờ lỗi thời rồi nhé, mình lười chả cập nhật lại, giờ Nvim của mình nhanh gấp gần 10 lần so với trước rồi. Chắc phải đổi title thành quá nhanh, quá nguy hiểm.

Neovim Startup Time

warning

  • Cái dotfiles trong git repository của mình là cái mình đang dùng thật, nhưng mà nó có một số private repos, mình sẽ public sau. Be aware of that.

  • Các ảnh bên trên được chụp ở WSL, các tính năng giống hệt với trên Linux chỉ có tmux config hơi khác thôi mình lười đồng bộ. (mappings thì vẫn y hết config bên trên của mình)