คุณจะแบ่งปันประวัติระหว่างเทอร์มินัลใน zsh ได้อย่างไร


29

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

เมื่อเปิดเทอร์มินัลหลายเครื่องประวัติจะไม่ถูกแชร์เช่นสิ่งที่คุณป้อนในประวัติเทอร์มินัลหนึ่งจะไม่แสดงในเทอร์มินัลอื่น คิดว่าเป็นทางเลือกของ Bash PROMPT_COMMAND="history -a"(ซึ่งจะบันทึกประวัติก่อนที่พรอมต์จะปรากฏขึ้น)


ดูคำถามและคำตอบที่เกี่ยวข้องเพิ่มเติม: superuser.com/questions/446594/…
lumbric

คำตอบ:


36

ตัวเลือกต่อไปนี้จะใช้ได้:

  • หากต้องการบันทึกทุกคำสั่งก่อนที่จะดำเนินการ (นี่จะแตกต่างจากวิธีแก้ปัญหาประวัติของ bash):

    setopt inc_append_history
    
  • หากต้องการอ่านไฟล์ประวัติทุกครั้งที่มีการเรียกใช้ประวัติรวมถึงฟังก์ชันการทำงานจากinc_append_history:

    setopt share_history
    

สิ่งเหล่านี้สามารถตั้งค่าใน.zshrcไฟล์ของคุณ

ที่เกี่ยวข้องกับทุบตี:


4
"SHARE_HISTORY: ตัวเลือกนี้ทั้งนำเข้าคำสั่งใหม่จากไฟล์ประวัติและทำให้คำสั่งที่พิมพ์ของคุณถูกผนวกเข้ากับไฟล์ประวัติ (ตัวหลังจะเหมือนกับการระบุ INC_APPEND_HISTORY ซึ่งควรปิดหากตัวเลือกนี้มีผลบังคับใช้ )" (จากการเน้นด้วยตนเองเพิ่ม) เช่นตัวเลือก INC_APPEND_HISTORY จะทำสิ่งที่คุณต้องการ
artfulrobot

3
จริงๆแล้วเพียงตัวเลือก SHARE_HISTORY เพียงอย่างเดียวจะทำสิ่งที่คุณต้องการ วลี "ซึ่งควรปิดหากตัวเลือกนี้มีผล" แปลเป็น "[INC_APPEND_HISTORY] ควรปิดหากตัวเลือก [SHARE_HISTORY] มีผล" ฉันได้ทดสอบสิ่งนี้ใน zsh 5.1.1 บน Ubuntu Xenial
Linus Arver

1
@opert ถูกต้อง: setopt share_historyเป็นสิ่งที่จะบรรลุผลตามที่ต้องการ @MJB คุณยินดีที่จะแก้ไขคำตอบเพื่อลบการกล่าวถึงsetopt inc_append_historyหรือไม่ มันบดบังคำตอบที่แท้จริง
bonh

ชื่อกรณีตายและขีดจะถูกละเว้นดังนั้นหากคุณsetopt | grep histจะได้รับและincappendhistory sharehistory
Pablo A

4

หากคุณใช้ OhMyZSH สุดยอดของ Robby Russell มันจะดูแลเรื่องนี้และอื่น ๆ

ดูhttps://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh

setopt inc_append_historyซึ่งรวมถึง


มันเป็นของเขา / เธอ / ของ สำคัญสำหรับงานเปลือก
Cees Timmerman

@CeesTimmerman คงที่ขอบคุณ เป็นสิ่งสำคัญสำหรับการสื่อสารโดยทั่วไปที่ฉันเชื่อ "สำคัญต่อการทำงานของเปลือกหอย" หมายความว่าอย่างไร
james_womack

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