ต้องการคนดูแลร่วม : ช่วงนี้ผมมีเวลาดูแลโครงการนี้ไม่มาก หากมีใครอยากกระโดดเข้ามาเป็นผู้ดูแลร่วมจะยินดีมาก!
McFly แทนที่การค้นหาประวัติเชลล์ ctrl-r
เริ่มต้นของคุณด้วยเครื่องมือค้นหาอัจฉริยะที่คำนึงถึงไดเร็กทอรีการทำงานของคุณและบริบทของคำสั่งที่ดำเนินการล่าสุด คำแนะนำของ McFly ได้รับการจัดลำดับความสำคัญแบบเรียลไทม์ด้วยโครงข่ายประสาทเทียมขนาดเล็ก
TL; DR: ctrl-r
ที่อัปเกรดแล้วซึ่งผลลัพธ์ประวัติสมเหตุสมผลกับสิ่งที่คุณกำลังทำอยู่ตอนนี้
ctrl-r
อีกครั้งเพื่อแสดงการค้นหาประวัติแบบย้อนกลับแบบเต็มหน้าจอโดยจัดลำดับความสำคัญด้วยโครงข่ายประสาทเทียมขนาดเล็ก%
เพื่อจับคู่อักขระจำนวนเท่าใดก็ได้เมื่อค้นหา คุณสมบัติหลักของ McFly คือการจัดลำดับความสำคัญของคำสั่งอัจฉริยะที่ขับเคลื่อนโดยโครงข่ายประสาทเทียมขนาดเล็กที่ทำงานแบบเรียลไทม์ เป้าหมายคือเพื่อให้คำสั่งที่คุณต้องการเรียกใช้เป็นหนึ่งในคำแนะนำยอดนิยมเสมอ
เมื่อแนะนำคำสั่ง McFly จะคำนึงถึง:
ติดตั้ง mcfly
:
brew install mcfly
เพิ่มสิ่งต่อไปนี้ที่ส่วนท้ายของไฟล์ ~/.bashrc
, ~/.zshrc
หรือ ~/.config/fish/config.fish
:
ทุบตี:
eval " $( mcfly init bash ) "
ซช:
eval " $( mcfly init zsh ) "
ปลา:
mcfly init fish | source
วิ่ง . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
หรือรีสตาร์ทเทอร์มินัลอีมูเลเตอร์ของคุณ
mcfly
: brew uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
อัปเดตแผนผังพอร์ต
sudo port selfupdate
ติดตั้ง mcfly
:
sudo port install mcfly
เพิ่มสิ่งต่อไปนี้ต่อท้ายไฟล์ ~/.bashrc
, ~/.zshrc
หรือ ~/.config/fish/config.fish
ตามความเหมาะสม:
ทุบตี:
eval " $( mcfly init bash ) "
ซช:
eval " $( mcfly init zsh ) "
ปลา:
mcfly init fish | source
วิ่ง . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
หรือรีสตาร์ทเทอร์มินัลอีมูเลเตอร์ของคุณ
mcfly
: sudo port uninstall mcfly
~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
curl -LSfs https://raw.githubusercontent.com/cantino/mcfly/master/ci/install.sh | sh -s -- --git cantino/mcfly
(หรือหากผู้ใช้ปัจจุบันไม่มีสิทธิ์แก้ไข /usr/local/bin ให้ใช้ sudo sh -s
)
เพิ่มสิ่งต่อไปนี้ที่ส่วนท้ายของไฟล์ ~/.bashrc
, ~/.zshrc
หรือ ~/.config/fish/config.fish
ตามลำดับ:
ทุบตี:
eval " $( mcfly init bash ) "
ซช:
eval " $( mcfly init zsh ) "
ปลา:
mcfly init fish | source
วิ่ง . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
หรือรีสตาร์ทเทอร์มินัลอีมูเลเตอร์ของคุณ
ดาวน์โหลดรุ่นล่าสุดจาก GitHub
ติดตั้งไปยังตำแหน่งใน $PATH
ของคุณ (ตัวอย่างเช่น คุณสามารถสร้างไดเร็กทอรีที่ ~/bin
คัดลอก mcfly
ไปยังตำแหน่งนี้ และเพิ่ม export PATH="$PATH:$HOME/bin"
ไปยัง .bashrc
/ .zshrc
ของคุณ หรือรัน set -Ua fish_user_paths "$HOME/bin"
สำหรับปลา)
เพิ่มสิ่งต่อไปนี้ที่ส่วนท้ายของคุณ ~/.bashrc
, ~/.zshrc
หรือ ~/.config/fish/config.fish
ตามลำดับ:
ทุบตี:
eval " $( mcfly init bash ) "
ซช:
eval " $( mcfly init zsh ) "
ปลา:
mcfly init fish | source
วิ่ง . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
หรือรีสตาร์ทเทอร์มินัลอีมูเลเตอร์ของคุณ
ติดตั้ง Rust 1.40 หรือใหม่กว่า
เรียกใช้ git clone https://github.com/cantino/mcfly
และ cd mcfly
เรียกใช้ cargo install --path .
ตรวจสอบให้แน่ใจว่า ~/.cargo/bin
อยู่ใน $PATH
ของคุณ
เพิ่มสิ่งต่อไปนี้ในตอนท้ายของ ~/.bashrc
, ~/.zshrc
, ~/.config/fish/config.fish
หรือ powershell $PROFILE
ตามลำดับ:
ทุบตี:
eval " $( mcfly init bash ) "
ซช:
eval " $( mcfly init zsh ) "
ปลา:
mcfly init fish | source
Powershell Core (pwsh)
Invoke-Expression - Command $ (mcfly init powershell | out-string )
วิ่ง . ~/.bashrc
/ . ~/.zshrc
/ source ~/.config/fish/config.fish
/ . $PROFILE
หรือรีสตาร์ทโปรแกรมจำลองเทอร์มินัลของคุณ
เพิ่มโค้ดด้านล่างลงใน zshrc ของคุณ
zinit ice lucid wait " 0a " from " gh-r " as " program " atload ' eval "$(mcfly init zsh)" '
zinit light cantino/mcfly
มันจะดาวน์โหลด mcfly และติดตั้งให้คุณ
$(mcfly init zsh)
จะถูกดำเนินการหลังจากพร้อมท์
เพื่อหลีกเลี่ยงไม่ให้ UI ของ McFly ทำลายประวัติการเลื่อนกลับของคุณใน iTerm2 ตรวจสอบให้แน่ใจว่าไม่ได้เลือกตัวเลือกนี้:
McFly สามารถดัมพ์ประวัติคำสั่งลงใน stdout ได้
ตัวอย่างเช่น:
mcfly dump --since ' 2023-01-01 ' --before ' 2023-09-12 09:15:30 '
จะดัมพ์คำสั่งที่ทำงานระหว่าง 2023-01-01 00:00:00.0 ถึง 2023-09-12 09:15:30 ( Exclusive ) เป็น json คุณสามารถระบุ csv เป็นรูปแบบดัมพ์ผ่าน --format csv
ได้เช่นกัน
แต่ละรายการในคำสั่งดัมพ์จะมีฟิลด์ต่อไปนี้:
cmd
: คำสั่ง runwhen_run
: เวลาที่คำสั่งทำงานในเขตเวลาท้องถิ่นของคุณคุณสามารถดัมพ์ประวัติคำสั่งทั้งหมดโดยไม่มีข้อโต้แย้งใดๆ:
mcfly dump
McFly แยกวิเคราะห์การประทับเวลาผ่าน chrono-systemd-time
ซึ่งเป็นการนำ systemd.time ไปใช้อย่างไม่เข้มงวด โดยมีข้อยกเว้นต่อไปนี้:
ผู้ใช้ McFly ต้องเข้าใจว่า ไม่อนุญาตให้ระบุเขตเวลาในการประทับเวลา McFly จะใช้ เขตเวลาท้องถิ่น ของคุณเสมอ
สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารประกอบ chrono-systemd-time
Dump รองรับการกรองคำสั่งด้วย regex ไวยากรณ์ regex เป็นไปตามลัง regex
ตัวอย่างเช่น:
mcfly dump -r ' ^cargo run '
จะดัมพ์คำนำหน้าคำสั่งทั้งหมดด้วย cargo run
คุณสามารถใช้ตัวเลือก -r/--regex
และ time พร้อมกันได้
ตัวอย่างเช่น:
mcfly dump -r ' ^cargo run ' --since ' 2023-09-12 09:15:30 '
จะดัมพ์คำนำหน้าคำสั่งทั้งหมดด้วย cargo run
ran ตั้งแต่ 2023-09-12 09:15:30
สามารถตั้งค่าได้หลายอย่างผ่านตัวแปรสภาพแวดล้อม ในการตั้งค่าคุณควรเพิ่มตัวอย่างต่อไปนี้ใน ~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
หากต้องการสลับโทนสีเพื่อใช้ในเทอร์มินัลหลอดไฟ ให้ตั้งค่าตัวแปรสภาพแวดล้อม MCFLY_LIGHT
ทุบตี / zsh:
export MCFLY_LIGHT=TRUE
ปลา:
set -gx MCFLY_LIGHT TRUE
ขุมพลัง:
$ env: MCFLY_LIGHT = " TRUE "
เคล็ดลับ: บน macOS คุณสามารถใช้ตัวอย่างต่อไปนี้สำหรับรูปแบบสีที่จะกำหนดค่าตามการตั้งค่าทั้งระบบ:
ทุบตี / zsh:
if [[ " $( defaults read -g AppleInterfaceStyle 2 & > /dev/null ) " != " Dark " ]] ; then
export MCFLY_LIGHT=TRUE
fi
ตามค่าเริ่มต้น Mcfly จะใช้รูปแบบคีย์ที่ได้แรงบันดาลใจ emacs
หากคุณต้องการสลับไปใช้คีย์สคีมที่ได้รับแรงบันดาลใจจาก vim
ให้ตั้งค่าตัวแปรสภาพแวดล้อม MCFLY_KEY_SCHEME
ทุบตี / zsh:
export MCFLY_KEY_SCHEME=vim
ปลา:
set -gx MCFLY_KEY_SCHEME vim
ขุมพลัง:
$ env: MCFLY_KEY_SCHEME = " vim "
หากต้องการเปิดใช้งานการค้นหาแบบคลุมเครือ ให้ตั้งค่า MCFLY_FUZZY
เป็นจำนวนเต็ม 0 ปิด; น้ำหนักตัวเลขที่สูงขึ้นไปสู่การแข่งขันที่สั้นลง ค่าในช่วง 2-5 ให้ผลลัพธ์ที่ดีจนถึงตอนนี้ ลองสักหน่อยแล้วรายงานสิ่งที่ดีที่สุดสำหรับคุณ!
ทุบตี / zsh:
export MCFLY_FUZZY=2
ปลา:
set -gx MCFLY_FUZZY 2
ขุมพลัง:
$ env: MCFLY_FUZZY = 2
หากต้องการเปลี่ยนจำนวนผลลัพธ์สูงสุดที่แสดง ให้ตั้งค่า MCFLY_RESULTS
(ค่าเริ่มต้น: 10)
ทุบตี / zsh:
export MCFLY_RESULTS=50
ปลา:
set -gx MCFLY_RESULTS 50
ขุมพลัง:
$ env: MCFLY_RESULTS = 50
หากต้องการลบโดยไม่มีการยืนยัน ให้ตั้งค่า MCFLY_DELETE_WITHOUT_CONFIRM
เป็นจริง
ทุบตี / zsh:
export MCFLY_DELETE_WITHOUT_CONFIRM=true
ปลา:
set -gx MCFLY_DELETE_WITHOUT_CONFIRM true
ขุมพลัง:
$ env: MCFLY_DELETE_WITHOUT_CONFIRM = " true "
หากต้องการเปลี่ยนมุมมองอินเทอร์เฟซ ให้ตั้งค่า MCFLY_INTERFACE_VIEW
(ค่าเริ่มต้น: TOP
) ตัวเลือกที่มี: TOP
และ BOTTOM
ทุบตี / zsh:
export MCFLY_INTERFACE_VIEW=BOTTOM
ปลา:
set -gx MCFLY_INTERFACE_VIEW BOTTOM
ขุมพลัง:
$ env: MCFLY_INTERFACE_VIEW = " BOTTOM "
หากต้องการปิดใช้งานอินเทอร์เฟซเมนู ให้ตั้งค่าตัวแปรสภาพแวดล้อม MCFLY_DISABLE_MENU
ทุบตี / zsh:
export MCFLY_DISABLE_MENU=TRUE
ปลา:
set -gx MCFLY_DISABLE_MENU TRUE
ขุมพลัง:
$ env: MCFLY_DISABLE_MENU = true
หากต้องการเปลี่ยนการเรียงลำดับผลลัพธ์ที่แสดง ให้ตั้งค่า MCFLY_RESULTS_SORT
(ค่าเริ่มต้น: RANK) ค่าที่เป็นไปได้ RANK
และ LAST_RUN
ทุบตี / zsh:
export MCFLY_RESULTS_SORT=LAST_RUN
ปลา:
set -gx MCFLY_RESULTS_SORT LAST_RUN
ขุมพลัง:
$ env: MCFLY_RESULTS_SORT = " LAST_RUN "
หากต้องการเปลี่ยนพรอมต์ ให้ตั้งค่า MCFLY_PROMPT
(ค่าเริ่มต้น: $
)
ทุบตี / zsh:
export MCFLY_PROMPT= " ❯ "
ปลา:
set -gx MCFLY_PROMPT " ❯ "
ขุมพลัง:
$ env: MCFLY_PROMPT = " > "
โปรดทราบว่าอนุญาตให้ใช้พรอมต์อักขระเดียวเท่านั้น การตั้งค่า MCFLY_PROMPT
เป็น "<str>"
จะรีเซ็ตเป็นพรอมต์เริ่มต้น
McFly เก็บฐานข้อมูล SQLite ไว้ในตำแหน่งมาตรฐานสำหรับระบบปฏิบัติการ บน OS X สิ่งนี้อยู่ใน ~/Library/Application Support/McFly
บน Linux อยู่ใน $XDG_DATA_DIR/mcfly/history.db
(ค่าเริ่มต้นจะเป็น ~/.local/share/mcfly/history.db
) และบน Windows มันคือ %LOCALAPPDATA%McFlydatahistory.db
สำหรับการสนับสนุนแบบเดิม หากมี ~/.mcfly/
อยู่ ระบบจะใช้แทน
หากคุณมีฐานข้อมูลประวัติขนาดใหญ่มากและสังเกตเห็นว่า McFly เปิดตัวช้า คุณสามารถตั้งค่า MCFLY_HISTORY_LIMIT
เป็นประมาณ 10,000 เพื่อจำกัดจำนวนระเบียนที่จะพิจารณาเมื่อค้นหา ในตัวอย่างนี้ McFly จะค้นหาเฉพาะ 10,000 รายการล่าสุด
ตั้งแต่เคอร์เนล Linux เวอร์ชัน 6.2 เป็นต้นไป บางระบบได้ปิดใช้งาน TIOCSTI (ซึ่งก่อนหน้านี้ McFly ใช้เพื่อเขียนคำสั่งที่เลือก) McFly แก้ไขปัญหานี้โดยใช้การเชื่อมโยงคีย์ "จำลอง" สองตัว ซึ่งมีค่าเริ่มต้นเป็น ctrl-x 1
และ ctrl-x 2
หากคุณใช้อย่างใดอย่างหนึ่งเหล่านี้เพื่อวัตถุประสงค์อื่น คุณสามารถตั้งค่า MCFLY_BASH_SEARCH_KEYBINDING
และ MCFLY_BASH_ACCEPT_LINE_KEYBINDING
ตามลำดับ เป็นสิ่งที่คุณไม่ได้ใช้ หากคุณต้องการใช้ลักษณะการทำงาน TIOCSTI แบบเดิม คุณสามารถเปิดใช้งานได้โดยตั้งค่าตัวแปร sysctl
dev.tty.legacy_tiocsti
เป็น 1
บนระบบของคุณ และตั้งค่าตัวแปร bash MCFLY_BASH_USE_TIOCSTI
เป็น 1
ปัจจุบัน McFly ไม่ได้แยกวิเคราะห์หรือใช้ HISTTIMEFORMAT
การสนับสนุนและการแก้ไขข้อบกพร่องได้รับการสนับสนุน! อย่างไรก็ตาม เราไม่สามารถรวม PR ที่เพิ่มความซับซ้อนอย่างมีนัยสำคัญเกินกว่าที่จำเป็นอยู่แล้วในการบำรุงรักษาโครงการ หากคุณมีข้อสงสัย โปรดเปิดประเด็นและสอบถามได้เลย
cargo test
Cargo.toml
และชนเวอร์ชันcargo clippy
และ cargo fmt
cargo build
) และทดสอบ ( cargo test
)git add -p
git ci -m 'Bumping to vx.x.x'
git tag vx.xx
git push origin head --tags
cargo publish
เก่า:
pkg/brew/mcfly.rb
และอัปเดตเวอร์ชันและ SHA ( shasum -a 256 ...
)../homebrew-mcfly/pkg/brew/mcfly.rb
ด้วยcp pkg/brew/mcfly.rb ../homebrew-mcfly/pkg/brew/mcfly.rb
diff ../homebrew-mcfly/pkg/brew/mcfly.rb ../mcfly/pkg/brew/mcfly.rb ; diff ../homebrew-mcfly/HomebrewFormula/mcfly.rb ../mcfly/HomebrewFormula/mcfly.rb
git add -p && git ci -m 'Update homebrew' && git push
cd ../homebrew-mcfly && git add -p && git ci -m 'Update homebrew' && git push && cd ../mcfly