Giới thiệu
Bài viết này đánh dấu một năm kể từ bài viết trước của mình về Tmux vào tháng 5 năm 2023. Nhân dịp ngày nghỉ dài, mình sẽ tiếp tục chuỗi bài viết về Tmux với ba phần chính:
- Làm việc hiệu quả với text và buffers trong tmux
- Quản lý phiên làm việc với tmux
- Cài đặt và sử dụng plugin trong tmux
I. Làm việc hiệu quả với text và buffers trong tmux
Khi làm việc với terminal, thao tác sao chép và dán văn bản thường xuyên xảy ra, đặc biệt là khi bạn sử dụng Tmux. Bạn sẽ cần cuộn lại buffer đầu ra để xem thông tin đã bị đẩy ra khỏi màn hình, và cũng cần sao chép văn bản từ Tmux để dán vào file hoặc chương trình khác. Hãy cùng tìm hiểu các kỹ thuật để quản lý văn bản hiệu quả:
Cuộn qua output với Copy Mode
Mở Tmux, bạn có thể cuộn ngược lại qua kết quả đầu ra bằng cách kích hoạt Copy mode:
- Nhấn
PREFIX [
(PREFIX có thể là Ctrl + A) - Sử dụng phím di chuyển để điều hướng.
Hãy cấu hình Tmux để sử dụng các phím di chuyển của Vim bằng cách thêm dòng sau vào file .tmux.conf
:
setw -g mode-keys vi
Di chuyển nhanh trong Buffer:
Ctrl-b
: Lên một trangCtrl-f
: Xuống một trangg
: Nhảy đến đầu bộ đệmG
: Nhảy đến cuối bộ đệm
Tìm kiếm trong buffer:
?
: Tìm kiếm ngược/
: Tìm kiếm xuốngn
: Chuyển đến kết quả tiếp theoN
: Chuyển đến kết quả trước đó
Sao chép và dán văn bản
Chế độ Copy của Tmux cho phép bạn chọn và sao chép văn bản vào một paste buffer. Để sao chép văn bản:
- Di chuyển con trỏ đến vị trí bắt đầu.
- Nhấn
Space
để bắt đầu chọn văn bản. - Di chuyển đến cuối đoạn văn bản và nhấn
Enter
để sao chép.
Để dán văn bản đã sao chép, chỉ cần nhấn PREFIX ]
.
Capture a Pane
Bạn cũng có thể sao chép toàn bộ nội dung của một pane bằng lệnh capture-pane
trong Command mode (PREFIX :
):
capture-pane
Hiển thị và lưu buffer
Để hiển thị hoặc lưu buffer, bạn có thể sử dụng các lệnh sau:
- Hiển thị:
tmux show-buffer
- Lưu:
tmux save-buffer buffer.txt
Sử dụng nhiều paste buffers
Bạn có thể quản lý nhiều paste buffers bằng lệnh list-buffers
và choose-buffer
để lựa chọn buffer muốn dán.
Thay đổi phím tắt cho Copy và Paste
Nếu bạn quen với Vim, bạn có thể thay đổi phím tắt sao cho giống với Vim bằng cách thêm vào .tmux.conf:
bind Escape copy-mode
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
unbind p
bind p paste-buffer
Làm việc với Clipboard trên Linux
Cài đặt xclip
để tích hợp buffers của tmux với clipboard hệ thống:
sudo apt-get install xclip
Thêm vào tệp .tmux.conf
:
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
Đúc kết
Sử dụng paste buffers trong Tmux giúp bạn quản lý văn bản hiệu quả cả trong môi trường không có GUI. Khả năng này cùng với việc nghe log đầu ra sẽ giúp tăng cường năng suất khi làm việc.
II. Quản lý phiên làm việc với Tmux
Nếu bạn sử dụng Tmux thường xuyên, bạn có thể tận dụng tmuxp để quản lý các phiên làm việc của mình. Hãy tìm hiểu cách cài đặt và sử dụng Tmuxp để cải thiện quy trình làm việc:
Cài đặt tmuxp
Cài đặt Tmuxp qua pip hoặc Ubuntu:
pip install --user tmuxp
sudo apt install tmuxp
Lợi ích của việc sử dụng tmuxp
- Tự động hóa thiết lập: Định nghĩa cấu trúc phiên làm việc qua file cấu hình.
- Tái sử dụng cấu hình: Giúp tiết kiệm thời gian thiết lập cho các dự án khác nhau.
- Quản lý dự án hiệu quả: Tổ chức các cửa sổ và pane theo đúng quy trình làm việc.
- Khả năng di động: Chia sẻ file cấu hình giữa các máy tính hoặc server.
Ví dụ về cấu hình phiên với tmuxp
Tạo file cấu hình datnt114.yaml
:
session_name: datnt114
windows:
- window_name: sys
layout: tiled
panes:
- shell_command:
- btop
- shell_command:
- nvitop
- window_name: code
layout: main-horizontal
panes:
- shell_command:
- cd /hdd/learn/python-mastery/
- nvim README.md
Để khởi động phiên, sử dụng lệnh:
tmuxp load ~/.tmuxp/datnt114.yaml
III. Cài đặt plugin trong Tmux
Tmux cũng có hệ sinh thái plugin phong phú. Để cài đặt, tải Tmux Plugin Manager:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Thêm cấu hình vào cuối file ~/.tmux.conf
:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run '~/.tmux/plugins/tpm/tpm'
Một số plugin hữu ích:
tmux-plugins/tmux-sensible
: Cấu hình mặc định thông minh cho Tmux.odedlaz/tmux-onedark-theme
: Chủ đề tối cho Tmux.tmux-plugins/tmux-resurrect
: Giúp khôi phục phiên làm việc sau khi khởi động lại máy.Tmux-fzf
: Tìm kiếm các câu lệnh nhanh chóng.
Bài viết đã cung cấp thông tin chi tiết về cách tối ưu hóa và sử dụng Tmux hiệu quả. Hy vọng các bạn sẽ áp dụng thành công!
IV. Tài liệu tham khảo
- Matthieu Cneude - Building your Mouseless Development Environment (2021)
- Hogan - tmux 2 Productive Mouse-Free Development
- Terminal Setup with Zsh + Tmux + Dracula Theme
- Tmux Cheat Sheet & Quick Reference: https://tmuxcheatsheet.com/
- Tài liệu hữu ích từ tác giả của Tmuxp: https://leanpub.com/the-tao-of-tmux và https://tmuxp.git-pull.com/about_tmux.html
- File cấu hình tmux của mình: .tmux.conf
source: viblo