วิธีเริ่ม tmux โดยเปิดบานหน้าต่างหลายบานพร้อมกัน?


23

สมมติว่าฉันเริ่มtmuxและเรียกใช้Ctrl+ b+ %และCtrl+ b+ "ทันที

สิ่งนี้ทำให้ฉันมีบานหน้าต่างสูงทางด้านซ้ายของหน้าจอ ด้านขวาของหน้าจอมีบานหน้าต่างด้านบนและด้านล่าง

ฉันจะกำหนดคอนฟิก tmux เพื่อเริ่มต้นในการกำหนดค่านี้โดยไม่ต้องพิมพ์คำสั่งเหล่านี้ได้อย่างไร


หากความต้องการของคุณคือการเปิดไม่กี่ขั้วทั้งหมดในครั้งเดียวในคลิกเดียวที่คุณสามารถทำมันได้ด้วยเทอร์มิ ติดตั้งจากศูนย์ซอฟต์แวร์
SAGAR Nair

ขอบคุณนั่นเป็นคำสั่งที่ดีที่จะรู้! สำหรับกรณีเฉพาะของฉันนี่คือสำหรับเซสชัน ssh ไปยังคอมพิวเตอร์ระยะไกล
Mark Harrison

คำตอบ:


21

ตัวเลือกอื่นคือการสร้างนามแฝงหรือไฟล์เชลล์อื่น/binสำหรับ:

tmux new-session \; split-window -h \; split-window -v \; attach

หรือ

tmux source-file ~/.tmux.conf

ที่ไหน ~/.tmux.conf

new
neww
splitw -h
splitw -v

สำหรับการอ้างอิงคำถามเดียวกันมีตัวเลือกอื่น ๆ ใน SE, วิธีการตั้งค่า tmux เพื่อให้มันเริ่มขึ้นเมื่อเปิดหน้าต่างที่ระบุ?


15

คุณสามารถใช้เชลล์สคริปต์ต่อไปนี้สำหรับการกำหนดค่าของคุณ:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

สิ่งนี้จะให้การกำหนดค่าที่จำเป็นของหน้าจอพร้อมคำสั่งต่อไปนี้ตามที่คุณกล่าวถึง tmux -> Ctrl+ b+ %-> Ctrl+ b+"

สำหรับการอ้างอิงกรุณาใช้หน้าคน tmux


4

สามารถเปิดใช้งานและปิดใช้งานtmuxเซสชันอัตโนมัติเมื่อเข้าสู่ระบบได้ง่ายโดยใช้แอปพลิเคชันByobu คุณสามารถใช้ Byobu เป็นอินเทอร์เฟซเพื่อtmuxจัดการกับความต้องการนี้ทำให้ง่ายต่อการทำสิ่งที่คุณถาม ในเทอร์มินัลให้รันคำสั่งต่อไปนี้:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

เมื่อผู้ใช้รูทเข้าสู่ระบบผ่านทางคอนโซล SSH หรือด้วยsudo -iByobu จะแนบไปกับtmuxเซสชันที่มีอยู่หรือสร้างขึ้นใหม่หากยังไม่ได้ทำงาน ใช้แทนsudo -i ตัวเลือกเดียวที่จะเริ่มต้นเปลือกไม่เปลือกเข้าสู่ระบบ คุณควรใช้เพื่อเลียนแบบการเข้าสู่ระบบแบบเต็มซึ่งโหลดด้วยและนี่คือที่ byobu จะติดตั้งตัวเองเมื่อคุณเรียกใช้sudo -s-ssudo -iroots ~/.profile

byobu-enable.

คุณสามารถกำหนดค่าเซสชันที่แตกต่างจากของคุณ.tmux.confดังนี้:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

จากนั้นคุณสามารถจัดรูปแบบเซสชันตามที่คุณต้องการ:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

สิ่งนี้จะเปิดหน้าต่าง 2 บานหน้าต่างที่สองจะตั้งชื่อว่า foo / bar และแยกครึ่งในแนวตั้ง (50%) โดยมี foo วิ่งอยู่เหนือแถบ โฟกัสจะอยู่ในหน้าต่าง 2 (foo / bar), บานหน้าต่างด้านบน (foo)

Byobu ทำให้การตั้งค่าและเริ่มต้น tmux ง่ายมากโดยอัตโนมัติ


1
ทำไมbind S VS bind s? (ตัวใหญ่ตัวแรก S และตัวเล็ก?)
knb

3

tmux-ชุบชีวิตปลั๊กอินจะช่วยให้การตั้งค่าการติดตาเซสชั่นเช่นเดียวกับการให้การทำงานเพิ่มเติมสำหรับการบันทึกและเรียกคืนการตั้งค่าในเซสชัน tmux

มีคุณสมบัติเพิ่มเติมมากมาย จากหน้าเว็บปลั๊กอิน:

" ปลั๊กอินนี้มีความยาวที่ยอดเยี่ยมในการบันทึกและกู้คืนรายละเอียดทั้งหมดจากสภาพแวดล้อม tmux ของคุณนี่คือสิ่งที่ได้รับการดูแล:

  • เซสชันทั้งหมด windows บานหน้าต่างและใบสั่งของพวกเขา
  • ไดเรกทอรีการทำงานปัจจุบันสำหรับแต่ละบานหน้าต่าง
  • รูปแบบบานหน้าต่างที่แน่นอนภายใน windows (แม้เมื่อซูม)
  • ใช้งานและเซสชั่นทางเลือก
  • หน้าต่างที่ใช้งานและหน้าต่างสำรองสำหรับแต่ละเซสชัน
  • หน้าต่างที่มีบานหน้าต่างโฟกัสที่ใช้งานสำหรับแต่ละหน้าต่าง
  • "เซสชันที่จัดกลุ่ม" (คุณสมบัติที่มีประโยชน์เมื่อใช้ tmux กับจอภาพหลายจอ) โปรแกรมที่ทำงานภายในบานหน้าต่าง! "

การติดตั้ง:

  1. ในเทอร์มินัลไปที่ไดเรกทอรีปลั๊กอิน tmux ของคุณ (ในกรณีของฉัน~/dotfiles/tmux/plugins)
  2. git clone https://github.com/tmux-plugins/tmux-resurrectโคลนพื้นที่เก็บข้อมูลที่มีคำสั่ง:

  3. แก้ไขไฟล์และเพิ่มบรรทัด.tmux.confset -g @plugin 'tmux-plugins/tmux-resurrect'

  4. รีโหลดสภาวะแวดล้อม tmux ด้วยคำสั่ง: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. ป้อนเค้าโครงที่คุณต้องการ ในกรณีนี้Ctrl- b %และ-Ctrlb "
  6. บันทึก Session tmux ของคุณโดยการป้อนคำสั่งCtrl- b+ -Ctrls
  7. เมื่อคุณเริ่มเซสชัน tmux ครั้งถัดไปให้ป้อนคำสั่งCtrl- b+ Ctrl- rเพื่อเรียกคืนเซสชัน tmux ของคุณ

ดังที่ได้กล่าวไว้ก่อนหน้านี้นอกเหนือจากการตั้งค่าโครงร่างบานหน้าต่างของเซสชัน tmux ปลั๊กอินนี้ยังสามารถตั้งค่าไดเรกทอรีการทำงานถาวรรวมถึงให้แอปพลิเคชันที่ทำงานอยู่ของคุณรีสตาร์ทด้วยแต่ละเซสชัน


2

ฉันเขียนสคริปต์ทุบตีตัวเองเล็กน้อย:

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

และใส่นามแฝงใน ~ / .bash_aliases ของฉัน

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

ดังนั้นตอนนี้ฉันก็สามารถพิมพ์tmuxv PYTHONและฉันมีเซสชั่น tmux แยกในแนวตั้งด้วยหน้าต่างชื่อ PYTHON ซึ่งดีเพราะชื่อหน้าต่างได้รับการสะท้อนในชื่อแท็บ gnome-terminal ของฉัน


1
คำตอบที่ดี แต่โปรดลบคำถามออกในตอนท้าย ลองถามเป็นคำถามใหม่ซึ่งจะทำให้แน่ใจว่ามีคนเห็นมันมากขึ้น
Tom Brossman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.