البحث عن مشاركين في الصيانة : ليس لدي الكثير من الوقت لصيانة هذا المشروع هذه الأيام. إذا كان شخص ما يرغب في المشاركة ويصبح مشرفًا مشاركًا، فسيكون ذلك موضع تقدير!
يستبدل McFly بحث محفوظات Shell الافتراضي باستخدام 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
بوويرشيل الأساسية (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)
بعد المطالبة
لتجنب إفساد واجهة مستخدم 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 ( حصريًا ) كـ json . يمكنك تحديد ملف csv كتنسيق تفريغ عبر --format csv
أيضًا.
يحتوي كل عنصر في الأوامر التي تم تفريغها على الحقول التالية:
cmd
: أمر التشغيل.when_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
وخيارات الوقت في نفس الوقت.
على سبيل المثال:
mcfly dump -r ' ^cargo run ' --since ' 2023-09-12 09:15:30 '
سيتم تفريغ جميع بادئات الأوامر مع تشغيل cargo run
منذ 2023-09-12 09:15:30 .
يمكن ضبط عدد من الإعدادات عبر متغيرات البيئة. لتعيين الإعداد، يجب عليك إضافة المقتطفات التالية إلى ~/.bashrc
/ ~/.zshrc
/ ~/.config/fish/config.fish
.
لتبديل نظام الألوان للاستخدام في محطة الإضاءة، قم بتعيين متغير البيئة MCFLY_LIGHT
.
باش / زش:
export MCFLY_LIGHT=TRUE
سمكة:
set -gx MCFLY_LIGHT TRUE
بوويرشيل:
$ env: MCFLY_LIGHT = " TRUE "
نصيحة: في نظام التشغيل macOS، يمكنك استخدام المقتطف التالي لتكوين نظام الألوان بناءً على الإعدادات على مستوى النظام:
باش / زش:
if [[ " $( defaults read -g AppleInterfaceStyle 2 & > /dev/null ) " != " Dark " ]] ; then
export MCFLY_LIGHT=TRUE
fi
بشكل افتراضي، يستخدم Mcfly نظام مفاتيح مستوحى emacs
. إذا كنت ترغب في التبديل إلى نظام المفاتيح المستوحى من vim
، فقم بتعيين متغير البيئة MCFLY_KEY_SCHEME
.
باش / زش:
export MCFLY_KEY_SCHEME=vim
سمكة:
set -gx MCFLY_KEY_SCHEME vim
بوويرشيل:
$ env: MCFLY_KEY_SCHEME = " vim "
لتمكين البحث الغامض، قم بتعيين MCFLY_FUZZY
على عدد صحيح. 0 معطل؛ الأعداد الأعلى لها وزن تجاه المطابقات الأقصر. القيم في النطاق 2-5 تحصل على نتائج جيدة حتى الآن؛ جرب القليل منها وأبلغ عن الأفضل بالنسبة لك!
باش / زش:
export MCFLY_FUZZY=2
سمكة:
set -gx MCFLY_FUZZY 2
بوويرشيل:
$ env: MCFLY_FUZZY = 2
لتغيير الحد الأقصى لعدد النتائج المعروضة، قم بتعيين MCFLY_RESULTS
(الافتراضي: 10).
باش / زش:
export MCFLY_RESULTS=50
سمكة:
set -gx MCFLY_RESULTS 50
بوويرشيل:
$ env: MCFLY_RESULTS = 50
للحذف بدون تأكيد، قم بتعيين MCFLY_DELETE_WITHOUT_CONFIRM
على true.
باش / زش:
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
باش / زش:
export MCFLY_INTERFACE_VIEW=BOTTOM
سمكة:
set -gx MCFLY_INTERFACE_VIEW BOTTOM
بوويرشيل:
$ env: MCFLY_INTERFACE_VIEW = " BOTTOM "
لتعطيل واجهة القائمة، قم بتعيين متغير البيئة MCFLY_DISABLE_MENU
.
باش / زش:
export MCFLY_DISABLE_MENU=TRUE
سمكة:
set -gx MCFLY_DISABLE_MENU TRUE
بوويرشيل:
$ env: MCFLY_DISABLE_MENU = true
لتغيير ترتيب النتائج المعروضة، قم بتعيين MCFLY_RESULTS_SORT
(الافتراضي: RANK). القيم المحتملة RANK
و LAST_RUN
باش / زش:
export MCFLY_RESULTS_SORT=LAST_RUN
سمكة:
set -gx MCFLY_RESULTS_SORT LAST_RUN
بوويرشيل:
$ env: MCFLY_RESULTS_SORT = " LAST_RUN "
لتغيير المطالبة، قم بتعيين MCFLY_PROMPT
(الافتراضي: $
).
باش / زش:
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
إلى شيء مثل 10000 لتحديد عدد السجلات التي يتم أخذها في الاعتبار عند البحث. في هذا المثال، سيقوم McFly بالبحث فقط في أحدث 10000 إدخال.
بدءًا من الإصدار 6.2 من Linux kernel، قامت بعض الأنظمة بتعطيل 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
.
يتم تشجيع المساهمات وإصلاحات الأخطاء! ومع ذلك، لا يجوز لنا دمج العلاقات العامة التي تزيد من التعقيد بشكل كبير بما يتجاوز ما هو مطلوب بالفعل للحفاظ على المشروع. إذا كنت في شك، فلا تتردد في فتح قضية واسأل.
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
وقم بتحديث الإصدار وSHAs. ( 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