แยก. tmux.conf สำหรับการเชื่อมต่อ ssh


0

ฉันมีคอมพิวเตอร์สองสามเครื่องที่ฉันใช้ tmux ในพื้นที่เช่นเดียวกับระยะไกล (ผ่าน ssh กับซ้อน tmux ครั้ง) ปัจจุบันฉันใช้ Ctrl + B เป็นคำนำหน้าของทุกเครื่อง แต่มันก็น่าเบื่อที่จะพิมพ์ Ctrl + B B อะไรก็ตาม ทันทีที่ฉันต้องการดำเนินการมากกว่าหนึ่งการกระทำ

มีวิธีกำหนดค่าไหม tmux ดังนั้นเมื่อฉันเข้าถึงจากโปรแกรมจำลองเทอร์มินัลฉันใช้คำนำหน้า Ctrl + B และเมื่อฉันเข้าถึงจาก ssh ฉันใช้ Ctrl + (หรืออย่างอื่น) เป็นคำนำหน้า?

คำตอบ:


1

สิ่งที่ใช้ได้ผลสำหรับฉันคือการไม่เปลี่ยนคำนำหน้าและเพิ่มสิ่งต่อไปนี้ใน .tmux.conf:

bind-key -n C-a send-prefix

มันก็จะส่งคำนำหน้าไปยังที่ซ้อนกัน tmux เซสชันเมื่อฉันกด Ctrl + . ฉันรู้สึกว่าไม่มีการถ่ายโอนข้อมูลมาก่อนหน้านี้ ...


0

คุณสามารถใช้ run-shell คุณสมบัติของ tmux

สร้างเชลล์สคริปต์ต่อไปนี้ชื่อ set-prefix.sh

#!/bin/bash
if [[ -n $SSH_TTY ]];then
    tmux unbind-key C-b;
    tmux set -g prefix C-a;
    tmux bind C-a send-prefix;
else
    tmux display-message "Not a ssh session"
fi

ตอนนี้เพิ่มบรรทัดต่อไปนี้ใน .tmux.conf:

run 'bash ~/set_key_bind.sh'

เมื่อฉันสร้างไฟล์ทำเครื่องหมายเป็นไฟล์ที่เรียกใช้งานได้และวางบรรทัดใน. tmux.conf ไม่มีอะไรเกิดขึ้น เมื่อฉันใส่บรรทัดที่ส่วนท้ายของ. tmux.conf และเข้าสู่ระบบในเครื่องข้อความแสดงให้เห็น แต่เมื่อฉันเชื่อมต่อผ่าน ssh tmux จะไม่เปิดขึ้นโดยอัตโนมัติ (. bashrc ของฉันจะลงท้ายด้วย exec $(test -z "$TMUX" && (tmux attach || tmux new-session)) ) และเมื่อฉันอยู่ใน tmux ทางลัด C-a ไม่ได้ทำอะไรเลย ฉันไม่ได้ใช้ทางลัด C-a ใน. tmux.conf ของฉันนั่นไม่ใช่สาเหตุ
Max Matti
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.