Tmux (ชื่อมาจาก Terminal multiplexer) เป็นหนึ่งใน terminal/shell multiplexer โอเพนซอร์สที่ดีที่สุดสำหรับ Unix-based OS (Linux distros, Mac, ฯลฯ) Tmux อนุญาตให้เข้าถึง multiple terminal sessions พร้อมกันในหน้าต่างเดียว เหมาะสำหรับรัน command-line scripts/programs หลายตัวพร้อมกัน
Tmux Scroll Up
แต่เนื่องจากมี multiple windows ทำงานพร้อมกัน บาง user หาเลื่อนขึ้น (scroll up) ใน terminal windows ยาก ( سواءจาก keyboard หรือ mouse) ปัญหาเพิ่มขึ้นจากหลาย Unix-based OSs
ไม่ต้องกังวล สามารถ scroll up ใน Tmux ได้ง่าย ดังนี้:
เปิดใช้งานและใช้ Scroll Mode ของ Tmux
เลื่อนขึ้น/ลงใน Tmux ได้ดังนี้:
- กด Ctrl + B แล้วตามด้วย [ key
Press Ctrl + B + [ Keys to Enable Scroll Mode of the Tmux - ใช้ navigation keys ปกติบนคีย์บอร์ด เช่น up/down arrow, page up, page down เพื่อ navigate Tmux interface
ต้องการออกจาก scroll mode กด Q key ถ้าไม่ได้ ลองใช้ F7 key เข้า scroll mode และ q เพื่อออก
เปิดใช้งานและใช้ Copy Mode
- กด Ctrl + B แล้วตามด้วย PgUp key
- Terminal จะเลื่อนขึ้นหนึ่งหน้าใน Tmux ทันที เช็คว่าเพียงพอหรือไม่
ใช้ VI Mode
ถ้า Tmux ถูกควบคุมโดย attached client เรียกว่า VI mode ใน Tmux ใน VI mode สามารถใช้ Shift + K และ Shift + J navigate ทีละบรรทัดใน Tmux interface (ถ้าอยู่ใน scroll mode) ไม่เช่นนั้น cursor จะเคลื่อนที่เท่านั้น กด C-B keys (สองครั้ง) scroll up หน้าหนึ่ง และ C-F keys scroll down หน้าหนึ่ง
แก้ไข Tmux.Config File
สำหรับ advanced users วิธีข้างต้นอาจไม่พอ การแก้ไข Tmux.config อาจช่วย (ดูด้านล่าง) เปิด Tmux.config ด้วย vim ~/.tmux.config ใน terminal
เปิดใช้งาน Mouse Scrolling
- เพิ่ม บรรทัดต่อไปนี้ใน Tmux.config files ตาม Tmux version:
For Tmux version 2.1 and up set -g mouse on For Tmux version below 2.1 set -g mode-mouse on
- ตรวจสอบว่า mouse scrolling ทำงานได้
จำไว้ กด Q key ออกจาก scroll mode เพื่อ copy เนื้อหาจาก terminal ใช้ Shift + Mouse Left Click
เปิดใช้งาน Mouse Scrolling พร้อม Key Binding:
- เพิ่ม บรรทัดใน Config file:
set -g mouse on # sane scrolling: bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'" - จบ Tmux processes:
tmux kill-server && tmux
- เปิด Tmux ใหม่ เช็ค scrolling
จำไว้ ถ้าต้อง copy ใน Tmux mouse mode ใช้ Shift + left mouse click
ถ้ายังไม่ได้ ลอง เพิ่ม คำสั่งนี้ใน Tmux.config:
set -g mouse on
bind -n WheelUpPane { if -F '#{==:#{window_name},nvim}' { send-keys -M } { copy-mode -e } }
เปิดใช้งาน Default Xterm Scrolling
- เพิ่ม บรรทัดใน Tmux.config file:
# Sane scrolling set -g terminal-overrides 'xterm*:smcup@:rmcup@'
- ตรวจสอบ Tmux scroll
ถ้ายังไม่ได้ ลองเพิ่มคำสั่งนี้ (อาจต้อง reboot หลังเพิ่ม):
# Allow xterm titles in the terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
แต่ถ้าเปลี่ยน terminal type เป็น Putty โค้ดข้างบนอาจไม่ได้ ใช้ Putty ให้เพิ่ม:
set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
ถ้ายังไม่ได้ ลองเพิ่ม:
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
สำหรับ macOS Mojave และใหม่กว่า
ใช้ Option + UpArrow scroll up และ Option + DownArrow scroll down บน Mac macOS X ขึ้นไป
Use Option and Navigation Keys to Scroll in Tmux
ถ้าไม่ได้ 進入 copy mode ด้วย:
ctrl + b + [
จากนั้น scroll ขึ้น/ลง ทีละบรรทัด ด้วย up/down arrow keys ถ้าอยาก scroll ทีละหน้า ใช้ fn + up arrow หรือ fn + down arrow key ออกจาก mode กด q key
ลองใช้ Plug-in
ถ้าวิธีข้างต้นไม่พอ ลอง plug-in เช่น Tmux-Better-Mouse-Mode
Download Tmux Better Mouse Mode Plug-in
ABOUT THE AUTHOR

Kevin Arrows
Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์มากกว่า 10 ปี ได้รับการรับรอง Microsoft Certified Technology Specialist (MCTS) มีความหลงใหลในการอัปเดตเทคโนโลยีล่าสุด เขียนบทความเกี่ยวกับหัวข้อเทคโนโลยีกว้างขวาง แสดงความเชี่ยวชาญในด้านการพัฒนาซอฟต์แวร์ ความปลอดภัยไซเบอร์ และ Cloud Computing ได้รับการยอมรับและเคารพจากเพื่อนร่วมงาน สามารถอธิบายแนวคิดทางเทคนิคที่ซับซ้อนได้อย่างชัดเจนและกระชับ