Fasd: Nouvelle installation mais ne fonctionne pas

Créé le 1 déc. 2017  ·  14Commentaires  ·  Source: clvv/fasd

J'ai installé pour Ubuntu 14.04 en utilisant cette commande
$ sudo add-apt-repository ppa:aacebedo/fasd
$ sudo apt-obtenir la mise à jour
$ sudo apt-get install fasd

Ensuite, j'ai essayé d'exécuter l'exemple, mais il ne montre aucun résultat
$ toucher exemple.txt
$ fasd exemple
$

Est-ce que je l'ai mal installé ? Ou la commande que j'exécute n'est pas correcte ?

Commentaire le plus utile

Je ne sais pas si c'est lié. Mais je trouve que https://github.com/jimhester/per-directory-history est en conflit avec fasd. J'ai le même problème que fasd ne suit aucun fichier ou répertoire. Après avoir désactivé le plug-in d'historique par répertoire, fasd fonctionne correctement.

Tous les 14 commentaires

le mien a le même problème, il ne fonctionne tout simplement pas depuis un certain temps.

Avez-vous inclus le code d'initialisation ( eval "$(fasd --init auto)" ) dans le rc de votre shell (par exemple, votre .bashrc ou .zshrc ) et exécuté une nouvelle instance de votre shell ?

Oui je l'ai fait, je pourrais être en mesure de déplacer le journal de sortie tout en essayant le code d'initialisation général eval "$(fasd --init auto)", après avoir démarré une autre session zsh ou redémarré iterm et en tapant fasd/fasd -a/, c'est juste ne montre rien.

Voici un extrait de ce qu'est le journal :

(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
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
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE

J'ai même essayé "/usr/local/bin/fasd -a" et rien ne s'affiche, je n'ai aucune idée de pourquoi il ne peut pas trouver la commande puisque ma variable $PATH a /usr/local/bin.

Le 18 décembre 2017, à 08h15, Euan Kemp < [email protected] [email protected] > a écrit :

Avez-vous inclus le code d'initialisation (eval "$(fasd --init auto)") dans le rc de votre shell (par exemple votre .bashrc ou .zshrc) et exécuté une nouvelle instance de votre shell ?


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ou désactivez le fil de discussion https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

Soit dit en passant, la seule chose qui fonctionne est "fasd -h" qui confirme qu'au moins zsh peut savoir où se trouve la commande, donc je ne sais pas pourquoi le loca ne peut pas trouver la commande.

Le 18 décembre 2017 à 09h18, Xiao-Meng Wang < [email protected] [email protected] > a écrit :

Oui je l'ai fait, je pourrais être en mesure de déplacer le journal de sortie tout en essayant le code d'initialisation général eval "$(fasd --init auto)", après avoir démarré une autre session zsh ou redémarré iterm et en tapant fasd/fasd -a/, c'est juste ne montre rien.

Voici un extrait de ce qu'est le journal :

(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
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
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE

J'ai même essayé "/usr/local/bin/fasd -a" et rien ne s'affiche, je n'ai aucune idée de pourquoi il ne peut pas trouver la commande puisque ma variable $PATH a /usr/local/bin.

Le 18 décembre 2017, à 08h15, Euan Kemp < [email protected] [email protected] > a écrit :

Avez-vous inclus le code d'initialisation (eval "$(fasd --init auto)") dans le rc de votre shell (par exemple votre .bashrc ou .zshrc) et exécuté une nouvelle instance de votre shell ?


Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ou désactivez le fil de discussion https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

Le même problème, mon env est le sous-système Ubuntu sur Windows 10

Veuillez fournir une reproduction minimale.

Il peut être utile de remplacer le code d'initialisation fasd par ce qui suit à des fins de débogage :

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

Ou pour inclure set -x avant la commande qui génère une erreur.

Je n'arrive pas à reproduire ces problèmes. Voici les étapes que je peux exécuter pour avoir une installation fasd fonctionnelle sous bash (qui, si vous souhaitez vérifier le travail sur votre système, peut déterminer si le problème réside dans votre configuration bashrc ou ailleurs):

$ 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

Remarque : ce qui précède doit être exécuté sous un shell interactif pour que fasd fonctionne, pas un script bash. Avec seulement des modifications mineures (en remplaçant 'bash' par 'zsh'), ce qui précède devrait également fonctionner pour zsh.

Ce qui précède pour moi fonctionne comme je m'y attendais (impression de /tmp/tmp.zKxt6nvlxj/bin et 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt ).

Veuillez fournir l'un des éléments suivants si vous le pouvez :

  1. plus de détails sur ce qui ne va pas (par exemple, la sortie de fasd example ou fasd --init après avoir appliqué set -x au shell)
  2. Si vous pouvez le reproduire dans un environnement minimal comme ci-dessus.
  3. Une reproduction minimale réelle qui n'est pas seulement "sur ma machine, ça ne marche pas"

Salut Euan pour l'instruction, voici une sortie que j'ai.

première partie, je n'ai aucune idée de ce qui se passe:
C'est en zsh

~ ➤ set -x git:master *
évaluer "$(fasd --init auto)"
définir +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} >> "/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# fonction pour exécuter la fonction intégrée 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)" ; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# achèvement du mode de commande zsh \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # pas de développement si compsys chargé\n réponse=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# achèvement du mode de commande 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(( $+fonctions[compdef ] )) && {\n # achèvement du mode mot zsh\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${mots [ACTUEL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Utilisateurs /Administrateur/.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 # définir les widgets zle\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 # activer la complétion en mode mot\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrateur/.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> chargement automatique -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> définir +x

deuxième partie, je ne peux pas écrire le fichier d'exemple, j'ai donc changé en root et dans cet env minimal, fasd fonctionne. Je n'ai pas encore créé le fichier .bashrc.

bash-3.2$ sudo su
Mot de passe:
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# mot de passe
/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
total 40
drwxr-xr-x 3 roue racine 96 28 décembre 16:51 .
drwx------ 3 roue racine 96 28 décembre 16:50 ..
-rwxr-xr-x 1 roue racine 20195 28 décembre 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 "écho bonjour le monde" >> ~/.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 : commande introuvable
bash-3.2# chat .fasd
/var/dossiers/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/dossiers/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
exemple bash-3.2# ./bin/fasd
bash-3.2# rm exemple.txt
bash-3.2# toucher exemple.txt
exemple bash-3.2# ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

Le 28 décembre 2017, à 02h37, Euan Kemp < [email protected] [email protected] > a écrit :

Veuillez fournir une reproduction minimale.

Il peut être utile de remplacer le code d'initialisation fasd par ce qui suit à des fins de débogage :

définir -x
évaluer "$(fasd --init auto)"
définir +x
Ou pour inclure set -x avant la commande qui génère une erreur.

Je n'arrive pas à reproduire ces problèmes. Voici les étapes que je peux exécuter pour avoir une installation fasd fonctionnelle sous bash (qui, si vous souhaitez vérifier le travail sur votre système, peut déterminer si le problème réside dans votre configuration bashrc ou ailleurs):

$ 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

Assurez-vous que l'historique n'est pas vide ; fasd saisit les commandes à traiter à partir de l'historique

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

et, si l'historique est vide, une erreur sortira

echo "echo bonjour le monde" >> ~/.bash_history
évaluer "$(fasd --init auto)"
EOF

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

$ z bin && pwd

$ toucher exemple.txt
$ fasd exemple
Remarque : ce qui précède doit être exécuté sous un shell interactif pour que fasd fonctionne, pas un script bash. Avec seulement des modifications mineures, ce qui précède devrait également fonctionner pour zsh.

Ce qui précède pour moi fonctionne comme je m'y attendais (impression de /tmp/tmp.zKxt6nvlxj/bin et 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Veuillez fournir l'un des éléments suivants si vous le pouvez :

plus de détails sur ce qui ne va pas (par exemple, la sortie de l'exemple fasd ou fasd --init après l'application de set -x au shell)
Si vous pouvez le reproduire dans un environnement minimal comme ci-dessus.
Une reproduction minimale réelle qui n'est pas seulement "sur ma machine, ça ne marche pas"

Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ou désactivez le fil de discussion 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

Mon code d'initialisation zsh est affiché comme suit :

fasd_cache = "$ HOME / .config / fasd / fasd-init-zsh"
if ["$ (commande -v fasd)" -nt "$ fasd_cache" -o ! -s "$fasd_cache"] ; ensuite
fasd --init posix-alias posix-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$fasd_cache"
Fi
source "$fasd_cache"
fasd_cache non défini

Où fasd-init-zsh est :

fasd ➤ cat fasd-init-zsh git: maître *
alias a = 'fasd -a'
alias s = 'fasd -si'
alias sd = 'fasd -sid'
alias sf = 'fasd -sif'
alias d = 'fasd -d'
alias f = 'fasd -f'

fonction pour exécuter le cd intégré

fasd_cd () {
si [$ # -le 1] ; ensuite
fasd "$ @"
autre
local _fasd_ret = "$ (fasd -e 'printf% s'" $ @ ")"
[-z "$ _fasd_ret"] && retour
[-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 $ (historique 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1
}

ajouter un crochet bash

cas $ PROMPT_COMMAND dans
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac

Achèvement du mode de commande bash

_fasd_bash_cmd_complete () {
# commande complète après "-e"
cur local = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A command $ cur)) && return# terminer en utilisant la ligne de lecture par défaut complète après "-A" ou "-D"cas $ {COMP_WORDS [COMP_CWORD-1]} dans-A | -D) COMPREPLY = ($ (compgen -o default $ cur)) && return ;;esac# obtenir les résultats d'achèvement en utilisant des alias étenduslocal RESULTAT = $ (fasd --complete "$ (alias -p $ COMP_WORDS \2 >> "/Utilisateurs/Administrateur/.config/fasd/fasd.log" | \)' / \ 1 / p")$ {COMP_LINE # } "| tout en lisant -r ligne ; faire
quote_readline "ligne $" 2>/dev/null || \
printf% q "ligne $" 2> / dev / null && \
printf \ n
terminé)
IFS local = $ '\ n' ; COMPLÉTER = (RÉSULTAT $)
}
_fasd_bash_hook_cmd_complete () {
pour cmd en $ * ; fais
complete -F _fasd_bash_cmd_complete $ cmd
terminé
}

activer l'achèvement du mode de commande bash

_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz

Dans le fasd.log, il est principalement question de :

(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
(eval):2 : commande introuvable : fasd
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn
PAR DÉFAUT -f -tn
PREMIÈRE
COMMANDE -c -tn

Mais quand je tape fasd -h, ça marche :

~ ➤ fasd -h git:master*
fasd [options] [requête ...]
[f|a|s|d|z] [opions] [requête ...]
choix :
-s liste les chemins avec les scores
-l liste les chemins sans scores
-je mode interactif
-eset commande à exécuter sur le fichier résultat
-bseule utilisationbackend
-Bajouter un backend supplémentaire
-a match fichiers et répertoires
-d ne correspond qu'aux répertoires
-f ne correspond qu'aux fichiers
-r match par rang uniquement
-t match par accès récent uniquement
-R ordre inverse de la liste
-h affiche un bref message d'aide
-[0-9] sélectionne la nième entrée

fasd [-A|-D] [chemins ...]
-A ajouter des chemins
-D supprimer les chemins
~ ➤ git:master*

Le 28 décembre 2017 à 17h15, Xiao-Meng Wang[email protected]> a écrit :

Salut Euan pour l'instruction, voici une sortie que j'ai.

première partie, je n'ai aucune idée de ce qui se passe:
C'est en zsh

~ ➤ set -x git:master*
évaluer "$(fasd --init auto)"
définir +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} >> "/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# fonction pour exécuter la fonction intégrée 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)" ; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# achèvement du mode de commande zsh \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # pas de développement si compsys chargé\n réponse=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# achèvement du mode de commande 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(( $+fonctions[compdef ] )) && {\n # achèvement du mode mot zsh\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${mots [ACTUEL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Utilisateurs /Administrateur/.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 # définir les widgets zle\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 # activer la complétion en mode mot\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrateur/.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> chargement automatique -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> définir +x

deuxième partie, je ne peux pas écrire le fichier d'exemple, j'ai donc changé en root et dans cet env minimal, fasd fonctionne. Je n'ai pas encore créé le fichier .bashrc.

bash-3.2$ sudo su
Mot de passe:
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# mot de passe
/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
total 40
drwxr-xr-x 3 roue racine 96 28 décembre 16:51 .
drwx------ 3 roue racine 96 28 décembre 16:50 ..
-rwxr-xr-x 1 roue racine 20195 28 décembre 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 "écho bonjour le monde" >> ~/.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 : commande introuvable
bash-3.2# chat .fasd
/var/dossiers/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/dossiers/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
exemple bash-3.2# ./bin/fasd
bash-3.2# rm exemple.txt
bash-3.2# toucher exemple.txt
exemple bash-3.2# ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

Le 28 décembre 2017 à 02:37, Euan Kemp[email protected]> a écrit :

Veuillez fournir une reproduction minimale.

Il peut être utile de remplacer le code d'initialisation fasd par ce qui suit à des fins de débogage :

définir -x
évaluer "$(fasd --init auto)"
définir +x
Ou pour inclure set -x avant la commande qui génère une erreur.

Je n'arrive pas à reproduire ces problèmes. Voici les étapes que je peux exécuter pour avoir une installation fasd fonctionnelle sous bash (qui, si vous souhaitez vérifier le travail sur votre système, peut déterminer si le problème réside dans votre configuration bashrc ou ailleurs):

$ 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

Assurez-vous que l'historique n'est pas vide ; fasd saisit les commandes à traiter à partir de l'historique

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

et, si l'historique est vide, une erreur sortira

echo "echo bonjour le monde" >> ~/.bash_history
évaluer "\$(fasd --init auto)"
EOF

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

$ z bin && pwd

$ toucher exemple.txt
$ fasd exemple
Remarque : ce qui précède doit être exécuté sous un shell interactif pour que fasd fonctionne, pas un script bash. Avec seulement des modifications mineures, ce qui précède devrait également fonctionner pour zsh.

Ce qui précède pour moi fonctionne comme je m'y attendais (impression de /tmp/tmp.zKxt6nvlxj/bin et 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Veuillez fournir l'un des éléments suivants si vous le pouvez :

plus de détails sur ce qui ne va pas (par exemple, la sortie de l'exemple fasd ou fasd --init après l'application de set -x au shell)
Si vous pouvez le reproduire dans un environnement minimal comme ci-dessus.
Une reproduction minimale réelle qui n'est pas seulement "sur ma machine, ça ne marche pas"

Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ou désactivez le fil de discussion 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

Je ne sais pas si c'est lié. Mais je trouve que https://github.com/jimhester/per-directory-history est en conflit avec fasd. J'ai le même problème que fasd ne suit aucun fichier ou répertoire. Après avoir désactivé le plug-in d'historique par répertoire, fasd fonctionne correctement.

J'ai également obtenu ceci sur le sous-système pour Windows (peut-être le problème ici), avec à la fois bash et zsh .
même essayé de désactiver toutes les autres choses dans les fichiers rc , mais les listes fasd sont toujours vides.

J'ai également essayé d'utiliser à la fois fasd du référentiel et de l'installer avec un gestionnaire de packages, les résultats n'ont pas changé.

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

Je ne sais pas si le classement est censé être dans ~/.fasd , mais le fichier semble toujours vide.

Pour moi, cela a aidé à le réparer pour l'exécuter en tant que root, en extrayant la partie fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install de
fasd --init auto et entourez-le de eval, eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" et appliquez-le dans /root/.bashrc de la racine, en extrayant peut-être le La commande init n'était pas nécessaire et assez l'exécutait en tant que root, mais je n'avais pas plus de temps pour le confirmer, mais je pense que je me souviens que cela n'a pas fonctionné pour moi comme si seulement par un moyen de root - je devais extraire une partie bash de la commande init aussi, je pense.

Pour les futurs lecteurs, j'ai eu un problème similaire car les droits de mon dossier ~/.fasd étaient de 600 (rw pour root uniquement). La suppression de ce dossier et la recherche de mon ~/.zshrc ont résolu le problème.

Pour les futurs lecteurs, j'ai eu un problème similaire car les droits de mon dossier ~/.fasd étaient de 600 (rw pour root uniquement). La suppression de ce dossier et la recherche de mon ~/.zshrc ont résolu le problème.

C'était le problème pour moi aussi

Pour moi, c'était 100% https://github.com/clvv/fasd/issues/117#issuecomment -357458043.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ghost picture ghost  ·  12Commentaires

josephholsten picture josephholsten  ·  15Commentaires

pearofducks picture pearofducks  ·  7Commentaires

sindresorhus picture sindresorhus  ·  11Commentaires

sbglasius picture sbglasius  ·  5Commentaires