ฉันสามารถเรียกใช้กระบวนการกลุ่มที่มีอยู่ต่อได้หรือไม่


5

เมื่อฉันออกจากงานเมื่อวานฉันเปิดเป็นกลุ่มด้วยไฟล์ที่ฉันทำงานอยู่ ฉันทำงานจากที่บ้านวันนี้ฉันจึง VPN'ed ในและเมื่อฉันไปแก้ไขไฟล์เดียวกันฉันได้รับคำเตือนว่ามีเซสชัน vim ปัจจุบันเปิดอยู่กับไฟล์เหล่านั้น

ฉันรู้ว่าฉันสามารถบังคับให้ออกจากระบบผู้ใช้รายอื่นของฉัน แต่นั่นจะฆ่าเซสชันที่มีอยู่เดิม ฉันคิดว่าการเปลี่ยนแปลงของฉันทั้งหมดจะถูกบันทึกไว้ใน.swpไฟล์

เป็นไปได้หรือไม่ที่ฉันจะใช้เซสชัน vim นั้นและเปิดมันด้วยการเข้าสู่ระบบครั้งที่สองของฉัน ด้วยวิธีนี้จะช่วยรักษาการเปลี่ยนแปลงทั้งหมดของฉันไว้อย่างแน่นอนและฉันไม่ต้องเปิดแท็บเดิมทั้งหมดอีกครั้ง

คำตอบ:


7

คุณสามารถฆ่าเสียงเรียกเข้า (แต่ไม่ใช้ -9) และการเปลี่ยนแปลงทั้งหมดของคุณจะถูกบันทึกไว้ใน.swpไฟล์ จากนั้นคุณเริ่มเป็นกลุ่มใหม่และใช้การกู้คืน


2

วิธีการเกี่ยวกับการใช้screenหรือtmuxเป็นทางเลือก? ด้วยวิธีนี้คุณสามารถยกเลิกการเชื่อมต่อเซสชันหน้าจอเมื่อเสร็จสิ้นจากนั้นเข้าสู่ระบบในภายหลัง (อาจมาจากเครื่องอื่น) และเชื่อมต่อใหม่


1

คุณถูกต้องว่าการบังคับให้ออกจากระบบ / ฆ่ากระบวนการ vim อื่น ๆ ของคุณจะช่วยให้คุณสามารถรับไฟล์ ".swp" ทิ้งไว้ข้างหลังและเริ่มทำงานกับมันได้ เพิ่งทดสอบทฤษฎีนี้และทำงานบน Ubuntu ต่อไป เพียงให้แน่ใจว่าคุณเลือกตัวเลือก "กู้คืน" เมื่อมันบอกว่ามีไฟล์สลับอยู่แล้ว

ควรได้รับการแก้ไขใด ๆ ที่ไม่ได้รับการบันทึก แต่ฉันไม่แน่ใจเกี่ยวกับข้อมูลเซสชันอื่น ๆ เช่นประวัติคำสั่ง


... และเห็นได้ชัดว่าใช้งานได้เฉพาะเมื่อคุณมีไฟล์ swap - หากคุณแก้ไขไฟล์ในไดเรกทอรีที่คุณไม่สามารถสร้างไฟล์ใหม่ได้ vim จะไม่สามารถสร้างไฟล์ swap ได้ (และ บอกแล้ว) สิ่งต่าง ๆ จะยังคงใช้งานได้ แต่การเปลี่ยนแปลงที่ไม่ได้บันทึกจะหายไปเมื่อคุณฆ่ากลุ่ม
tdammers


0

คุณไม่สามารถควบคุมกระบวนการที่เริ่มต้นจากเทอร์มินัลอื่น หากคุณเริ่มต้นเป็นกลุ่มภายในหน้าจอคุณจะสามารถแยกเซสชั่นหน้าจอออกแล้วลองติดตั้งใหม่จากเทอร์มินัลอื่น (รวมถึงภายนอกภายนอกผ่าน ssh)

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

อีกทางเลือกหนึ่งคือทำ:mks(ทำเซสชั่น) ทุก ๆ คราว; หากคุณฆ่า vim และเริ่มต้นจากเทอร์มินัลอื่นคุณสามารถระบุSession.vimไฟล์ที่คำสั่ง mks สร้างขึ้น (หรือเริ่ม vim ด้วยvim -S Session.vim) และดำเนินการเซสชันต่อ (คุณอาจต้องตอบกลับพร้อมท์การเรียกคืนบางส่วน)


0

reptyr : ยูทิลิตี้สำหรับการเรียกใช้โปรแกรมที่มีอยู่และแนบไปกับเทอร์มินัลใหม่

จากman page: "reptyr เป็นโปรแกรมสำหรับใช้งานโปรแกรมที่มีอยู่แล้วแนบไปที่เทอร์มินัลใหม่เริ่มกระบวนการที่ใช้เวลานานกว่า ssh แต่ต้องออกไปและไม่ต้องการขัดจังหวะใช่หรือไม่เพียงแค่เริ่มต้นหน้าจอ ใช้ reptyr เพื่อคว้ามันแล้วฆ่าเซสชัน ssh และมุ่งหน้ากลับบ้าน "

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