Ví dụ, cấu hình tools2 - tu vi ngay

/imgposts/c5hmkcpn.jpg

Trước đây, tôi đã chuyển từ tmuxinator sang tmuxp nhưng gặp phải vấn đề về tốc độ khởi động cực kỳ chậm. Chỉ với một tệp cấu hình có 8 cửa sổ, tmuxp mất hơn 5 giây để mở, điều này thật không thể chấp nhận được.

Vì vậy hôm nay, khi bắt đầu một dự án mới, tôi đã thử nghiệm một công cụ quản lý phiên tmux khác được phát triển bằng ngôn ngữ Golang - đó chính là smug.

Nghĩa của từ smug trong tiếng Việt:

  • Tính từ: tự mãn, tự cho mình đúng, gọn gàng
  • Danh từ: kẻ học trò cứng, người tự cao tự 789bey đại

Tôi nghĩ có khả năng đây VSBET là viết tắt của "session manager using go", giúp dễ nhớ hơn.

  • Tốc độ khởi động nhanh gấp nhiều lần so với tmuxp, gần như mở tức thì
  • Cấu hình đơn giản và gọn gàng hơn rất nhiều so với tmuxp
  • Tránh được các vấn đề về phụ thuộc phiên bản phức tạp của Ruby (tmuxinator) và Python (tmuxp)

Nhược điểm duy nhất có lẽ là tên gọi hơi quay hu khó nhớ.

Để cài đặt toàn cầu smug, bạn có thể sử dụng lệnh sau:

go install github.com/ivaaaan/smug@latest

Lưu ý cần chỉ định phiên bản cụ thể hoặc latest, nếu không sẽ gặp lỗi:

go: 'go install' yêu cầu một phiên bản khi thư mục hiện tại không nằm trong module
Thử 'go install github.com/ivaaaan/smug@latest' để cài đặt phiên bản mới nhất

Sau khi cài đặt, bạn có thể kiểm tra vị trí của smug như sau:

> ls $GOPATH/bin
asmfmt* errcheck*  godef*   golangci-lint* gomodifytags* gorename* guru*  impl*  motion* smug*
dlv*   fillstruct* goimports* golint*     gopls*     gotags*  iferr* keyify* office* staticcheck*
> echo $GOPATH
/home/zhongwei/golang

So với cấu hình rườm rà của tmuxp, smug cho phép cấu hình rất gọn gàng. Mặc dù không đơn giản tuyệt đối như tmuxinator, nhưng cũng đã rất hợp lý.

Ví dụ, cấu hình tools2.yml có thể như sau:

session: tools2
root: /mnt/d/work/tools2
windows:
 - name: code
 - name: ssh
smug start xxx
smug stop xxx

Với những đặc điểm nổi bật trên, smug thực sự là một lựa chọn đáng cân nhắc cho việc quản lý phiên làm việc trong tmux.