Fasd: تثبيت جديد ولكن لا يعمل

تم إنشاؤها على ١ ديسمبر ٢٠١٧  ·  14تعليقات  ·  مصدر: clvv/fasd

لقد قمت بتثبيت ubuntu 14.04 باستخدام هذا الأمر
$ sudo add-apt-repository ppa: aacebedo / fasd
sudo apt-get update
sudo apt-get install fasd

ثم حاولت تنفيذ المثال ، لكنه لم يظهر أي نتيجة
$ touch example.txt
مثال على $ fasd
$

هل قمت بتثبيته بشكل خاطئ؟ أم أن الأمر الذي أنفذه غير صحيح؟

التعليق الأكثر فائدة

لست متأكدًا مما إذا كان مرتبطًا. لكني أجد أن https://github.com/jimhester/per-directory-history يتعارض مع fasd. لدي نفس المشكلة أن fasd لا يتتبع أي ملفات أو أدلة. بعد تعطيل المكون الإضافي لكل سجل محفوظات ، يعمل fasd بشكل جيد.

ال 14 كومينتر

لدي نفس المشكلة ، إنها لا تعمل لبعض الوقت.

هل قمت بتضمين رمز التهيئة ( eval "$(fasd --init auto)" ) في وحدة التحكم في shell (على سبيل المثال .bashrc أو .zshrc ) وقمت بتشغيل مثيل جديد من shell الخاص بك؟

نعم ، لقد فعلت ذلك ، يمكن أن أكون قادرًا على إعادة تحديد موقع سجل الإخراج ومع ذلك جربت رمز init العام "$ (fasd --init auto)" ، بعد بدء جلسة zsh أخرى أو إعادة تشغيل iterm وكتابة fasd / fasd -a / ، فقط لا يظهر أي شيء.

إليك مقتطف حول ما هو السجل:

(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
fasd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C [-1، - e]، ​​s [-] n [1، e]' -c - 'c [-1، -A] [- 1، -D ]' -Ffasd_cd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C [-1، - e]، ​​s [-] n [1، e]' -c - 'c [-1، -A] [- 1، -D ]' -F
الأمر -c -tn
الافتراضي -f -tn
أول

حتى أنني جربت "/ usr / local / bin / fasd -a" ولم يظهر شيء ، ليس لدي أي فكرة عن سبب عدم تمكنه من العثور على الأمر نظرًا لأن متغير PATH $ لديه / usr / local / bin.

في 18 كانون الأول (ديسمبر) 2017 ، الساعة 08:15 ، كتب إيوان كيمب < [email protected] [email protected] >:

هل قمت بتضمين رمز التهيئة (Eval "$ (fasd --init auto)") في rc الخاص بالصدفة (على سبيل المثال .bashrc أو .zshrc) وقمت بتشغيل مثيل جديد من shell الخاص بك؟

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ، أو كتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa .

بالمناسبة ، الشيء الوحيد الذي يعمل هو "fasd -h" الذي يؤكد على الأقل أن zsh يمكنه معرفة مكان الأمر ، لذلك ليس لدي أي فكرة عن سبب عدم تمكن loca من العثور على الأمر.

في 18 كانون الأول (ديسمبر) 2017 ، الساعة 09:18 ، كتب Xiao-Meng Wang < [email protected] [email protected] >:

نعم ، لقد فعلت ذلك ، يمكن أن أكون قادرًا على إعادة تحديد موقع سجل الإخراج ومع ذلك جربت رمز init العام "$ (fasd --init auto)" ، بعد بدء جلسة zsh أخرى أو إعادة تشغيل iterm وكتابة fasd / fasd -a / ، فقط لا يظهر أي شيء.

إليك مقتطف حول ما هو السجل:

(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
fasd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C [-1، - e]، ​​s [-] n [1، e]' -c - 'c [-1، -A] [- 1، -D ]' -Ffasd_cd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C [-1، - e]، ​​s [-] n [1، e]' -c - 'c [-1، -A] [- 1، -D ]' -F
الأمر -c -tn
الافتراضي -f -tn
أول

حتى أنني جربت "/ usr / local / bin / fasd -a" ولم يظهر شيء ، ليس لدي أي فكرة عن سبب عدم تمكنه من العثور على الأمر نظرًا لأن متغير PATH $ لديه / usr / local / bin.

في 18 كانون الأول (ديسمبر) 2017 ، الساعة 08:15 ، كتب إيوان كيمب < [email protected] [email protected] >:

هل قمت بتضمين رمز التهيئة (Eval "$ (fasd --init auto)") في rc الخاص بالصدفة (على سبيل المثال .bashrc أو .zshrc) وقمت بتشغيل مثيل جديد من shell الخاص بك؟

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ، أو كتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa .

نفس المشكلة ، بيئي هو نظام Ubuntu الفرعي على Windows 10

يرجى تقديم الحد الأدنى من التكاثر.

قد يساعد في تغيير كود fasd init إلى ما يلي لأغراض تصحيح الأخطاء:

set -x
eval "$(fasd --init auto)"
set +x

أو لتضمين set -x قبل الأمر الذي يخطئ.

لا يمكنني إعادة إظهار هذه المشكلات. فيما يلي الخطوات التي يمكنني تنفيذها للحصول على تثبيت fasd يعمل تحت bash (والذي ، إذا كنت ترغب في التحقق من العمل على نظامك ، يمكنه تضييق نطاق ما إذا كانت المشكلة تكمن في تكوين bashrc الخاص بك أو في أي مكان آخر):

$ testhome=$(mktemp -d)
$ mkdir -p ${testhome}/bin
$ curl -sSL -o "${testhome}/bin/fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd
$ chmod +x ${testhome}/bin/fasd

$ cat > "${testhome}/.bashrc" <<EOF
export PATH=$PATH:${testhome}/bin                                    
# Ensure history is not blank; fasd grabs commands to process from history
# (https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130)
# and, if history is empty, will error out
echo "echo hello world" >> ~/.bash_history
eval "\$(fasd --init auto)" 
EOF

$ env -i HOME=${testhome} bash
$ cd ~/bin
$ cd ~/bin
$ cd ~

$ z bin && pwd

$ touch example.txt
$ fasd example

ملاحظة : يجب تشغيل ما ورد أعلاه تحت غلاف تفاعلي لكي يعمل fasd ، وليس برنامج bash النصي. مع تعديلات طفيفة فقط (استبدال "bash" بـ "zsh") يجب أن يعمل ما سبق مع zsh أيضًا.

ما ورد أعلاه يعمل كما كنت أتوقع (طباعة /tmp/tmp.zKxt6nvlxj/bin و 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt ).

يرجى تقديم أي مما يلي إذا كان بإمكانك:

  1. مزيد من التفاصيل حول ما هو كسر (على سبيل المثال ، ناتج fasd example أو fasd --init بعد تطبيق set -x على الغلاف)
  2. ما إذا كان يمكنك إعادة إنتاجه في بيئة صغيرة مثل المذكورة أعلاه.
  3. الحد الأدنى من التكاثر الفعلي ليس فقط "على جهازي لا يعمل"

مرحبًا إيوان للتعليمات ، إليك بعض النتائج التي حصلت عليها.

الجزء الأول ، ليس لدي أي فكرة عما يحدث:
هذا في zsh

~ ➤ set -x git: master *
EVAL "$ (fasd --init auto)"
مجموعة + x

+ zsh: 2> fasd --init auto
+ zsh: 2> Eval $ '{if ["$ ZSH_VERSION"] && compctl؛ ثم # zsh \ n Eval "$ (fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \ n zsh-wcomp zsh-wcomp-install)" \ n elif ["$ BASH_VERSION"] && كاملة ؛ ثم # bash \ n Eval "$ (fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" \ n else # posix shell \ n Eval "$ (fasd --init posix-alias posix- hook) "\ n fi \ n} >>" / المستخدمون / المسؤول / .config/fasd/fasd.log "2> & 1 '
+ (تقييم): 1> [5.3 ']'
+ (EVAL): 1> compctl
+ (EVAL): 2> fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install
+ (EVAL): 2> Eval $ 'alias a = \' fasd -a \ '\ nalias s = \' fasd -si \ '\ nalias sd = \' fasd -sid \ '\ nalias sf = \' fasd - sif \ '\ nalias d = \' fasd -d \ '\ nalias f = \' fasd -f \ '\ n # وظيفة لتنفيذ قرص مدمج \ nfasd_cd () {\ n if [$ # -le 1] ؛ ثم \ n fasd "$ @" \ n else \ n local _fasd_ret = "$ (fasd -e \ 'printf٪ s \'" $ @ ")" \ n [-z "$ _fasd_ret"] && رجوع \ n [ -d "$ _fasd_ret"] && cd "$ _fasd_ret" || printf٪ s \ n "$ _fasd_ret" \ n fi \ n} \ nalias z = \ 'fasd_cd -d \' \ nalias zz = \ 'fasd_cd -d -i \' \ n \ n # أضف خطاف zsh \ n_fasd_preexec ( ) {\ n {Eval "fasd --proc $ (fasd --sanitize $ 1)"؛ } >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1 \ n} \ nautoload -Uz add-zsh-hook \ nadd-zsh-hook preexec _fasd_preexec \ n \ n # zsh command mode mode Complete \ n_fasd_zsh_cmd_complete () {\ n شكوى محلية \ n قراءة -c شكوى \ n (($ + compstate)) && compstate [insert] = menu # no توسيع إذا تم تحميل compsys \ n رد = ($ {(f) "$ ( fasd --complete "$ compl") "}) \ n} \ n \ n # إكمال وضع الأمر enbale \ ncompctl -U -K _fasd_zsh_cmd_complete -V fasd -x \ 'C [-1، - e]، ​​s [- ] n [1، e] \ '-c - \ n \' c [-1، -A] [- 1، -D] \ '-f - fasd fasd_cd \ n \ n (($ + وظائف [compdef ])) && {\ n # zsh word mode Complete \ n _fasd_zsh_word_complete () {\ n ["$ 2"] && local _fasd_cur = "$ 2" \ n [-z "$ _fasd_cur"] && local _fasd_cur = "$ {words [CURRENT]} "\ n local fnd =" $ {_ fasd_cur //، /} "\ n local typ = $ {1: -e} \ n fasd --query $ typ" $ fnd "2 >>" / المستخدمون / Admin/.config/fasd/fasd.log "| sed \ 's / ^ [^] [] // \' | do \ n compadd -U -V fasd "$ line" \ n تم إنجازه \ n compstate [insert] = list # no expand \ n} \ n _fasd_zsh_word_complete_f () {_fasd_zsh_word_complete f؛ } \ n _fasd_zsh_word_complete_trigger () {\ n local _fasd_cur = "$ {Words [CURRENT]}" \ n Eval $ (fasd --word-complete-trigger _fasd_zsh_word_complete $ _fasd_cur) \ n} \ n # عرّف أدوات zle \ n -C fasd-complete-word _generic \ n zstyle \ ': complete: fasd-complete: ' complete _fasd_zsh_word_complete \ n zstyle \ ': complete: fasd-complete: ' menu-select n \ n zle -C fasd -fasd_zsh_word_complete_f \ n zstyle \ ': complete: fasd-complete-f: ' menu-select \ n \ n zle -C fasd-complete-d complete-word _generic \ n zstyle \ ': complete: fasd-complete-d: ' complete _fasd_zsh_word_complete_d \ n zstyle \ ': complete: fasd-complete-d: ' menu-select \ n } \ n \ n (($ + وظائف [compdef])) && {\ n # تمكين إكمال وضع الكلمات \ n Orig_comp = "$ (zstyle -L \ ': complete: *' complete 2 >>" / Users / Administrator / .config / fasd / fasd.log ")" \ n إذا ["$ Orig_comp"]؛ ) EVAL "$ orig_comp _fasd_zsh_word_complete_trigger" ؛ Orig_comp \ n} '
+ (EVAL): 1> الاسم المستعار 'a = fasd -a'
+ (EVAL): 2> alias 's = fasd -si'
+ (EVAL): 3> ​​الاسم المستعار 'sd = fasd -sid'
+ (EVAL): 4> alias 'sf = fasd -sif'
+ (EVAL): 5> الاسم المستعار 'd = fasd -d'
+ (EVAL): 6> الاسم المستعار 'f = fasd -f'
+ (EVAL): 17> الاسم المستعار 'z = fasd_cd -d'
+ (EVAL): 18> الاسم المستعار 'zz = fasd_cd -d -i'
+ (EVAL): 24> التحميل التلقائي -Uz add-zsh-hook
+ (EVAL): 25> add-zsh-hook preexec _fasd_preexec
+ zsh: 3> مجموعة + س

الجزء الثاني ، لا يمكنني كتابة ملف المثال لذلك قمت بالتغيير إلى الجذر وفي هذا الحد الأدنى من البيئة ، يعمل fasd. لم أقوم بإنشاء ملف .bashrc حتى الآن.

bash-3.2 $ sudo su
كلمة المرور:
sh-3.2 # testhome = $ (mktemp -d)
sh-3.2 # mkdir -p $ {testhome} / bin
sh-3.2 # cd $ {testhome} / bin
sh-3.2 # ls
sh-3.2 # pwd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/bin
sh-3.2 # curl -sSL -o "$ {testhome} / bin / fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd؛chmod https://raw.githubusercontent.com/clvv/ fasd / master / fasd؛ chmod + x $ {testhome} / bin / fasd؛
sh-3.2 # ls -al
إجمالي 40
drwxr-xr-x 3 عجلة الجذر 96 ديسمبر 28 16:51.
drwx ------ 3 عجلة الجذر 96 ديسمبر 28 16:50 ..
-rwxr-xr-x 1 root wheel 20195 Dec 28 16:51 fasd
bash-3.2 # EVAL "$ (./ bin / fasd --init auto)"
bash-3.2 # fasd
bash-3.2 # ls
.viminfo bin example.txt
bash-3.2 # echo "echo hello world" >> ~ / .bash_history
bash-3.2 # ls
.bash_history .viminfo bin example.txt
bash-3.2 # export PATH = $ PATH: $ {testhome} / bin
bash-3.2 # ls
.bash_history .fasd .viminfo bin example.txt
bash-3.2 # v. فاسد
bash: v: الأمر غير موجود
bash-3.2 # cat .fasd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd | 1 | 1514451952
bash-3.2 # ./bin/fasd
12 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
مثال bash-3.2 # ./bin/fasd
bash-3.2 # rm example.txt
bash-3.2 # المس example.txt
مثال bash-3.2 # ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

في 28 ديسمبر 2017 الساعة 02:37 ، كتب إيوان كيمب < [email protected] [email protected] >:

يرجى تقديم الحد الأدنى من التكاثر.

قد يساعد في تغيير كود fasd init إلى ما يلي لأغراض تصحيح الأخطاء:

مجموعة -x
EVAL "$ (fasd --init auto)"
مجموعة + x
أو لتضمين set -x قبل الأمر الذي يخطئ.

لا يمكنني إعادة إظهار هذه المشكلات. فيما يلي الخطوات التي يمكنني تنفيذها للحصول على تثبيت fasd يعمل تحت bash (والذي ، إذا كنت ترغب في التحقق من العمل على نظامك ، يمكنه تضييق نطاق ما إذا كانت المشكلة تكمن في تكوين bashrc الخاص بك أو في أي مكان آخر):

$ testhome = $ (mktemp -d)
$ mkdir -p $ {testhome} / bin
$ curl -sSL -o "$ {testhome} / bin / fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd
$ chmod + x $ {testhome} / bin / fasd

$ cat> "$ {testhome} /. bashrc" < تصدير PATH = $ PATH: $ {testhome} / bin

تأكد من أن السجل ليس فارغًا ؛ يستحوذ fasd على أوامر المعالجة من التاريخ

(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54c

وإذا كان السجل فارغًا ، فسيتم الخطأ

صدى "صدى مرحبا العالم" >> ~ / .bash_history
EVAL "$ (fasd --init auto)"
EOF

$ env -i HOME = $ {testhome} باش
$ cd ~ / bin
$ cd ~ / bin
$ cd ~

$ z bin && pwd

$ touch example.txt
مثال على $ fasd
ملاحظة: يجب تشغيل ما ورد أعلاه تحت غلاف تفاعلي لكي يعمل fasd ، وليس برنامج bash النصي. مع تعديلات طفيفة فقط ، يجب أن يعمل ما سبق مع zsh أيضًا.

ما ورد أعلاه يعمل كما كنت أتوقع (طباعة /tmp/tmp.zKxt6nvlxj/bin و 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

يرجى تقديم أي مما يلي إذا كان بإمكانك:

مزيد من التفاصيل حول ما هو كسر (على سبيل المثال إخراج fasd مثال أو fasd --init بعد تطبيق set -x على الغلاف)
ما إذا كان يمكنك إعادة إنتاجه في بيئة صغيرة مثل المذكورة أعلاه.
الحد الأدنى من التكاثر الفعلي ليس فقط "على جهازي لا يعمل"
-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ، أو تجاهل الموضوع https://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3- fIjkOr9WFjjWks5tEo53gaJpZM4QxsoO .

https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed -b52498112777.png https://github.com/clvv/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/n$ https://github.com/clvv/fasd/blob / 90b531a5daaa545c74c7d98974b54cbdb92659fc / fasd # L127-L130 https://github.com/clvv/fasd/issues/117#issuecomment-354156542

يظهر رمز التهيئة zsh الخاص بي على النحو التالي:

fasd_cache = "$ HOME / .config / fasd / fasd-init-zsh"
إذا كان ["$ (command -v fasd)" -nt "$ fasd_cache" -o! -s "$ fasd_cache"] ؛ ومن بعد
fasd - init posix-alias posix-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$ fasd_cache"
فاي
المصدر "$ fasd_cache"
إلغاء ضبط fasd_cache

حيث يكون fasd-init-zsh:

fasd ➤ cat fasd-init-zsh git: master *
الاسم المستعار a = 'fasd -a'
الاسم المستعار s = 'fasd -si'
الاسم المستعار sd = 'fasd -sid'
الاسم المستعار sf = 'fasd -sif'
الاسم المستعار د = 'fasd -d'
الاسم المستعار f = 'fasd -f'

وظيفة لتنفيذ قرص مدمج

fasd_cd () {
إذا [$ # -le 1]؛ ومن بعد
fasd "$ @"
آخر
local _fasd_ret = "$ (fasd -e 'printf٪ s'" $ @ ")"
[-z "$ _fasd_ret"] && رجوع
[-d "$ _fasd_ret"] && cd "$ _fasd_ret" || printf٪ s \ n "$ _fasd_ret"
فاي
}
الاسم المستعار z = 'fasd_cd -d'
الاسم المستعار zz = 'fasd_cd -d -i'

_fasd_prompt_func () {
EVAL "fasd --proc $ (fasd --sanitize $ (history 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/ المستخدمون / المسؤول / .config/fasd/fasd.log" 2> & 1
}

إضافة خطاف باش

حالة $ PROMPT_COMMAND في
_fasd_prompt_func ) ؛؛
*) PROMPT_COMMAND = "_ fasd_prompt_func ؛ $ PROMPT_COMMAND" ؛؛
esac

إكمال وضع أمر bash

_fasd_bash_cmd_complete () {
# أمر كامل بعد "-e"
cur المحلي = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A command $ cur)) && return# أكمل باستخدام قراءة افتراضية كاملة بعد "-A" أو "-D"حالة $ {COMP_WORDS [COMP_CWORD-1]} في-A | -D) COMPREPLY = ($ (compgen -o افتراضي $ cur)) && return ؛؛esac# الحصول على نتائج الاستكمال باستخدام الأسماء المستعارة الموسعةالنتيجة المحلية = $ (fasd --complete "$ (الاسم المستعار -p $ COMP_WORDS \2 >> "/ المستخدمون / المسؤول / .config / fasd / fasd.log" | \)' / \ 1 / p")$ {COMP_LINE # } "| أثناء قراءة سطر r ؛ افعل
quote_readline "$ line" 2> / dev / null || \
printf٪ q "$ line" 2> / dev / null && \
printf \ n
منجز)
IFS المحلي = $ '\ n'؛ COMPREPLY = (النتيجة بالدولار الأمريكي)
}
_fasd_bash_hook_cmd_complete () {
لـ cmd بـ $ * ؛ فعل
-F _fasd_bash_cmd_complete $ cmd
منجز
}

تمكين إكمال وضع أمر bash

_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz

في fasd.log ، يتحدث في الغالب عن:

(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
(EVAL): 2: الأمر غير موجود: fasd
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn
الافتراضي -f -tn
أول
الأمر -c -tn

لكن عندما أكتب fasd -h ، فهو يعمل:

~ ➤ fasd -h git: ماستر *
fasd [خيارات] [استعلام ...]
[f | a | s | d | z] [عمليات] [استعلام ...]
والخيارات:
-s قائمة المسارات مع عشرات
-l قائمة المسارات بدون عشرات
-أنا الوضع التفاعلي
-eتعيين الأمر لتنفيذه على ملف النتيجة
فقط استخدمالخلفية
إضافة خلفية إضافية
-a مطابقة الملفات والدلائل
-d مباراة الدلائل فقط
-f تطابق الملفات فقط
-r المباراة بالترتيب فقط
-t تطابق الوصول الأخير فقط
-عكس ترتيب القائمة
-h إظهار رسالة تعليمات مختصرة
- [0-9] حدد الإدخال التاسع

fasd [-A | -D] [مسارات ...]
-A إضافة مسارات
-د حذف المسارات
~ ➤ بوابة: سيد *

في 28 ديسمبر 2017 ، الساعة 17:15 ، شياو منغ وانغ[email protected]> كتب:

مرحبًا إيوان للتعليمات ، إليك بعض النتائج التي حصلت عليها.

الجزء الأول ، ليس لدي أي فكرة عما يحدث:
هذا في zsh

~ ➤ set -x git: master *
EVAL "$ (fasd --init auto)"
مجموعة + x

+ zsh: 2> fasd --init auto
+ zsh: 2> Eval $ '{if ["$ ZSH_VERSION"] && compctl؛ ثم # zsh \ n Eval "$ (fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \ n zsh-wcomp zsh-wcomp-install)" \ n elif ["$ BASH_VERSION"] && كاملة ؛ ثم # bash \ n Eval "$ (fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" \ n else # posix shell \ n Eval "$ (fasd --init posix-alias posix- hook) "\ n fi \ n} >>" / المستخدمون / المسؤول / .config/fasd/fasd.log "2> & 1 '
+ (تقييم): 1> [5.3 ']'
+ (EVAL): 1> compctl
+ (EVAL): 2> fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install
+ (EVAL): 2> Eval $ 'alias a = \' fasd -a \ '\ nalias s = \' fasd -si \ '\ nalias sd = \' fasd -sid \ '\ nalias sf = \' fasd - sif \ '\ nalias d = \' fasd -d \ '\ nalias f = \' fasd -f \ '\ n # وظيفة لتنفيذ قرص مدمج \ nfasd_cd () {\ n if [$ # -le 1] ؛ ثم \ n fasd "$ @" \ n else \ n local _fasd_ret = "$ (fasd -e \ 'printf٪ s \'" $ @ ")" \ n [-z "$ _fasd_ret"] && رجوع \ n [ -d "$ _fasd_ret"] && cd "$ _fasd_ret" || printf٪ s \ n "$ _fasd_ret" \ n fi \ n} \ nalias z = \ 'fasd_cd -d \' \ nalias zz = \ 'fasd_cd -d -i \' \ n \ n # أضف خطاف zsh \ n_fasd_preexec ( ) {\ n {Eval "fasd --proc $ (fasd --sanitize $ 1)"؛ } >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1 \ n} \ nautoload -Uz add-zsh-hook \ nadd-zsh-hook preexec _fasd_preexec \ n \ n # zsh command mode mode Complete \ n_fasd_zsh_cmd_complete () {\ n شكوى محلية \ n قراءة -c شكوى \ n (($ + compstate)) && compstate [insert] = menu # no توسيع إذا تم تحميل compsys \ n رد = ($ {(f) "$ ( fasd --complete "$ compl") "}) \ n} \ n \ n # إكمال وضع الأمر enbale \ ncompctl -U -K _fasd_zsh_cmd_complete -V fasd -x \ 'C [-1، - e]، ​​s [- ] n [1، e] \ '-c - \ n \' c [-1، -A] [- 1، -D] \ '-f - fasd fasd_cd \ n \ n (($ + وظائف [compdef ])) && {\ n # zsh word mode Complete \ n _fasd_zsh_word_complete () {\ n ["$ 2"] && local _fasd_cur = "$ 2" \ n [-z "$ _fasd_cur"] && local _fasd_cur = "$ {words [CURRENT]} "\ n local fnd =" $ {_ fasd_cur //، /} "\ n local typ = $ {1: -e} \ n fasd --query $ typ" $ fnd "2 >>" / المستخدمون / Admin/.config/fasd/fasd.log "| sed \ 's / ^ [^] [] // \' | do \ n compadd -U -V fasd "$ line" \ n تم إنجازه \ n compstate [insert] = list # no expand \ n} \ n _fasd_zsh_word_complete_f () {_fasd_zsh_word_complete f؛ } \ n _fasd_zsh_word_complete_trigger () {\ n local _fasd_cur = "$ {Words [CURRENT]}" \ n Eval $ (fasd --word-complete-trigger _fasd_zsh_word_complete $ _fasd_cur) \ n} \ n # عرّف أدوات zle \ n -C fasd-complete-word _generic \ n zstyle \ ': complete: fasd-complete: ' complete _fasd_zsh_word_complete \ n zstyle \ ': complete: fasd-complete: ' menu-select n \ n zle -C fasd -fasd_zsh_word_complete_f \ n zstyle \ ': complete: fasd-complete-f: ' menu-select \ n \ n zle -C fasd-complete-d complete-word _generic \ n zstyle \ ': complete: fasd-complete-d: ' complete _fasd_zsh_word_complete_d \ n zstyle \ ': complete: fasd-complete-d: ' menu-select \ n } \ n \ n (($ + وظائف [compdef])) && {\ n # تمكين إكمال وضع الكلمات \ n Orig_comp = "$ (zstyle -L \ ': complete: *' complete 2 >>" / Users / Administrator / .config / fasd / fasd.log ")" \ n إذا ["$ Orig_comp"]؛ ) EVAL "$ orig_comp _fasd_zsh_word_complete_trigger" ؛ Orig_comp \ n} '
+ (EVAL): 1> الاسم المستعار 'a = fasd -a'
+ (EVAL): 2> alias 's = fasd -si'
+ (EVAL): 3> ​​الاسم المستعار 'sd = fasd -sid'
+ (EVAL): 4> alias 'sf = fasd -sif'
+ (EVAL): 5> الاسم المستعار 'd = fasd -d'
+ (EVAL): 6> الاسم المستعار 'f = fasd -f'
+ (EVAL): 17> الاسم المستعار 'z = fasd_cd -d'
+ (EVAL): 18> الاسم المستعار 'zz = fasd_cd -d -i'
+ (EVAL): 24> التحميل التلقائي -Uz add-zsh-hook
+ (EVAL): 25> add-zsh-hook preexec _fasd_preexec
+ zsh: 3> مجموعة + س

الجزء الثاني ، لا يمكنني كتابة ملف المثال لذلك قمت بالتغيير إلى الجذر وفي هذا الحد الأدنى من البيئة ، يعمل fasd. لم أقوم بإنشاء ملف .bashrc حتى الآن.

bash-3.2 $ sudo su
كلمة المرور:
sh-3.2 # testhome = $ (mktemp -d)
sh-3.2 # mkdir -p $ {testhome} / bin
sh-3.2 # cd $ {testhome} / bin
sh-3.2 # ls
sh-3.2 # pwd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/bin
sh-3.2 # curl -sSL -o "$ {testhome} / bin / fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd؛chmod https://raw.githubusercontent.com/clvv/ fasd / master / fasd؛ chmod + x $ {testhome} / bin / fasd؛
sh-3.2 # ls -al
إجمالي 40
drwxr-xr-x 3 عجلة الجذر 96 ديسمبر 28 16:51.
drwx ------ 3 عجلة الجذر 96 ديسمبر 28 16:50 ..
-rwxr-xr-x 1 root wheel 20195 Dec 28 16:51 fasd
bash-3.2 # EVAL "$ (./ bin / fasd --init auto)"
bash-3.2 # fasd
bash-3.2 # ls
.viminfo bin example.txt
bash-3.2 # echo "echo hello world" >> ~ / .bash_history
bash-3.2 # ls
.bash_history .viminfo bin example.txt
bash-3.2 # export PATH = $ PATH: $ {testhome} / bin
bash-3.2 # ls
.bash_history .fasd .viminfo bin example.txt
bash-3.2 # v. فاسد
bash: v: الأمر غير موجود
bash-3.2 # cat .fasd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd | 1 | 1514451952
bash-3.2 # ./bin/fasd
12 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
مثال bash-3.2 # ./bin/fasd
bash-3.2 # rm example.txt
bash-3.2 # المس example.txt
مثال bash-3.2 # ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

في 28 ديسمبر 2017 الساعة 02:37 ، إيوان كيمب[email protected]> كتب:

يرجى تقديم الحد الأدنى من التكاثر.

قد يساعد في تغيير كود fasd init إلى ما يلي لأغراض تصحيح الأخطاء:

مجموعة -x
EVAL "$ (fasd --init auto)"
مجموعة + x
أو لتضمين set -x قبل الأمر الذي يخطئ.

لا يمكنني إعادة إظهار هذه المشكلات. فيما يلي الخطوات التي يمكنني تنفيذها للحصول على تثبيت fasd يعمل تحت bash (والذي ، إذا كنت ترغب في التحقق من العمل على نظامك ، يمكنه تضييق نطاق ما إذا كانت المشكلة تكمن في تكوين bashrc الخاص بك أو في أي مكان آخر):

$ testhome = $ (mktemp -d)
$ mkdir -p $ {testhome} / bin
$ curl -sSL -o "$ {testhome} / bin / fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd
$ chmod + x $ {testhome} / bin / fasd

$ cat> "$ {testhome} /. bashrc" < تصدير PATH = $ PATH: $ {testhome} / bin

تأكد من أن السجل ليس فارغًا ؛ يستحوذ fasd على أوامر المعالجة من التاريخ

(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54c

وإذا كان السجل فارغًا ، فسيتم الخطأ

صدى "صدى مرحبا العالم" >> ~ / .bash_history
Eval "\ $ (fasd --init auto)"
EOF

$ env -i HOME = $ {testhome} باش
$ cd ~ / bin
$ cd ~ / bin
$ cd ~

$ z bin && pwd

$ touch example.txt
مثال على $ fasd
ملاحظة: يجب تشغيل ما ورد أعلاه تحت غلاف تفاعلي لكي يعمل fasd ، وليس برنامج bash النصي. مع تعديلات طفيفة فقط ، يجب أن يعمل ما سبق مع zsh أيضًا.

ما ورد أعلاه يعمل كما كنت أتوقع (طباعة /tmp/tmp.zKxt6nvlxj/bin و 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

يرجى تقديم أي مما يلي إذا كان بإمكانك:

مزيد من التفاصيل حول ما هو كسر (على سبيل المثال إخراج fasd مثال أو fasd --init بعد تطبيق set -x على الغلاف)
ما إذا كان يمكنك إعادة إنتاجه في بيئة صغيرة مثل المذكورة أعلاه.
الحد الأدنى من التكاثر الفعلي ليس فقط "على جهازي لا يعمل"
-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ، أو تجاهل الموضوع https://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3- fIjkOr9WFjjWks5tEo53gaJpZM4QxsoO .

https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc -7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0 -11e6-9aed-b52498112777.png https://github.com/clvv/fasd https://github.com/clvv/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/ ن $ https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/n$ https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https: // github .com / clvv / fasd / blob / 90b531a5daaa545c74c7d98974b54cbdb92659fc / fasd # L127-L130 https://github.com/clvv/fasd/issues/117#issuecomment-354156542 https://github.com/clvv/fasd/iss # issuecomment-354156542

لست متأكدًا مما إذا كان مرتبطًا. لكني أجد أن https://github.com/jimhester/per-directory-history يتعارض مع fasd. لدي نفس المشكلة أن fasd لا يتتبع أي ملفات أو أدلة. بعد تعطيل المكون الإضافي لكل سجل محفوظات ، يعمل fasd بشكل جيد.

حصل هذا أيضًا على النظام الفرعي لنظام windows (قد تكون المشكلة هنا) ، مع كل من bash و zsh .
حتى أنه حاول تعطيل كل الأشياء الأخرى في ملفات rc ، لكن قوائم fasd فارغة دائمًا.

حاولت أيضًا استخدام كل من fasd من الريبو بالإضافة إلى تثبيته مع مدير الحزم ، ولم تتغير النتائج.

set -x
eval "$(fasd --init auto)"
set +x
+-zsh:2> fasd --init auto
+-zsh:2> eval $'{ if [ "$ZSH_VERSION" ] && compctl; then # zsh\n    eval "$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \\\n      zsh-wcomp zsh-wcomp-install)"\n  elif [ "$BASH_VERSION" ] && complete; then # bash\n    eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)"\n  else # posix shell\n    eval "$(fasd --init posix-alias posix-hook)"\n  fi\n} >> "/dev/null" 2>&1'
+(eval):1> [ 5.5.1 ']'
+(eval):1> compctl
+(eval):2> fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install
+(eval):2> eval $'alias a=\'fasd -a\'\nalias s=\'fasd -si\'\nalias sd=\'fasd -sid\'\nalias sf=\'fasd -sif\'\nalias d=\'fasd -d\'\nalias f=\'fasd -f\'\n# function to execute built-in cd\nfasd_cd() {\n  if [ $# -le 1 ]; then\n    fasd "$@"\n  else\n    local _fasd_ret="$(fasd -e \'printf %s\' "$@")"\n    [ -z "$_fasd_ret" ] && return\n    [ -d "$_fasd_ret" ] && cd "$_fasd_ret" || printf %s\\n "$_fasd_ret"\n  fi\n}\nalias z=\'fasd_cd -d\'\nalias zz=\'fasd_cd -d -i\'\n\n# add zsh hook\n_fasd_preexec() {\n  { eval "fasd --proc $(fasd --sanitize $1)"; } >> "/dev/null" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# zsh command mode completion\n_fasd_zsh_cmd_complete() {\n  local compl\n  read -c compl\n  (( $+compstate )) && compstate[insert]=menu # no expand if compsys loaded\n  reply=(${(f)"$(fasd --complete "$compl")"})\n}\n\n# enbale command mode completion\ncompctl -U -K _fasd_zsh_cmd_complete -V fasd -x \'C[-1,-*e],s[-]n[1,e]\' -c - \\\n  \'c[-1,-A][-1,-D]\' -f -- fasd fasd_cd\n\n(( $+functions[compdef] )) && {\n  # zsh word mode completion\n  _fasd_zsh_word_complete() {\n    [ "$2" ] && local _fasd_cur="$2"\n    [ -z "$_fasd_cur" ] && local _fasd_cur="${words[CURRENT]}"\n    local fnd="${_fasd_cur//,/ }"\n    local typ=${1:-e}\n    fasd --query $typ "$fnd" 2>> "/dev/null" | \\\n      sort -nr | sed \'s/^[^ ]*[ ]*//\' | while read -r line; do\n        compadd -U -V fasd "$line"\n      done\n    compstate[insert]=menu # no expand\n  }\n  _fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; }\n  _fasd_zsh_word_complete_d() { _fasd_zsh_word_complete d ; }\n  _fasd_zsh_word_complete_trigger() {\n    local _fasd_cur="${words[CURRENT]}"\n    eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n  }\n  # define zle widgets\n  zle -C fasd-complete complete-word _generic\n  zstyle \':completion:fasd-complete:*\' completer _fasd_zsh_word_complete\n  zstyle \':completion:fasd-complete:*\' menu-select\n\n  zle -C fasd-complete-f complete-word _generic\n  zstyle \':completion:fasd-complete-f:*\' completer _fasd_zsh_word_complete_f\n  zstyle \':completion:fasd-complete-f:*\' menu-select\n\n  zle -C fasd-complete-d complete-word _generic\n  zstyle \':completion:fasd-complete-d:*\' completer _fasd_zsh_word_complete_d\n  zstyle \':completion:fasd-complete-d:*\' menu-select\n}\n\n(( $+functions[compdef] )) && {\n  # enable word mode completion\n  orig_comp="$(zstyle -L \':completion:\\*\' completer 2>> "/dev/null")"\n  if [ "$orig_comp" ]; then\n    case $orig_comp in\n      *_fasd_zsh_word_complete_trigger*);;\n      *) eval "$orig_comp _fasd_zsh_word_complete_trigger";;\n    esac\n  else\n    zstyle \':completion:*\' completer _complete _fasd_zsh_word_complete_trigger\n  fi\n  unset orig_comp\n}'
+(eval):1> alias 'a=fasd -a'
+(eval):2> alias 's=fasd -si'
+(eval):3> alias 'sd=fasd -sid'
+(eval):4> alias 'sf=fasd -sif'
+(eval):5> alias 'd=fasd -d'
+(eval):6> alias 'f=fasd -f'
+(eval):17> alias 'z=fasd_cd -d'
+(eval):18> alias 'zz=fasd_cd -d -i'
+(eval):24> autoload -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+-zsh:3> set +x

لست متأكدًا مما إذا كان من المفترض أن يكون الترتيب في ~/.fasd ، ولكن يبدو أن الملف فارغ دائمًا.

بالنسبة لي ، ساعدني ذلك في إصلاحه لتشغيله كجذر ، واستخراج الجزء fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install منه
الأمر fasd --init auto وأحيطه بـ Eval، "$ (fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" وتطبيقه في الجذر /root/.bashrc ، وربما يتم استخراج لم يكن الأمر init ضروريًا وكان كل ما يكفي هو تشغيله كجذر ، ولكن لم يكن لدي المزيد من الوقت لتأكيد ذلك ولكني أعتقد أنني أتذكر أنه لم ينجح بالنسبة لي تمامًا كما لو كان ذلك فقط عن طريق الجذر - كان علي أن أعتقد أن استخراج bash جزء من أمر init أيضًا.

بالنسبة للقراء المستقبليين ، واجهت مشكلة مماثلة لأن حقوق المجلد ~ / .fasd كانت 600 (rw للجذر فقط). أدت إزالة هذا المجلد وتحديد مصادر ~ / .zshrc إلى حل المشكلة.

بالنسبة للقراء المستقبليين ، واجهت مشكلة مماثلة لأن حقوق المجلد ~ / .fasd كانت 600 (rw للجذر فقط). أدت إزالة هذا المجلد وتحديد مصادر ~ / .zshrc إلى حل المشكلة.

كانت هذه مشكلة بالنسبة لي أيضًا

بالنسبة لي كان 100٪ https://github.com/clvv/fasd/issues/117#issuecomment -357458043.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

josephholsten picture josephholsten  ·  15تعليقات

sypl picture sypl  ·  12تعليقات

rosshadden picture rosshadden  ·  6تعليقات

sindresorhus picture sindresorhus  ·  11تعليقات

ixil picture ixil  ·  5تعليقات