ตัวจัดการเซสชันสำหรับ tmux ซึ่งช่วยให้ผู้ใช้สามารถบันทึกและโหลดเซสชัน tmux ผ่านไฟล์การกำหนดค่าอย่างง่าย ขับเคลื่อนโดย libtmux
ใหม่กับ tmux? Tao ของ tmux มีอยู่ใน Leanpub และ Amazon Kindle อ่านและเรียกดูหนังสือได้ฟรีบนเว็บ
มีเวลาว่างบ้างไหม? ช่วยเราคัดแยกและตรวจสอบโค้ดและติดตาม ดูฉบับที่ #290!
ปิ๊บ:
$ pip install --user tmuxp
โฮมบรูว์:
$ brew install tmuxp
เดเบียน / อูบุนตู:
$ sudo apt install tmuxp
ห้าม:
$ [[ -z $( which tmux ) ]] && (nix-env -i tmux && nix-env -i tmuxp) || nix-env -i tmuxp
ค้นหาแพ็คเกจสำหรับ distro ของคุณใน repology: https://repology.org/project/tmuxp/versions
รุ่นพัฒนา:
ปิ๊บ:
$ pip install --user --upgrade --pre tmuxp
พิพซ์:
$ pipx install --suffix=@next ' tmuxp ' --pip-args ' --pre ' --force
จากนั้นใช้ tmuxp@next load [session]
โหลดเซสชัน tmux ผ่าน json และ YAML, tmuxinator และสไตล์ teamocil
session_name : 4-pane-split
windows :
- window_name : dev window
layout : tiled
shell_command_before :
- cd ~/ # run as a first command in all panes
panes :
- shell_command : # pane no. 1
- cd /var/log # run multiple commands in this pane
- ls -al | grep .log
- echo second pane # pane no. 2
- echo third pane # pane no. 3
- echo forth pane # pane no. 4
บันทึกเป็น mysession.yaml และโหลด:
$ tmuxp load ./mysession.yaml
โปรเจ็กต์ที่มีการโหลด .tmuxp.yaml หรือ .tmuxp.json ผ่านไดเรกทอรี:
$ tmuxp load path/to/my/project/
โหลดหลายรายการพร้อมกัน (ใน bg เสนอให้แนบครั้งสุดท้าย):
$ tmuxp load mysession ./another/project/
ตั้งชื่อเซสชัน:
$ tmuxp load -s session_name ./mysession.yaml
ตัวอย่างการกำหนดค่าที่ง่ายและซับซ้อนมาก
tmuxp ตรวจสอบการกำหนดค่าในไดเรกทอรีผู้ใช้:
$TMUXP_CONFIGDIR
หากตั้งค่าไว้$XDG_CONFIG_HOME
โดยปกติคือ $HOME/.config/tmuxp/$HOME/.tmuxp/
โหลดการกำหนดค่า tmuxp ของคุณได้จากทุกที่โดยใช้ชื่อไฟล์ สมมติว่า ~/.config/tmuxp/mysession.yaml (หรือ .json ):
$ tmuxp load mysession
ดูการกำหนดค่า tmuxp ของผู้เขียนและ tmuxp.yaml ของโปรเจ็กต์
ใหม่ใน 1.6.0 :
tmuxp shell
เปิดตัวในคอนโซล python ที่โหลดไว้ล่วงหน้าพร้อมกับเซิร์ฟเวอร์ เซสชัน และหน้าต่างที่แนบในอ็อบเจ็กต์ libtmux
$ tmuxp shell
(Pdb) server
<libtmux.server.Server object at 0x7f7dc8e69d10>
(Pdb) server.sessions
[Session($1 your_project)]
(Pdb) session
Session($1 your_project)
(Pdb) session.name
'your_project'
(Pdb) window
Window(@3 1:your_window, Session($1 your_project))
(Pdb) window.name
'your_window'
(Pdb) window.panes
[Pane(%6 Window(@3 1:your_window, Session($1 your_project)))
(Pdb) pane
Pane(%6 Window(@3 1:your_window, Session($1 your_project))
รองรับ breakpoint()
(รวมถึง PYTHONBREAKPOINT
) รองรับคำสั่งโดยตรงผ่าน -c
:
$ tmuxp shell -c ' print(window.name) '
my_window
$ tmuxp shell -c ' print(window.name.upper()) '
MY_WINDOW
อ่านเพิ่มเติมเกี่ยวกับ tmuxp เชลล์ในเอกสาร CLI
รันสคริปต์เริ่มต้นแบบกำหนดเอง (เช่น การติดตั้งการพึ่งพาโปรเจ็กต์ก่อนที่จะโหลด tmux ดูตัวอย่าง bootstrap_env.py และ before_script
คุณยังสามารถโหลดเซสชันในเบื้องหลังได้โดยส่งแฟล็ก -d
สแนปช็อตเค้าโครง tmux พาธของบานหน้าต่าง และชื่อหน้าต่าง/เซสชัน
$ tmuxp freeze session-name
ดูเพิ่มเติมเกี่ยวกับการแช่แข็งเซสชัน tmux
แปลงไฟล์เซสชันจาก yaml เป็น json และในทางกลับกัน
$ tmuxp convert filename
สิ่งนี้จะแจ้งให้คุณยืนยันและแสดงไฟล์ใหม่ที่กำลังจะถูกเขียน
คุณสามารถยืนยันข้อความแจ้งได้โดยอัตโนมัติ ในกรณีนี้จะไม่มีการแสดงตัวอย่าง
$ tmuxp convert -y filename
$ tmuxp convert --yes filename
tmuxp มีระบบปลั๊กอินที่อนุญาตพฤติกรรมแบบกำหนดเอง ดูเพิ่มเติมเกี่ยวกับระบบปลั๊กอิน
คำสั่ง load
จัดเตรียมวิธีการบันทึกเอาต์พุตไปยังไฟล์บันทึกเพื่อวัตถุประสงค์ในการดีบัก
$ tmuxp load --log-file < log-file-name > .
รวบรวมข้อมูลระบบที่จะส่งพร้อมกับปัญหา Github:
$ tmuxp debug-info
------------------
environment:
system: Linux
arch: x86_64
# ... so on
ดูการเริ่มต้นอย่างรวดเร็ว
หน้าแรกของเอกสาร (รวมถึงภาษาจีนด้วย)
ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ tmux หรือไม่? อ่าน The Tao of Tmux ออนไลน์
เงินบริจาคของคุณเป็นทุนสำหรับการพัฒนาฟีเจอร์ใหม่ การทดสอบ และการสนับสนุน เงินของคุณจะนำไปบำรุงรักษาและพัฒนาโครงการโดยตรง หากคุณเป็นปัจเจกบุคคล อย่าลังเลที่จะมอบทุกสิ่งที่รู้สึกว่าเหมาะสมกับคุณค่าที่คุณได้รับจากโครงการ
ดูตัวเลือกการบริจาคได้ที่ https://git-pull.com/support.html