โปรเจกต์และเซสชัน
วิธีจัดงานของ Zshell: โปรเจกต์ในแถบด้านข้าง เซสชันเป็นแท็บ และสิ่งที่คงอยู่หลังเปิดใหม่
โปรเจกต์
โปรเจกต์คือหน่วยงานหนึ่ง โดยทั่วไปคือ repository หนึ่ง มีเทอร์มินัล แท็บ และสถานะแผงของตนเอง
Cmd+N สร้างโปรเจกต์พร้อมหนึ่งเทอร์มินัล เทอร์มินัลเริ่มในไดเรกทอรีของเซสชันปัจจุบัน หรือโฮมไดเรกทอรีหากไม่มีเซสชัน ขั้นต่อไปจึงมักเป็น cd ไปยังตำแหน่งที่ต้องการ จากนั้น Zshell ยึดต้นไม้ไฟล์และแผง Git กับ repository ที่ครอบไดเรกทอรีนั้น
หากไม่ต้องการ cd ให้คลิกขวาโฟลเดอร์ใน Finder แล้วเลือก บริการ → โปรเจกต์ Zshell ใหม่ที่นี่ จะเปิดโปรเจกต์พร้อมเทอร์มินัลที่เริ่มในโฟลเดอร์แล้ว
โปรเจกต์เป็นหน่วยที่ใช้สลับใน Zshell:
| การกระทำ | ปุ่มลัด |
|---|---|
| โปรเจกต์ใหม่ | Cmd+N |
| ไปโปรเจกต์ 1–9 | Cmd+1–9 |
| โปรเจกต์ถัดไป / ก่อนหน้า | Opt+Cmd+] / [ |
| ซ่อนแถบโปรเจกต์ | Cmd+B |
โปรเจกต์ตั้งชื่อตามเซสชันที่เลือก จึงตามเทอร์มินัลเหมือนชื่อแท็บ คลิกขวาในแถบด้านข้างเพื่อ เปลี่ยนชื่อ…, ใช้ชื่ออัตโนมัติ เพื่อกลับคืน, ตั้งไดเรกทอรีโปรเจกต์… และ ปิดโปรเจกต์ การปิดยุติเซสชัน แต่ไม่แตะข้อมูลบนดิสก์
สำหรับเซสชันระยะไกลที่ใช้ร่วมกัน การปิดบานหรือโปรเจกต์จะแยกเฉพาะไคลเอนต์นี้ โดยเชลล์และงานยังทำงานบนโฮสต์
โปรเจกต์ SSH ที่บันทึกไว้
เปิดจานคำสั่ง (Cmd+P) แล้วเลือก โปรเจกต์ SSH ใหม่… ระบุโฮสต์ ผู้ใช้และพอร์ตตามต้องการ และไดเรกทอรีระยะไกลที่จะเปิด เลือกวิธียืนยันตัวตน SSH Agent, รหัสผ่าน, ไฟล์คีย์ส่วนตัว หรือ ข้อความคีย์ส่วนตัว แล้วบันทึกการเชื่อมต่อและเลือก เชื่อมต่อ
การเชื่อมต่อที่บันทึกยังอยู่หลังเปิดใหม่ ใช้ช่อง กลุ่ม เพื่อจัดรายการและปุ่มแก้ไข/ลบเพื่อดูแล รหัสผ่านและคีย์ส่วนตัวที่วางไว้บันทึกใน macOS Keychain ส่วนรายการไฟล์คีย์จดจำเส้นทางไปยังคีย์เดิมของคุณ
หากต้องการคำสั่งหรือ SSH พร้อมตัวเลือกเพิ่มเติม ดูเรียกใช้ด่วน
กลุ่มแถบด้านข้าง
ใช้ กลุ่มใหม่ ด้านล่างแถบเพื่อสร้าง กลุ่มทั่วไป หรือ กลุ่มโฟลเดอร์… กลุ่มทั่วไปเริ่มเทอร์มินัลใหม่ในโฮมไดเรกทอรี ส่วนกลุ่มโฟลเดอร์ใช้โฟลเดอร์ที่เลือกเป็นค่าเริ่มต้น ไดเรกทอรีโปรเจกต์ที่ระบุชัดยังมีลำดับก่อน การย้ายโปรเจกต์ระหว่างกลุ่มไม่เปลี่ยนเทอร์มินัลที่รันอยู่หรือไดเรกทอรีที่ปักหมุด
ลากโปรเจกต์ไปหัวกลุ่มหรือโปรเจกต์อื่นเพื่อจัดระเบียบ ลากไป + (โปรเจกต์ใหม่) ด้านล่างเพื่อเอาออกจากกลุ่ม ลากหัวกลุ่มเพื่อเรียงลำดับได้ คลิกหัวเพื่อยุบ/ขยาย ดับเบิลคลิกเพื่อเปลี่ยนชื่อ หรือใช้เมนูคลิกขวา ตั้งเครื่องหมายสี… เพิ่มสี และ ลบเครื่องหมายสี ล้างสี ลบกลุ่ม ยังคงเปิดโปรเจกต์ทั้งหมด ปุ่มตัวเลขอิงแถวโปรเจกต์ที่มองเห็น การไปโปรเจกต์ถัดไป/ก่อนหน้าอาจแสดงสมาชิกของกลุ่มที่ยุบอยู่
วางโฟลเดอร์จาก Finder ที่ใดก็ได้ในรายการโปรเจกต์ หากเปิดโฟลเดอร์นั้นแล้วจะโฟกัสโปรเจกต์เดิมแทนสร้างซ้ำ
ไดเรกทอรีโปรเจกต์
ต้นไม้ไฟล์และแผง Git ต้องรู้ว่ากำลังแสดงโฟลเดอร์ไหน โดยปกติ Zshell ใช้ไดเรกทอรีปัจจุบันของเทอร์มินัลแล้วไล่ขึ้นไปยัง Git repository ที่ครอบอยู่และใกล้ที่สุด
นี่คือเหตุผลที่ cd ภายใน repository ไม่ทำให้ต้นไม้ไฟล์กระโดด ราก repository ยังคงเป็นราก เมื่ออยู่นอก repository แผงจะตามเทอร์มินัล
เมื่อโปรแกรมเบื้องหน้าไป checkout อื่น เช่น เอเจนต์เข้าสู่ Git worktree ของตน แผงไฟล์ Git และข้อมูลจะตาม checkout นั้น และกลับเมื่องานเบื้องหน้ากลับ ไดเรกทอรีโปรเจกต์ที่ปักหมุดเองมีลำดับก่อนเสมอและปิดการเปลี่ยนรากอัตโนมัตินี้
หากต้องการปักหมุด คลิกขวาโปรเจกต์แล้วเลือก ตั้งไดเรกทอรีโปรเจกต์… โฟลเดอร์จะถูกจำหลังเปิดใหม่ ใช้ไดเรกทอรีอัตโนมัติ คืนการควบคุมให้ระบบ
แผงข้อมูล (Cmd+Shift+I) แสดงทั้ง ไดเรกทอรีปัจจุบัน สดของ shell เมื่อแตกต่าง และ ไดเรกทอรีโปรเจกต์ ที่แผงยึดอยู่ พร้อม (AUTO) เมื่อระบบหาให้
เซสชัน
แต่ละโปรเจกต์มีเซสชันได้ตามต้องการ แสดงเป็นแท็บด้านบน เซสชันคือ login shell จริง เช่น zsh, fish, bash ตามที่บัญชีตั้งไว้ พร้อมไดเรกทอรีทำงานและประวัติเอาต์พุตแยกกัน
| การกระทำ | ปุ่มลัด |
|---|---|
| เซสชันใหม่ | Cmd+T |
| ไปแท็บ 1–9 | Ctrl+1–9 |
| ตัวสลับแท็บตามการใช้ล่าสุด | Ctrl+Tab |
| แท็บถัดไป / ก่อนหน้า | Cmd+Shift+] / [ |
| ปิดช่องที่มีโฟกัส | Cmd+W |
เซสชันในเครื่องใหม่ใช้ไดเรกทอรีโปรเจกต์ที่ปักหมุดก่อน จากนั้นใช้ค่าเริ่มต้นของกลุ่มในแถบ หากไม่มีทั้งคู่จะรับไดเรกทอรีเซสชันปัจจุบัน และสุดท้ายใช้โฮมไดเรกทอรี
กลุ่มแท็บ
คลิกขวาแท็บแล้วเลือก ย้ายไปกลุ่ม → กลุ่มแท็บใหม่ แท็บเข้ากลุ่มใหม่ที่แสดงเป็นลูกศรสีไม่มีชื่อ เซสชันใหม่ที่เปิดจากแท็บในกลุ่มจะอยู่กลุ่มเดิม คลิกขวาลูกศรแล้วเลือก เซสชันใหม่ในกลุ่ม เพื่อสร้างภายในโดยตรง
ลากแท็บไปลูกศรกลุ่มหรือแท็บอื่นเพื่อย้าย เมนูคลิกขวามีรายชื่อกลุ่มและ เอาออกจากกลุ่ม คลิกลูกศรเพื่อยุบ/ขยาย การยุบยังให้เทอร์มินัลที่ใช้งานรันและมองเห็นได้ การไปสมาชิกที่ซ่อนจะขยายกลุ่ม การลบกลุ่มคงแท็บและเซสชันไว้ การปักหมุดแท็บในกลุ่มย้ายมันไปส่วนตรึงนอกกลุ่ม คลิกขวาลูกศรเพื่อ ตั้งเครื่องหมายสี… หรือ ลบเครื่องหมายสี สีและสถานะยุบถูกกู้คืนหลังเปิด Zshell ใหม่
ลากแท็บไปโปรเจกต์ในแถบด้านข้างได้ หรือไปหัวกลุ่มเพื่อสร้างโปรเจกต์ใหม่ในกลุ่มนั้น วางบน + (โปรเจกต์ใหม่) ด้านล่างสร้างโปรเจกต์นอกทุกกลุ่ม ย้ายแท็บไปโปรเจกต์ ในเมนูแท็บไปยังหน้าต่างอื่นได้ด้วย การย้ายรักษาเทอร์มินัลที่ทำงานและเค้าโครงช่องไว้ โปรเจกต์ต้องมีตำแหน่งในเครื่องหรือ SSH เดียวกัน การสร้างโปรเจกต์จากแท็บรักษาตำแหน่งต้นทาง แท็บที่มี diff ยังคงอยู่ในโปรเจกต์เดิม
ชื่อแท็บ
ชื่อแท็บตามสิ่งที่เทอร์มินัลรายงาน ไม่ว่าจะ escape ของพรอมป์หรือโปรแกรมที่กำลังรัน คลิกขวา เปลี่ยนชื่อ… เพื่อตั้งเอง และ ใช้ชื่ออัตโนมัติ เพื่อกลับไปตามเทอร์มินัล
เมนูที่เหลือมี ปิด, ปิดแท็บอื่น, ปิดแท็บด้านขวา, ปิดทั้งหมด, แสดงใน Finder และ คัดลอกเส้นทางเต็ม ของไดเรกทอรีเซสชัน ปิดไฟล์ และ ปิด diff เอาเนื้อหาประเภทนั้นออกทั่วโปรเจกต์ แต่คงเทอร์มินัลและช่องเบราว์เซอร์ไว้
หน้าต่าง
Cmd+Shift+N เปิดหน้าต่างใหม่ หน้าต่างเป็นอิสระ มีโปรเจกต์และสถานะแถบของตนเอง และกู้คืนแยกกัน
สิ่งที่คงอยู่หลังเปิดใหม่
Zshell บันทึกเค้าโครงเป็นสแนปช็อตระหว่างทำงาน เมื่อออกแล้วเปิดใหม่จะได้คืน:
- ทุกโปรเจกต์ตามลำดับ
- ทุกแท็บ รวมชื่อที่ตั้ง การปักหมุด และเครื่องหมายสี
- กลุ่มแถบด้านข้าง รวมชื่อ สี ลำดับ สมาชิก และสถานะยุบ
- กลุ่มแท็บ รวมสี ลำดับ สมาชิก และสถานะยุบ
- ไดเรกทอรีโปรเจกต์ที่ปักหมุดและโปรเจกต์ว่าง
- เค้าโครงช่องในแต่ละแท็บ
- แถบด้านข้างที่เปิดและแผงด้านขวาที่เลือก
เมื่อ PTY เดิมไม่พร้อมใช้งานและเปิด สนทนากับเอเจนต์ต่อ กับการรองรับ AI ไว้ Zshell จะสนทนาเดิมที่ตรวจสอบแล้วของ Claude Code, Codex, Pi หรือ OpenCode ต่อ แผงอื่นเปิด เชลล์ใหม่ ในไดเรกทอรีเดิม บทสนทนาใช้ตัวตนเดิม Zshell จะไม่กู้คืน build ที่กำลังทำงานด้วยการรันคำสั่งซ้ำ
ประวัติเอาต์พุตเดิมกลับมาเมื่อเปิด terminal.restore-history การตั้งค่าใหม่เปิดไว้โดยค่าเริ่มต้น และประวัติที่กู้คืนถูกเก็บบนดิสก์
สภาพแวดล้อมและการเริ่มต้นเทอร์มินัล
เลือกโปรเจกต์แล้วใช้ เทอร์มินัล → สภาพแวดล้อมเทอร์มินัลของโปรเจกต์… เพื่อตั้งตัวแปรแวดล้อมและคำสั่งเริ่มต้น ใช้ เทอร์มินัล → สภาพแวดล้อมเทอร์มินัลของแท็บ… สำหรับค่าทับของแท็บปัจจุบัน
| ขอบเขต | พฤติกรรม |
|---|---|
| โปรเจกต์ | เทอร์มินัลใหม่ในโปรเจกต์รับตัวแปรและคำสั่งเริ่มต้น |
| แท็บ | ตัวแปรทับค่าชื่อเดียวกันของโปรเจกต์ คำสั่งรับต่อ แทนที่ หรือปิดคำสั่งโปรเจกต์ได้ |
การเปลี่ยนมีผลเฉพาะเทอร์มินัลที่สร้างหลังบันทึก โปรเซสเดิมคงสภาพแวดล้อมไว้ การเริ่มต้นทำงานกับ login shell ปกติ ไม่ใช่โปรแกรมเริ่มต้นที่กำหนดเองหรือ argv ที่ระบุชัด
ZSHELL_*, TERM, COLORTERM, TERM_PROGRAM และ TERM_PROGRAM_VERSION จัดการโดย Zshell และทับไม่ได้