تعليق التمرير في Tmux؟ إليك الحلول الفعالة

Tmux (اسم مشتق من Terminal multiplexer) هو أحد أفضل مضاعفات الطرفيات/الأصداف مفتوحة المصدر لأنظمة التشغيل المستندة إلى Unix (مثل توزيعات Linux، Mac، إلخ). يتيح Tmux الوصول المتزامن إلى جلسات طرفية متعددة في نافذة واحدة. وهو مفيد جدًا في تشغيل أكثر من نص برمجي/برنامج سطر أوامر في نفس الوقت.

ولكن نظرًا لتعدد نوافذه التي تعمل في نفس الوقت، يصبح من الصعب على بعض المستخدمين التمرير للأعلى في نوافذ الطرفية (سواء من لوحة المفاتيح أو الماوس). وتتفاقم المشكلة بسبب تعدد أنظمة التشغيل المستندة إلى Unix.

ولكن لا داعي للقلق، يمكن للمستخدم التمرير للأعلى بسهولة في Tmux كما هو موضح أدناه:

تمكين واستخدام وضع التمرير في Tmux

يمكنك التمرير للأعلى والأسفل في Tmux باستخدام ما يلي:

  1. اضغط على مفتاحي Ctrl + B متبوعين بمفتاح [.
  2. الآن استخدم مفاتيح التنقل العادية على لوحة المفاتيح مثل السهم العلوي/السهم السفلي، صفحة للأعلى، صفحة للأسفل، إلخ، للتنقل في واجهة Tmux.

عندما ينتهي المستخدم من التمرير، يمكنه الخروج من وضع التمرير في Tmux بالضغط على مفتاح Q. إذا لم ينجح ذلك كما هو متوقع، فتحقق مما إذا كان استخدام مفتاح F7 للدخول إلى وضع التمرير ومفتاح q للخروج من الوضع يحل المشكلة.

تمكين واستخدام وضع النسخ

  1. اضغط على مفتاحي Ctrl + B متبوعين بمفتاح PgUp.
  2. الآن ستنتقل الطرفية صفحة واحدة للأعلى مباشرة في Tmux وتحقق مما إذا كان هذا يلبي متطلباتك.

استخدام وضع VI

إذا كان Tmux يتم التحكم فيه بواسطة عميل متصل، فإنه يُعرف بوضع VI في Tmux. في وضع VI، يمكنك استخدام مفتاحي Shift + K و Shift + J للتنقل سطرًا بسطر في واجهة Tmux (إذا كنت في وضع التمرير)، وإلا، سيتحرك المؤشر فقط عند الضغط على المفاتيح المذكورة. بالإضافة إلى ذلك، يمكنك الضغط على مفتاحي C-B (مرتين) للتمرير صفحة للأعلى ومفتاحي C-F للتمرير صفحة للأسفل في Tmux.

تعديل ملف Tmux.Config

بالنسبة لبعض المستخدمين المتقدمين، قد لا تكون الطرق المذكورة أعلاه مرضية، وفي هذه الحالة، قد يحل تعديل ملف Tmux.config المشكلة (كما سيتم مناقشته أدناه). يمكنك فتح ملف Tmux.config بتنفيذ الأمر vim ~/.tmux.config في الطرفية.

تمكين التمرير بالماوس

  1. أضف الأسطر التالية إلى ملفات Tmux.config حسب إصدار Tmux:
    لإصدار Tmux 2.1 وما فوق 
    set -g mouse on 
    
    لإصدار Tmux الأقل من 2.1 
    set -g mode-mouse on
  2. الآن تحقق مما إذا كان التمرير بالماوس يعمل بشكل صحيح.

ضع في اعتبارك أنه يمكنك الضغط على مفتاح Q للخروج من وضع التمرير بعد ذلك. أيضًا، لنسخ المحتويات من الطرفية، يمكنك استخدام Shift + النقر بزر الماوس الأيسر لإجراء عملية النسخ.

تمكين التمرير بالماوس مع ربط المفاتيح:

  1. أضف الأسطر التالية إلى ملف Config:
    set -g mouse on
    
    # تمرير منطقي:
    
    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'"
  2. الآن، أنهِ عمليات Tmux بتنفيذ الأمر التالي:
    tmux kill-server && tmux
  3. ثم قم بتشغيل Tmux وتحقق مما إذا كان التمرير يعمل كما تتوقع.

ضع في اعتبارك أنه إذا كان عليك نسخ عنصر في وضع الماوس الخاص بـ Tmux، فيمكنك استخدام مفتاح Shift + النقر بزر الماوس الأيسر لنسخ المحتويات.

إذا لم ينجح ذلك، فتحقق مما إذا كان إضافة ما يلي إلى Tmux.config يحل المشكلة:

set -g mouse on

bind -n WheelUpPane {

    if -F '#{==:#{window_name},nvim}' {

        send-keys -M

    } {

        copy-mode -e

    }

}

تمكين التمرير الافتراضي لـ Xterm

  1. أضف الأسطر التالية إلى ملف Tmux.config:
    # تمرير منطقي
    
    set -g terminal-overrides 'xterm*:smcup@:rmcup@'
  2. الآن تحقق مما إذا كان تمرير Tmux يلبي توقعاتك.

إذا لم ينجح ذلك، فتحقق مما إذا كان إضافة ما يلي إلى ملف إعدادات Tmux يضيف السلوك المطلوب (ولكن قد تضطر إلى إعادة تشغيل نظامك بعد ذلك):

# السماح بعناوين Xterm في نافذة الطرفية، والتمرير في الطرفية باستخدام شريط التمرير، وتعيين تجاوزات لـ C-Up، C-Down، C-Left، C-Right

set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=eOA:kDN5=eOB:kLFT5=eOD:kRIT5=eOC"

ولكن ضع في اعتبارك أنه إذا قمت بتغيير نوع الطرفية إلى Putty، فقد لا يعمل الكود أعلاه، وإذا كان عليك استخدام Putty، فيمكنك إضافة ما يلي إلى ملف إعدادات Tmux:

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 + السهم للأعلى للتمرير للأعلى وOption + السهم للأسفل للتمرير للأسفل على جهاز Mac يعمل بنظام macOS X والإصدارات الأحدث.

إذا لم يفلح ذلك، ادخل إلى وضع النسخ بالضغط على ما يلي:

ctrl + b + [

ثم للتمرير سطرًا للأعلى أو للأسفل باستخدام مفاتيح الأسهم للأعلى أو للأسفل. للتمرير صفحة للأعلى أو للأسفل، يمكنك استخدام مفتاح fn + السهم للأعلى أو مفتاح fn + السهم للأسفل. وعندما تحتاج إلى الخروج من الوضع، ما عليك سوى الضغط على مفتاح q.

جرب إضافة برمجية

إذا لم ينجح أي مما سبق كما توقعت، فإن استخدام إضافة برمجية مثل Tmux-Better-Mouse-Mode قد يلبي متطلباتك.

 

Comments are closed.