Fasd: Frisch installiert aber funktioniert nicht

Erstellt am 1. Dez. 2017  Â·  14Kommentare  Â·  Quelle: clvv/fasd

Ich habe mit diesem Befehl fĂŒr Ubuntu 14.04 installiert
$ sudo add-apt-repository ppa:aacebedo/fasd
$ sudo apt-get update
$ sudo apt-get install fasd

Dann habe ich versucht, das Beispiel auszufĂŒhren, aber es zeigt kein Ergebnis
$ touch example.txt
$fasd-Beispiel
$

Habe ich es falsch installiert? Oder der Befehl, den ich ausfĂŒhre, ist nicht korrekt?

Hilfreichster Kommentar

Nicht sicher, ob es zusammenhÀngt. Aber ich finde, dass https://github.com/jimhester/per-directory-history mit fasd in Konflikt steht. Ich habe das gleiche Problem, dass fasd keine Dateien oder Verzeichnisse verfolgt. Nach dem Deaktivieren des Per-Directory-History-Plugins funktioniert fasd einwandfrei.

Alle 14 Kommentare

Meiner hat das gleiche Problem, er funktioniert nur seit einiger Zeit nicht mehr.

Haben Sie den Initialisierungscode ( eval "$(fasd --init auto)" ) in den RC Ihrer Shell (z. B. .bashrc oder .zshrc ) eingefĂŒgt und eine neue Instanz Ihrer Shell ausgefĂŒhrt?

Ja, ich konnte das Ausgabeprotokoll verschieben, versuchte jedoch den allgemeinen Init-Code eval "$(fasd --init auto)", nachdem Sie eine andere zsh-Sitzung gestartet oder iterm neu gestartet und fasd/fasd -a/ eingegeben hatten, es war einfach zeigt nichts.

Hier ist ein Ausschnitt darĂŒber, was das Protokoll ist:

(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
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
BEFEHL -c -tn
STANDARD -f -tn
ERSTE

Ich habe sogar "/usr/local/bin/fasd -a" versucht und es wird nichts angezeigt, ich habe nur keine Ahnung, warum es den Befehl nicht finden kann, da meine $PATH-Variable /usr/local/bin hat.

Am 18. Dezember 2017 um 08:15 schrieb Euan Kemp < [email protected] [email protected] >:

Haben Sie den Initialisierungscode (eval "$(fasd --init auto)") in den RC Ihrer Shell (z. B. Ihre .bashrc oder .zshrc) eingefĂŒgt und eine neue Instanz Ihrer Shell ausgefĂŒhrt?

—
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, sehen Sie sie auf GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 an oder schalten Sie den Thread stumm https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

Übrigens funktioniert nur "fasd -h", was bestĂ€tigt, dass zumindest zsh herausfinden kann, wo sich der Befehl befindet, also habe ich keine Ahnung, warum der Loca den Befehl nicht finden kann.

Am 18. Dezember 2017 um 09:18 schrieb Xiao-Meng Wang < [email protected] [email protected] >:

Ja, ich konnte das Ausgabeprotokoll verschieben, versuchte jedoch den allgemeinen Init-Code eval "$(fasd --init auto)", nachdem Sie eine andere zsh-Sitzung gestartet oder iterm neu gestartet und fasd/fasd -a/ eingegeben hatten, es war einfach zeigt nichts.

Hier ist ein Ausschnitt darĂŒber, was das Protokoll ist:

(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
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
BEFEHL -c -tn
STANDARD -f -tn
ERSTE

Ich habe sogar "/usr/local/bin/fasd -a" versucht und es wird nichts angezeigt, ich habe nur keine Ahnung, warum es den Befehl nicht finden kann, da meine $PATH-Variable /usr/local/bin hat.

Am 18. Dezember 2017 um 08:15 schrieb Euan Kemp < [email protected] [email protected] >:

Haben Sie den Initialisierungscode (eval "$(fasd --init auto)") in den RC Ihrer Shell (z. B. Ihre .bashrc oder .zshrc) eingefĂŒgt und eine neue Instanz Ihrer Shell ausgefĂŒhrt?

—
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, sehen Sie sie auf GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 an oder schalten Sie den Thread stumm https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

Das gleiche Problem, mein env ist das Ubuntu-Subsystem unter Windows 10

Bitte liefern Sie eine minimale Reproduktion.

Es kann hilfreich sein, den fasd-Init-Code zu Debugging-Zwecken wie folgt zu Àndern:

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

Oder um set -x vor dem fehlerhaften Befehl einzufĂŒgen.

Ich kann diese Probleme nicht reproduzieren. Hier sind die Schritte, die ich ausfĂŒhren kann, um eine funktionierende fasd-Installation unter bash zu haben (die, wenn Sie die Arbeit auf Ihrem System ĂŒberprĂŒfen möchten, eingrenzen kann, ob das Problem in Ihrer bashrc-Konfiguration oder anderswo liegt):

$ 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

Hinweis : Das obige muss unter einer interaktiven Shell ausgefĂŒhrt werden, damit fasd funktioniert, nicht unter einem Bash-Skript. Mit nur geringfĂŒgigen Änderungen (Ersetzen von „bash“ durch „zsh“) sollte das obige auch fĂŒr zsh funktionieren.

Das obige funktioniert fĂŒr mich wie erwartet (Drucken von /tmp/tmp.zKxt6nvlxj/bin und 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt ).

Bitte geben Sie Folgendes an, wenn Sie können:

  1. mehr Details darĂŒber, was kaputt ist (z. B. die Ausgabe von fasd example oder fasd --init nach dem Anwenden set -x auf die Shell)
  2. Ob Sie es in einer minimalen Umgebung wie der obigen reproduzieren können.
  3. Eine tatsÀchliche minimale Reproduktion, die nicht nur "auf meinem Computer funktioniert es nicht" ist

Hallo Euan fĂŒr die Anleitung, hier ist eine Ausgabe, die ich habe.

Erster Teil, ich habe keine Ahnung, was los ist:
Dies ist in zsh

~ ➀ set -x git:master *
eval "$(fasd --init auto)"
setze +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" ] && fertig ; 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} >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1'
+(eval):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# Funktion zum AusfĂŒhren des eingebauten 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# zsh hook hinzufĂŒgen\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# Abschluss des zsh-Befehlsmodus \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # no expand if compsys load\n answer=(${(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 # VervollstĂ€ndigung des zsh-Wortmodus\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${words [AKTUELL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Benutzer /Administrator/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | 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_trigger() {\n local _fasd_cur="${words[CURRENT]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # zle-Widgets definieren\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 vollstĂ€ndiges Wort _generisch\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 # VervollstĂ€ndigung des Wortmodus aktivieren\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrator/.config/fasd/fasd.log")"\n if [ "$orig_comp" ]; ) 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> setze +x

Im zweiten Teil kann ich die Beispieldatei nicht schreiben, also habe ich zu root gewechselt und in dieser minimalen Umgebung funktioniert fasd. Ich habe die .bashrc-Datei noch nicht erstellt.

bash-3.2$ sudo su
Passwort:
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
insgesamt 40
drwxr-xr-x 3 Wurzelrad 96 Dez 28 16:51 .
drwx ------ 3 Wurzelrad 96 28. Dez 16:50 ..
-rwxr-xr-x 1 root wheel 20195 Dez 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 hallo welt" >> ~/.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 .fasd
bash: v: Befehl nicht gefunden
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-Beispiel
bash-3.2# rm-Beispiel.txt
bash-3.2# touch example.txt
bash-3.2# ./bin/fasd-Beispiel
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

Am 28. Dezember 2017 um 02:37 schrieb Euan Kemp < [email protected] [email protected] >:

Bitte liefern Sie eine minimale Reproduktion.

Es kann hilfreich sein, den fasd-Init-Code zu Debugging-Zwecken wie folgt zu Àndern:

setze -x
eval "$(fasd --init auto)"
setze +x
Oder setzen Sie -x vor den Befehl, der einen Fehler verursacht.

Ich kann diese Probleme nicht reproduzieren. Hier sind die Schritte, die ich ausfĂŒhren kann, um eine funktionierende fasd-Installation unter bash zu haben (die, wenn Sie die Arbeit auf Ihrem System ĂŒberprĂŒfen möchten, eingrenzen kann, ob das Problem in Ihrer bashrc-Konfiguration oder anderswo liegt):

$ 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" < export PATH=$PATH:${testhome}/bin

Stellen Sie sicher, dass der Verlauf nicht leer ist; fasd greift zu verarbeitende Befehle aus der Historie

(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb9274b54cbdb927-Lc10/fas 1

und wenn der Verlauf leer ist, wird ein Fehler ausgegeben

echo "echo hallo welt" >> ~/.bash_history
eval "$(fasd --init auto)"
EOF

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

$ z bin && pwd

$ touch example.txt
$fasd-Beispiel
Hinweis: Das obige muss unter einer interaktiven Shell ausgefĂŒhrt werden, damit fasd funktioniert, nicht unter einem Bash-Skript. Mit nur geringfĂŒgigen Änderungen sollte das obige auch fĂŒr zsh funktionieren.

Das obige funktioniert fĂŒr mich wie erwartet (Drucken von /tmp/tmp.zKxt6nvlxj/bin und 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Bitte geben Sie Folgendes an, wenn Sie können:

mehr Details darĂŒber, was kaputt ist (z. B. die Ausgabe von fasd example oder fasd --init nach dem Anwenden von set -x auf die Shell)
Ob Sie es in einer minimalen Umgebung wie der obigen reproduzieren können.
Eine tatsÀchliche minimale Reproduktion, die nicht nur "auf meinem Computer funktioniert es nicht" ist
—
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, sehen Sie sie auf GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 an oder schalten Sie den Thread stumm 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

Mein zsh-Init-Code wird wie folgt angezeigt:

fasd_cache = "$ HOME / .config / fasd / fasd-init-zsh"
if ["$ (Befehl -v fasd)" -nt "$ fasd_cache" -o! -s "$fasd_cache"]; dann
fasd --init posix-alias posix-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$fasd_cache"
fi
Quelle "$fasd_cache"
unset fasd_cache

Wo ist fasd-init-zsh:

fasd ➀ Katze fasd-init-zsh git: master *
alias a = 'fasd -a'
alias s = 'fasd -si'
alias sd = 'fasd -sid'
alias sf = 'fasd -sif'
alias d = 'fasd -d'
alias f = 'fasd -f'

Funktion zum AusfĂŒhren der eingebauten CD

fasd_cd () {
wenn [$ # -le 1]; dann
fasd "$ @"
anders
local _fasd_ret = "$ (fasd -e 'printf% s'" $ @ ")"
[-z "$ _fasd_ret"] && zurĂŒck
[-d "$ _fasd_ret"] && cd "$ _fasd_ret" || printf% s \ n "$ _fasd_ret"
fi
}
alias z = 'fasd_cd -d'
alias zz = 'fasd_cd -d -i'

_fasd_prompt_func () {
eval "fasd --proc $ (fasd --sanitize $ (Verlauf 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1
}

Bash-Hook hinzufĂŒgen

Fall $ PROMPT_COMMAND ein
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_ fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac

Abschluss des Bash-Befehlsmodus

_fasd_bash_cmd_complete () {
# Befehl nach "-e" abschließen
local cur = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A Befehl $ cur)) && return# VervollstĂ€ndigen mit Standard-Readline-VervollstĂ€ndigung nach "-A" oder "-D"Fall $ {COMP_WORDS [COMP_CWORD-1]} in-A | -D) COMPREPLY = ($ (compgen -o default $ cur)) && return ;;esac# Abschlussergebnisse mit erweiterten Aliasen abrufenlocal RESULT = $ (fasd --complete "$ (alias -p $ COMP_WORDS \2 >> „/Benutzer/Administrator/.config/fasd/fasd.log“ | \)' / \ 1 / p")$ {COMP_LINE # } "| while read -r line; tun
quote_readline "$ line" 2> / dev / null || \
printf% q "$ line" 2> / dev / null && \
printf \ n
fertig)
lokales IFS = $ '\ n'; COMPREPLY = ($ ERGEBNIS)
}
_fasd_bash_hook_cmd_complete () {
fĂŒr cmd in $ *; tun
komplett -F _fasd_bash_cmd_complete $ cmd
fertig
}

Aktivieren Sie den Abschluss des Bash-Befehlsmodus

_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz

Im fasd.log wird hauptsĂ€chlich darĂŒber gesprochen:

(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
(eval):2: Befehl nicht gefunden: fasd
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn
STANDARD -f -tn
ERSTE
BEFEHL -c -tn

Aber wenn ich fasd -h eingebe, funktioniert es:

~ ➀ fasd -h git:master*
fasd [Optionen] [Abfrage ...]
[f|a|s|d|z] [Meinungen] [Abfrage ...]
Optionen:
-s listet Pfade mit Partituren auf
-l listet Pfade ohne Punkte auf
-i interaktiver Modus
-eSet-Befehl, der fĂŒr die Ergebnisdatei ausgefĂŒhrt werden soll
-Bbenutz nurBackend
-BzusĂ€tzliches Backend hinzufĂŒgen
-a Gleicht Dateien und Verzeichnisse ab
-d nur Verzeichnisse abgleichen
-f Nur Dateien abgleichen
-r Übereinstimmung nur nach Rang
-t Übereinstimmung nur durch kĂŒrzlichen Zugriff
-R umgekehrte Auflistungsreihenfolge
-h Zeigt eine kurze Hilfemeldung an
-[0-9] n-ten Eintrag auswÀhlen

fasd [-A|-D] [Pfade ...]
-A Pfade hinzufĂŒgen
-D Pfade löschen
~ ➀ git:master*

Am 28. Dezember 2017 um 17:15 Uhr Xiao-Meng Wang[email protected]> schrieb:

Hallo Euan fĂŒr die Anleitung, hier ist eine Ausgabe, die ich habe.

Erster Teil, ich habe keine Ahnung, was los ist:
Dies ist in zsh

~ ➀ set -x git:master*
eval "$(fasd --init auto)"
setze +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" ] && fertig ; 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} >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1'
+(eval):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# Funktion zum AusfĂŒhren des eingebauten 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# zsh hook hinzufĂŒgen\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# Abschluss des zsh-Befehlsmodus \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # no expand if compsys load\n answer=(${(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 # VervollstĂ€ndigung des zsh-Wortmodus\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${words [AKTUELL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Benutzer /Administrator/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | 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_trigger() {\n local _fasd_cur="${words[CURRENT]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # zle-Widgets definieren\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 vollstĂ€ndiges Wort _generisch\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 # VervollstĂ€ndigung des Wortmodus aktivieren\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrator/.config/fasd/fasd.log")"\n if [ "$orig_comp" ]; ) 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> setze +x

Im zweiten Teil kann ich die Beispieldatei nicht schreiben, also habe ich zu root gewechselt und in dieser minimalen Umgebung funktioniert fasd. Ich habe die .bashrc-Datei noch nicht erstellt.

bash-3.2$ sudo su
Passwort:
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
insgesamt 40
drwxr-xr-x 3 Wurzelrad 96 Dez 28 16:51 .
drwx ------ 3 Wurzelrad 96 28. Dez 16:50 ..
-rwxr-xr-x 1 root wheel 20195 Dez 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 hallo welt" >> ~/.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 .fasd
bash: v: Befehl nicht gefunden
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-Beispiel
bash-3.2# rm-Beispiel.txt
bash-3.2# touch example.txt
bash-3.2# ./bin/fasd-Beispiel
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

Am 28. Dezember 2017 um 02:37, Euan Kemp[email protected]> schrieb:

Bitte liefern Sie eine minimale Reproduktion.

Es kann hilfreich sein, den fasd-Init-Code zu Debugging-Zwecken wie folgt zu Àndern:

setze -x
eval "$(fasd --init auto)"
setze +x
Oder setzen Sie -x vor den Befehl, der einen Fehler verursacht.

Ich kann diese Probleme nicht reproduzieren. Hier sind die Schritte, die ich ausfĂŒhren kann, um eine funktionierende fasd-Installation unter bash zu haben (die, wenn Sie die Arbeit auf Ihrem System ĂŒberprĂŒfen möchten, eingrenzen kann, ob das Problem in Ihrer bashrc-Konfiguration oder anderswo liegt):

$ 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" < export PATH=$PATH:${testhome}/bin

Stellen Sie sicher, dass der Verlauf nicht leer ist; fasd greift zu verarbeitende Befehle aus der Historie

(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb9274b54cbdb927-Lc10/fas 1

und wenn der Verlauf leer ist, wird ein Fehler ausgegeben

echo "echo hallo welt" >> ~/.bash_history
eval "\$(fasd --init auto)"
EOF

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

$ z bin && pwd

$ touch example.txt
$fasd-Beispiel
Hinweis: Das obige muss unter einer interaktiven Shell ausgefĂŒhrt werden, damit fasd funktioniert, nicht unter einem Bash-Skript. Mit nur geringfĂŒgigen Änderungen sollte das obige auch fĂŒr zsh funktionieren.

Das obige funktioniert fĂŒr mich wie erwartet (Drucken von /tmp/tmp.zKxt6nvlxj/bin und 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Bitte geben Sie Folgendes an, wenn Sie können:

mehr Details darĂŒber, was kaputt ist (z. B. die Ausgabe von fasd example oder fasd --init nach dem Anwenden von set -x auf die Shell)
Ob Sie es in einer minimalen Umgebung wie der obigen reproduzieren können.
Eine tatsÀchliche minimale Reproduktion, die nicht nur "auf meinem Computer funktioniert es nicht" ist
—
Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail, sehen Sie sie auf GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 an oder schalten Sie den Thread stumm 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-2c0b -11e6-9aed-b52498112777.png https://github.com/clvv/fasd https://github.com/clvv/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/ n$ 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/issues/117 #issuecomment-354156542

Nicht sicher, ob es zusammenhÀngt. Aber ich finde, dass https://github.com/jimhester/per-directory-history mit fasd in Konflikt steht. Ich habe das gleiche Problem, dass fasd keine Dateien oder Verzeichnisse verfolgt. Nach dem Deaktivieren des Per-Directory-History-Plugins funktioniert fasd einwandfrei.

Habe dies auch auf dem Subsystem fĂŒr Windows (könnte hier das Problem sein), sowohl mit bash als auch mit zsh .
habe sogar versucht, alle anderen Dinge in den rc -Dateien zu deaktivieren, aber die fasd -Listen sind immer leer.

Ich habe auch versucht, sowohl fasd aus dem Repo zu verwenden als auch mit einem Paketmanager zu installieren, die Ergebnisse haben sich nicht geÀndert.

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

Ich bin mir nicht sicher, ob das Ranking in ~/.fasd sein soll, aber die Datei scheint immer leer zu sein.

FĂŒr mich hat es geholfen, es als root auszufĂŒhren und den Teil fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install daraus zu extrahieren
fasd --init auto Befehl und umgeben Sie ihn mit eval, eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" und wenden Sie es in root's /root/.bashrc an, vielleicht extrahieren Sie das init-Befehl war nicht notwendig und es reichte aus, es als Root auszufĂŒhren, aber ich hatte keine Zeit mehr, das zu bestĂ€tigen, aber ich glaube, ich erinnere mich, dass es fĂŒr mich nicht so funktionierte, nur mit Root - ich musste extrahiere bash auch einen Teil des Init-Befehls, denke ich.

FĂŒr zukĂŒnftige Leser hatte ich ein Ă€hnliches Problem, da die Rechte meines ~/.fasd-Ordners 600 waren (rw nur fĂŒr root). Das Entfernen dieses Ordners und das Sourcing meiner ~/.zshrc löste das Problem.

FĂŒr zukĂŒnftige Leser hatte ich ein Ă€hnliches Problem, da die Rechte meines ~/.fasd-Ordners 600 waren (rw nur fĂŒr root). Das Entfernen dieses Ordners und das Sourcing meiner ~/.zshrc löste das Problem.

Das war auch bei mir das Thema

Bei mir war es zu 100% https://github.com/clvv/fasd/issues/117#issuecomment -357458043.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

sbglasius picture sbglasius  Â·  5Kommentare

pearofducks picture pearofducks  Â·  7Kommentare

ixil picture ixil  Â·  5Kommentare

sindresorhus picture sindresorhus  Â·  11Kommentare

mhlinder picture mhlinder  Â·  3Kommentare