วิธีแบ่งเทอร์มินัลออกเป็น "มุมมอง" มากกว่าหนึ่งรายการ?


264

จากviหากคุณออกคำสั่ง:spหน้าจอจะแบ่งเป็นสอง "มุมมอง" ซึ่งอนุญาตให้คุณแก้ไขมากกว่าหนึ่งไฟล์จากเทอร์มินัลเดียวกัน

ในบรรทัดเดียวกันนั้นมีวิธีที่จะเปิดเชลล์หลายอันในเทอร์มินัลเดียวกันหรือไม่?

คำตอบ:


350

คุณสามารถทำได้ในscreenterminal multiplexer

  • การแยกในแนวตั้ง: แล้วctrla|
  • หากต้องการแยกในแนวนอน: ctrlaจากนั้นS(ตัวพิมพ์ใหญ่)
  • หากต้องการยกเลิกการทำเครื่องหมาย: ctrlaจากนั้นQ(ตัวพิมพ์ใหญ่ 'q')
  • หากต้องการสลับจากที่หนึ่งไปยังอีกที่หนึ่ง: ctrlaจากนั้นtab

หมายเหตุ: หลังจากแยกคุณจะต้องเข้าสู่ภูมิภาคใหม่และเริ่มเซสชันใหม่ผ่านทางctrlaนั้นcก่อนจึงจะสามารถใช้พื้นที่นั้นได้

แก้ไขการใช้หน้าจอพื้นฐาน:

  • ขั้วใหม่: แล้วctrlac
  • สถานีถัดไป: แล้วctrlaspace
  • สถานีก่อนหน้านี้: แล้วctrlabackspace
  • สถานี N'th แล้วctrla (ใช้ได้กับn∈ {0,1 … 9})[n]
  • สลับระหว่างเทอร์มินัลโดยใช้รายการ: ctrlaจากนั้น" (มีประโยชน์เมื่อมากกว่า 10 เทอร์มินัล)
  • ส่งctrlaไปยังสถานีต้นแบบแล้วctrlaa

18
Tmux ทำเช่นนี้และโปรแกรมเทอร์มินัลจำนวนมากมีมุมมองและแท็บแยก
Shawn J. Goff

3
@AaronNewton ctrl+aแล้วปล่อยทุกอย่างแล้วshift+s(ไม่ทราบ caps lock เหมืองถูกปิดใช้งาน)
shellholic

4
Ctrl A Shift Sแยกหน้าจอจากนั้นCtrl A Tabสลับไปที่การแยกอื่นและCtrl A cสร้างพรอมต์ bash มีอยู่หรือไม่ที่จะให้คำสั่งเหล่านี้ทำงานโดยอัตโนมัติเมื่อเริ่มต้นscreenดังนั้นเราจึงไม่จำเป็นต้องเรียกใช้คำสั่งตลอดเวลา
Michael Butler

2
หน้าจอสำหรับแยกแนวตั้งรุ่นใด เวอร์ชันที่ฉันติดตั้งคือ 4.00.03 ซึ่งเหมือนกับดาวน์โหลดล่าสุดล่าสุดจากมิเรอร์ทั้งหมดที่ฉันตรวจสอบ
Brian Vandenberg

1
ฉันจะทำให้หนึ่งหน้าต่างแนวตั้งของฉันกว้างกว่าหน้าต่างอื่นได้อย่างไร ฉันต้องการแยก 30 | 30 | 40
mpen

108

ลอง tmux (Terminal MUltipleXer):

ภาพหน้าจอ tmux

และเพื่อให้เข้าใจความแตกต่างระหว่างsession, windowและpane: tmuxnestings


20
หน้าจอ vs tmux? tmux น่าจะดีกว่าสำหรับการใช้งานขั้นสูงและทันสมัยกว่า แต่หน้าจอถูกติดตั้งทุกที่และใช้งานได้ดี
user606723

ที่ดีอื่น ๆtmuxช่วยเหลือทรัพยากร: บทนำ , การตั้งค่า , ไพรเมอร์และโกงแผ่น
not2qubit

1
@ user606723 เหนือสิ่งอื่นใดการกำหนดค่า Tmux นั้นสามารถอ่านได้จริง ไม่เหมือนสุนัขที่รีดบนแป้นพิมพ์ แน่นอนว่าคุณสามารถทำกับ wrapper เช่นbyobu(ซึ่งหุ้มทั้ง multiplexers เทอร์มินัล) แต่ Tmux ดูเหมือนจะเหนือกว่าในหลาย ๆ ด้านนอกเหนือจากการกำหนดค่า และก็เหนือกว่าเมื่อหลายปีก่อน หน้าจอที่ต้องการแพทช์สำหรับการแยกทั้งสองทิศทางและ Tmux มีมันออกมาจากกล่อง สุดท้าย แต่ไม่ท้ายสุดใบอนุญาตอาจเป็นข้อโต้แย้งสำหรับ Tmux หรือ Screen ขึ้นอยู่กับว่าคุณอยู่ที่ไหน
0xC0000022L

1
@ user606723 ตั้งแต่ 2019 นี่ไม่เป็นความจริงอีกต่อไป screenหายไปจากการติดตั้ง Fedora 30 ที่ค่อนข้างใหม่ในขณะที่tmuxมีอยู่
โซระ

64

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

  • แยกหน้าจอในแนวตั้ง: CtrlbและShift5
  • แยกหน้าจอแนวนอน: CtrlbและShift"
  • สลับระหว่างบานหน้าต่าง: Ctrlbและo
  • ปิดบานหน้าต่างปัจจุบัน: Ctrlbและx

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

  • สร้าง windows: Ctrlbและc
  • สลับไปที่หน้าต่างถัดไป: Ctrlbและn
  • เปลี่ยนเป็นหน้าต่างก่อนหน้า: Ctrlbและp
  • ทำลายหน้าต่างปัจจุบัน: CtrlbและShift7

3
โปรดทราบว่าคุณสามารถเปลี่ยนคำนำหน้าของ tmux เป็นสิ่งที่เข้าถึงได้ง่ายกว่า <C หมุด

21

หากคุณต้องการโปรแกรมที่เพิ่งแยกterminal¹ที่มีsplitvt มีโปรแกรมที่แบ่งเทอร์มินัลและทำสิ่งอื่น ๆ อีกมากมายเช่น Screen, Tmux, Emacs, ...

¹ มันคือขั้วที่คุณแยกออกไม่ใช่เปลือก


+1 จุดที่ดีเกี่ยวกับวิธีที่เทอร์มินัลคือสิ่งที่ถูกแยกออกจริงๆ
Justin Ethier

19

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

  • จัดเรียงเทอร์มินัลในกริด
  • แท็บ
  • ลากและวางการสั่งซื้อเครื่องอีกครั้ง
  • แป้นพิมพ์ลัดจำนวนมาก
  • บันทึกเค้าโครงและโปรไฟล์หลายรายการผ่านเครื่องมือแก้ไขการตั้งค่า GUI
  • พิมพ์พร้อมกันไปยังกลุ่มเทอร์มินัลโดยพลการ

ดูภาพหน้าจอบนไซต์โครงการ

สิ่งสำคัญที่สุดคือคุณสามารถรวม Terminator เข้ากับ Screen / Tmux


2
โปรดทราบว่าการใช้ Terminator แยกจะสะดวกน้อยลงเมื่อคัดลอกระหว่างหน้าต่างทั้งสองของโปรแกรมแก้ไขของคุณ
gb

คุณสามารถแก้ไขหลายบานหน้าต่างพร้อมกันหลังจากจัดกลุ่มบานหน้าต่าง (หรือเลือกทั้งหมดพร้อมกัน) และคุณสามารถแก้ไขทางลัดสำหรับบานหน้าต่างสลับได้เช่นกัน ฉันต้องctrl-shift-h/j/k/lเลื่อนไปมาระหว่างบานหน้าต่างและ ctrl- (shift) -tab สำหรับสลับระหว่างแท็บมันใช้งานได้ดีมาก
sjas

1
ดีเราสามารถคลิกที่พวกเขาเพื่อมุ่งเน้น; แต่ยังคงหาวิธีกระจายเทอร์มินัลอย่างสม่ำเสมอในกริดมันเป็นระเบียบที่ต้องแก้ไขด้วยมือฉันยังต้องเพิ่มเทอร์มินัลแบบไดนามิกดังนั้นให้พวกเขาอัพเดทในกริดที่กระจายอย่างสม่ำเสมอ
กุมภ์อำนาจ

Terminator เป็นโปรแกรม X-windows ไม่ใช่โปรแกรมบรรทัดคำสั่งเช่น tmux และหน้าจอ OP ที่กล่าวถึงเป็นพิเศษsame terminalสองครั้งดังนั้น Terminator หรือ tilix (ดังที่ได้กล่าวไว้โดย @sjas) ไม่ใช่คำแนะนำที่ดี หากคุณอยู่ในเซสชัน ssh ไปยังเซิร์ฟเวอร์ระยะไกลที่ไม่มีเซิร์ฟเวอร์ X คุณจะไม่สามารถเรียกใช้เครื่องมือเหล่านี้ได้
haridsv

8

Konsole สำหรับ KDE มีฟังก์ชั่นในตัว :

  • Ctrl+ (เพื่อแยกมุมมองซ้าย / ขวา

  • Ctrl+ )to Split ดูด้านบน / ล่าง

  • Shift+ Tabจะวนผ่านมุมมองแบบแยก

  • Shift+ Left Arrow/ Right Arrowจะวนรอบมุมมองปัจจุบันผ่านแท็บ / มุมมอง

  • Ctrl+ Shift+ Xเพื่อปิดมุมมองปัจจุบัน


คุณรู้ทางลัดแป้นพิมพ์เพื่อสลับระหว่างบานหน้าต่างแยกดูใน konsole หรือไม่?
LangeHaare

1
@LangeHaare SHIFT + TAB จะวนไปตามบานหน้าต่างมุมมอง
chaptuck

7

ใช้เทอร์มิเนเตอร์

ควรจะพร้อมใช้งานผ่านตัวจัดการแพคเกจที่คุณชื่นชอบถ้าคุณใช้การแจกแจงหลัก

เป็นเทอร์มินัลมัลติเพล็กเซอร์เดียวที่การคัดลอกวางทำงานได้อย่างถูกต้องจากภายในบานหน้าต่างในหน้าต่างของคุณ

อัปเดต: tilixเป็นอีกterminatorทางเลือกหนึ่งที่เกือบจะสมบูรณ์เมื่อเทียบกับเทอร์มิเนเตอร์ หลังจากประเมินแล้วฉันยังคงติดอยู่terminatorอย่างไรก็ตามเนื่องจากการจัดการแท็บที่ดีกว่าและการกำหนดค่าที่ง่ายขึ้น (จากมุมมอง POV)


เทอร์มิเนเตอร์ไม่ใช่เทคนิคมัลติเพล็กเซอร์: "เทอร์มินัลมัลติเพล็กเซอร์เป็นแอพพลิเคชั่นซอฟต์แวร์ที่สามารถใช้ในการทำมัลติเพล็กซ์คอนโซลเสมือนช่วยให้ผู้ใช้เข้าถึงเซสชันเทอร์มินัล (จาก Wikipedia)
erb

มันไม่ได้เป็นมัลติเพล็กเซอร์เดียวที่การวางการคัดลอกทำงานอย่างถูกต้องจากภายในบานหน้าต่าง tmux ทำได้ดีกับการกำหนดค่าที่เหมาะสม
erb

@erb - จะต้องกำหนดค่าอะไรถ้าฉันไม่ต้องการเลือกบรรทัดที่สมบูรณ์ซึ่งครอบคลุมหลายเทอร์มินัลในการคลิกสามครั้งและทำไมการตั้งค่าเริ่มต้นที่ไม่เป็นเช่นนั้น
sjas

1
คุณสามารถใช้โหมดการคัดลอกใน tmux เพื่อทำการคัดลอกหากคุณต้องการใช้เมาส์คุณควรเปิดใช้งานการสนับสนุนเมาส์เท่านั้นการกำหนดค่าของฉันที่นี่: github.com/ErikBjare/dotfiles/blob/master/home/ tmux / …หากคุณต้องการใช้คลิปบอร์ดของระบบพร้อมโหมดการคัดลอกโปรดดูที่: unix.stackexchange.com/questions/131011/ …
erb

2
ฮะ? ทำไมจะไม่ล่ะ? คุณสามารถทำให้มันทำงานได้อย่างแม่นยำ (ถ้าไม่ตรง) เหมือนกับวิธีเลือกในเทอร์มิเนเตอร์ ฉันเคยเป็นผู้ใช้งานเทอร์มินัลด้วยเหตุผลเดียวกันเมื่อฉันทำการตั้งค่าเสร็จฉันไม่เคยหันกลับมามองและสามารถประหยัด RAM และทรัพยากรอื่น ๆ ได้บ้างโดยการเปลี่ยนไปใช้เทอร์มินัลอีมูเลเตอร์น้ำหนักเบามากขึ้น
erb

4

Guake + Byobu

ฉันมีความสุขผู้ใช้GuakeกับByobuภายในซึ่งโดยค่าเริ่มต้นใช้งานtmux( อาจจะดีกว่าscreen)

สามขั้นตอน

  1. ติดตั้ง (ไม่ต้องมี PPA บน Ubuntu หรือ Debian ตรวจสอบ distros อื่น ๆ )

    sudo apt install guake byobu
  2. เพิ่มลงในกระสุนที่มี (ตามที่ฉันบอกในปัญหา Guake Github นี้ ):

    which byobu | sudo tee -a /etc/shells
  3. ในการตั้งค่า Guake ( guake-prefs) เลือก Byobu เป็นล่ามเริ่มต้น: ภาพ


  1. ไม่บังคับ:ยกเลิกการเลือก "แสดงแถบแท็บ" เนื่องจากคุณจะใช้ Byobu สำหรับสิ่งนั้น:

    ภาพ

  2. หากทางลัดใช้งานไม่ได้ลองปิดการใช้งาน Guake ที่อาจรบกวน (ในกรณีของฉันคือCtrl+F2การแยกแนวตั้ง): ภาพหน้าจอ

คำแนะนำอื่น ๆ

  1. เรียนรู้ทางลัดด้วยShift+ F1หรือสกรีนช็อตที่ยอดเยี่ยมนี้
  2. เรียนรู้คำสั่ง terminal ของ byobu ที่มีอยู่ด้วย apropos byobu
  3. ในการใช้ปุ่ม fn บน Midnight Commander ให้ใช้Alt+ หรือShift+ F12เพื่อปิดใช้งาน byobu F-keys

ภาพหน้าจอ


2

ลองแบ่งแนวตั้งสำหรับหน้าจอ GNU

โปรแกรมแก้ไขนี้มีคุณสมบัติการแบ่งตามแนวตั้งสำหรับหน้าจอ GNU รุ่นปัจจุบัน คุณลักษณะนี้ได้รับการออกแบบให้ทำงานในลักษณะเดียวกับคำสั่งแบ่งที่มีอยู่บนหน้าจอ แต่การแบ่งพื้นที่ในแนวตั้งแทนที่จะเป็นแนวนอน การแยกทั้งสองแบบสามารถใช้ร่วมกันในการผสม / ปริมาณ / คำสั่งที่ต้องการ มีบางสิ่งที่คล้ายกันซึ่งจะปรากฏในหน้าจอ GNU 4.1 ในไม่ช้าและมีอยู่ใน CVS ต่อเธรดรายการส่งเมลนี้ (และรวมอยู่ในแพ็คเกจหน้าจอ Debian และ Ubuntu เริ่มต้นด้วย 4.0.3-10) นอกจากนี้โครงการล่าสุดชื่อ ScreenWM ได้รับการออกแบบโดยเฉพาะเพื่อทำงานกับหน้าจอ vsplit-patched (ลองดูสิ!)


หากต้องการเจาะจงมากขึ้นให้Ctrl+|แยกscreenในอูบุนตูออกจากค้างคาว
Jonatan Öström
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.