การทำให้ประวัติ Oh-my-zsh เสร็จสมบูรณ์


45

ผมได้เปลี่ยนเร็ว ๆ นี้เพื่อ zsh ใช้ของ oh-my-zshrobbyrussell ก่อนหน้านั้นฉันใช้ทุบตีกับสิ่งที่กำหนดเองจำนวนมากและฉันพลาดสิ่งเดียวไปเพราะ zsh พยายามที่จะ 'ฉลาดเกินไป':

ถ้าฉันพิมพ์git commitและจากนั้นzsh จะผ่านgitคำสั่งล่าสุดทั้งหมด สิ่งที่ฉันต้องการจริงๆคือการทำตามคำสั่งทั้งหมดที่ขึ้นต้นด้วยgit commit(ไม่ใช่แค่git)

ฉันจะบรรลุพฤติกรรมนี้ใน (oh-my-) zsh ได้อย่างไร


แปลกฉันใช้ OMZSH และมันทำตัวแบบนี้ คุณมี 'plugins = (git)' ใน zshrc ของคุณหรือไม่
Chris2048

ใช่ฉันทำ แต่มันไม่เพียง แต่สำหรับคอมไพล์คำสั่งทั้งหมดจะเสร็จสมบูรณ์ด้วยวิธีนี้
Patrick Oscity

คำตอบ:


66

ฉันพบวิธีแก้ไขปัญหาของฉันในเอกสารคู่มือZSHแล้ว Oh-my-zsh ดูเหมือนว่าจะแมปและกุญแจเข้ากับสิ่งที่ชอบ

bindkey '\e[A' history-search-backward
bindkey '\e[B' history-search-forward

ซึ่งให้ผลพฤติกรรมที่แน่นอนที่ฉันอธิบายไว้ข้างต้น เอกสารกำกับ ZSH อธิบายพฤติกรรมของhistory-search-backwardas

ค้นหาย้อนหลังในประวัติศาสตร์สำหรับการเริ่มต้นสอดคล้องกับคำแรกในบัฟเฟอร์



สิ่งที่ฉันต้องการแทนคือการทำแผนที่ต่อไปนี้ซึ่งฉันแทรกลงในของฉัน~/.zshrc:

bindkey '\e[A' history-beginning-search-backward
bindkey '\e[B' history-beginning-search-forward

พฤติกรรมของhistory-beginning-search-backwardเป็นดังนี้:

ค้นหาไปข้างหน้าในประวัติศาสตร์สำหรับสายการเริ่มต้นกับสายปัจจุบันถึงเคอร์เซอร์ ทำให้เคอร์เซอร์อยู่ในตำแหน่งเดิม

นอกจากนี้ถ้า\e[Aไม่ได้ทำงานให้ขึ้นหรือลงลูกศรกด<ctrl-v><KEY (e.g., up arrow)>ใน terminal ^[OAอีกซึ่งจะช่วยให้ \e[Aจากนั้นคุณสามารถใช้วิธีนี้แทน กระบวนการอธิบายไว้ที่นี่: http://zshwiki.org/home/zle/bindkeys


1
ขอบคุณขอบคุณขอบคุณ!! ฉันกำลังจะกินถั่วมากกว่านี้
mhenrixon

สำหรับผู้ใช้ที่ไม่ใช่ OMZ อย่างฉัน: bindkeyไม่ได้ทำอะไรจริงเนื่องจากมีข้อบกพร่องดังนั้นทีม OMZ จึงทำการแก้ไขด้วยปลั๊กอินนี้ bindkeyเพียงแค่ดาวน์โหลดและแหล่งที่มาของมันก่อน
แฟรงคลินหยู

@ Franklin คุณเข้าใจหรือไม่ว่านั่นคือ bs ทั้งหมดใช่มั้ย ปลั๊กอินนั้นไม่ได้ทำอะไรกับ bindkey ยกเว้นใช้เพื่อจับบางเหตุการณ์
nonchip

ว้าวนี่มันสมบูรณ์แบบ!
กระรอก

12

ผมอยากพฤติกรรมเดียวกันสำหรับ zsh กับการติดตั้งและพบปลั๊กอินoh-my-zshhistory-substring-search

ฉันได้รับพฤติกรรมตามที่อธิบายไว้ข้างต้นโดยเพิ่มปลั๊กอินในของฉัน~/.zshrc:

plugins=(git brew npm history-substring-search)

ฉันเดาว่าปลั๊กอินนี้ไม่มีอยู่เมื่อคำถามนี้ถูกหยิบยกขึ้นมา เพียงวิธีอื่นในการบรรลุสิ่งเดียวกัน

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