คัดลอกและวางสิ่งนี้ลงใน.zshrc
:
เคอร์เซอร์กำลังใช้ประวัติท้องถิ่น:
bindkey "${key[Up]}" up-line-or-local-history
bindkey "${key[Down]}" down-line-or-local-history
up-line-or-local-history() {
zle set-local-history 1
zle up-line-or-history
zle set-local-history 0
}
zle -N up-line-or-local-history
down-line-or-local-history() {
zle set-local-history 1
zle down-line-or-history
zle set-local-history 0
}
zle -N down-line-or-local-history
หากคุณต้องการการเชื่อมโยงคีย์ ( CTRL+ เคอร์เซอร์) เพื่อก้าวผ่านประวัติศาสตร์โลกไปเพิ่มสิ่งนี้ใน.zshrc
:
bindkey "^[[1;5A" up-line-or-history # [CTRL] + Cursor up
bindkey "^[[1;5B" down-line-or-history # [CTRL] + Cursor down
ในการทำให้ตัวเลือกนี้ทำงานต้องมีการเปิดใช้งานตัวเลือก SHARE_HISTORY (ดู16.2.4 ประวัติ ) เรียกใช้setopt
และตรวจสอบว่ามีรายการ "sharehistory" อยู่หรือไม่ ถ้าไม่ได้เพิ่มที่คุณsetopt sharehistory
.zshrc
จากนั้นหนึ่งสามารถใช้ประวัติศาสตร์ท้องถิ่นตั้งค่าตามที่เราทำข้างต้น documenation พูดว่า:
ตามค่าเริ่มต้นคำสั่งการเคลื่อนย้ายประวัติจะไปที่บรรทัดที่นำเข้ารวมถึงบรรทัดท้องถิ่น แต่คุณสามารถสลับเปิดและปิดได้ด้วยการเชื่อมโยง zle ชุดประวัติโลคอล นอกจากนี้ยังเป็นไปได้ที่จะสร้างวิดเจ็ต zle ที่จะทำให้บางคำสั่งละเว้นคำสั่งที่นำเข้าและบางคำสั่งรวมถึง
โปรดทราบว่าตามค่าเริ่มต้นจะใช้ประวัติทั่วโลก (และฟังก์ชั่นทั้งหมดลงท้ายด้วย "zle set-local-history 0" นั่นคือปิดใช้งานประวัติท้องถิ่น) ดังนั้นการกดCTRL+ Rจะค้นหาประวัติทั่วโลกตามค่าเริ่มต้น (ซึ่งส่วนใหญ่แล้วจะสมเหตุสมผล)
สิ่งนี้ค่อนข้างคล้ายกับโซลูชันโดย @mpy แต่พร้อมสำหรับการคัดลอกและวาง มันเขียนทับเคอร์เซอร์คีย์ขึ้นและลง ฉันใช้รายการจดหมายนี้
ดูสิ่งนี้ด้วย: