Eu instalei o Ubuntu 14.04 usando este comando
$ sudo add-apt-repository ppa:aacebedo/fasd
$ sudo apt-get update
$ sudo apt-get install fasd
Então tentei executar o exemplo, mas não mostra resultado
$ toque exemplo.txt
exemplo de $fasd
$
Será que instalei errado? Ou o comando que executo não está correto?
o meu está com o mesmo problema, só não funciona a algum tempo.
Você incluiu o código de inicialização ( eval "$(fasd --init auto)"
) no rc do seu shell (por exemplo, seu .bashrc
ou .zshrc
) e executou uma nova instância do seu shell?
Sim, eu consegui, eu poderia realocar o log de saída, mas tentei o código de inicialização geral eval "$(fasd --init auto)", depois de iniciar outra sessão zsh ou reiniciar o iterm e digitar fasd/fasd -a/, apenas não mostra nada.
Aqui está um trecho sobre o que é o log:
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
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
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
Eu até tentei "/usr/local/bin/fasd -a" e nada aparece, só não tenho ideia de por que ele não consegue encontrar o comando, pois minha variável $ PATH tem /usr/local/bin.
Em 18 de dezembro de 2017, às 08:15, Euan Kemp < [email protected] [email protected] > escreveu:
Você incluiu o código de inicialização (eval "$(fasd --init auto)") no rc do seu shell (por exemplo, seu .bashrc ou .zshrc) e executou uma nova instância do seu shell?
—
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ou silencie o tópico https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .
A propósito, a única coisa que funciona é "fasd -h", que confirma que pelo menos o zsh pode descobrir onde está o comando, então não tenho ideia de por que o loca não pode encontrar o comando.
Em 18 de dezembro de 2017, às 09:18, Xiao-Meng Wang < [email protected] [email protected] > escreveu:
Sim, eu consegui, eu poderia realocar o log de saída, mas tentei o código de inicialização geral eval "$(fasd --init auto)", depois de iniciar outra sessão zsh ou reiniciar o iterm e digitar fasd/fasd -a/, apenas não mostra nada.
Aqui está um trecho sobre o que é o log:
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
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
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIROEu até tentei "/usr/local/bin/fasd -a" e nada aparece, só não tenho ideia de por que ele não consegue encontrar o comando, pois minha variável $ PATH tem /usr/local/bin.
Em 18 de dezembro de 2017, às 08:15, Euan Kemp < [email protected] [email protected] > escreveu:
Você incluiu o código de inicialização (eval "$(fasd --init auto)") no rc do seu shell (por exemplo, seu .bashrc ou .zshrc) e executou uma nova instância do seu shell?
—
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ou silencie o tópico https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .
O mesmo problema, meu env é o subsistema Ubuntu no Windows 10
Forneça uma reprodução mínima.
Pode ser útil alterar o código init do fasd para o seguinte para fins de depuração:
set -x
eval "$(fasd --init auto)"
set +x
Ou incluir set -x
antes do comando com erro.
Não consigo reproduzir esses problemas. Aqui estão as etapas que posso executar para ter uma instalação fasd funcional no bash (que, se você deseja verificar o trabalho em seu sistema, pode restringir se o problema está na configuração do bashrc ou em outro lugar):
$ 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
Nota : o acima deve ser executado em um shell interativo para que o fasd funcione, não um script bash. Com apenas pequenas modificações (substituindo 'bash' por 'zsh') o acima deve funcionar para zsh também.
O acima para mim funciona como eu esperava (imprimindo /tmp/tmp.zKxt6nvlxj/bin
e 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt
).
Forneça qualquer um dos seguintes, se puder:
fasd example
ou fasd --init
depois de aplicar set -x
ao shell)Oi Euan para a instrução, aqui está uma saída que eu tenho.
primeira parte, não tenho ideia do que está acontecendo:
Isso está em zsh
~ ➤ set -x git:master *
eval "$(fasd --init auto)"
definir +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" ] && completo ; 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'
+(avaliado):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# função para executar cd embutido\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# conclusão do modo de comando zsh \n_fasd_zsh_cmd_complete() {\n local compl\n leia -c compl\n (( $+compstate )) && compstate[inserir]=menu # não expanda se o compsys estiver carregado\n responda=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# conclusão do modo de comando 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(( $+functions[compdef ] )) && {\n # conclusão do modo de palavra zsh\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>> "/Usuários /Administrador/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | do\n compadd -U -V fasd "$line"\n feito\n compstate[inserir]=menu # não expandir\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 # 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 # habilita a conclusão do modo de palavra\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 \':complete: \' 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> definir +x
segunda parte, não consigo escrever o arquivo de exemplo, então mudei para root e neste env mínimo, o fasd funciona. Ainda não criei o arquivo .bashrc.
bash-3.2$ sudo su
Senha:
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
total de 40
drwxr-xr-x 3 roda raiz 96 28 de dezembro 16:51 .
drwx------ 3 roda raiz 96 Dez 28 16:50 ..
-rwxr-xr-x 1 roda raiz 20195 28 de dezembro 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2#fasd
bash-3.2# ls
.viminfo bin exemplo.txt
bash-3.2# echo "echo olá mundo" >> ~/.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: comando não encontrado
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 exemplo
bash-3.2# rm exemplo.txt
bash-3.2# toque em example.txt
bash-3.2# ./bin/fasd exemplo
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt
Em 28 de dezembro de 2017, às 02:37, Euan Kemp < [email protected] [email protected] > escreveu:
Forneça uma reprodução mínima.
Pode ser útil alterar o código init do fasd para o seguinte para fins de depuração:
set -x
eval "$(fasd --init auto)"
definir +x
Ou incluir set -x antes do comando que apresenta erros.Não consigo reproduzir esses problemas. Aqui estão as etapas que posso executar para ter uma instalação fasd funcional no bash (que, se você deseja verificar o trabalho em seu sistema, pode restringir se o problema está na configuração do bashrc ou em outro lugar):
$ 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 Certifique-se de que o histórico não esteja em branco; fasd pega comandos para processar do histórico
(https://github.com/clvv/fasd/blob/90b531a5daaaa545c74c7db92659fc/fasd#l127-l130 https://github.com/clvv/fasd/blob/90b531a5daaaa545c74c7d8974b54cbdb92659fc/fasd#l127-l130 )
e, se o histórico estiver vazio, apresentará um erro
echo "echo olá mundo" >> ~/.bash_history
eval "$(fasd --init auto)"
EOF$ env -i HOME=${testhome} bash
$ cd ~/bin
$ cd ~/bin
$ cd~$ z bin && pwd
$ toque exemplo.txt
exemplo de $fasd
Nota: o acima deve ser executado em um shell interativo para que o fasd funcione, não um script bash. Com apenas pequenas modificações, o acima deve funcionar para zsh também.O acima para mim funciona como eu esperaria (imprimindo /tmp/tmp.zKxt6nvlxj/bin e 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).
Forneça qualquer um dos seguintes, se puder:
mais detalhes sobre o que está quebrando (por exemplo, a saída de fasd example ou fasd --init após aplicar set -x ao shell)
Se você pode reproduzi-lo em um ambiente mínimo como o acima.
Uma reprodução mínima real que não é apenas "na minha máquina não funciona"
—
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ou silencie o tópico 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
Meu código de inicialização zsh é mostrado da seguinte forma:
fasd_cache = "$ HOME / .config / fasd / fasd-init-zsh"
if ["$ (comando -v fasd)" -nt "$ fasd_cache" -o! -s "$ fasd_cache"]; então
fasd --init posix-alias posix-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$fasd_cache"
fi
fonte "$ fasd_cache"
desabilitar fasd_cache
Onde o fasd-init-zsh é:
fasd ➤ cat 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'
fasd_cd() {
if [$ # -le 1]; então
fasd "$ @"
outro
local _fasd_ret = "$ (fasd -e 'printf% s'" $ @ ")"
[-z "$ _fasd_ret"] && retornar
[-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 $ (histórico 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1
}
caso $ PROMPT_COMMAND em
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac
_fasd_bash_cmd_complete () {
# comando completo após "-e"
cur local = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A command $ cur)) && return# complete usando a linha de leitura padrão completa após "-A" ou "-D"caso $ {COMP_WORDS [COMP_CWORD-1]} em-A | -D) COMPLETAMENTE = ($ (compgen -o default $ cur)) && return ;;esac# obtém resultados de conclusão usando aliases expandidoslocal RESULT = $ (fasd --complete "$ (alias -p $ COMP_WORDS \2 >> "/Usuários/Administrador/.config/fasd/fasd.log" | \)' / \ 1 / p")$ {COMP_LINE # } "| while read -r linha; faça
quote_readline "$ line" 2> / dev / null || \
printf% q "$ line" 2> / dev / null && \
printf\n
feito)
IFS local = $ '\ n'; COMPLETA = ($ RESULTADO)
}
_fasd_bash_hook_cmd_complete () {
para cmd em $ *; Faz
complete -F _fasd_bash_cmd_complete $ cmd
feito
}
_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz
No fasd.log, fala principalmente sobre:
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
(eval):2: comando não encontrado: fasd
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
PADRÃO -f -tn
PRIMEIRO
COMANDO -c -tn
Mas quando digito fasd -h, está funcionando:
~ ➤ fasd -h git:master*
fasd [opções] [consulta...]
[f|a|s|d|z] [opções] [consulta...]
opções:
-s lista caminhos com pontuações
-l lista caminhos sem pontuação
-i modo interativo
-e
-b
-B
-a combinar arquivos e diretórios
-d corresponde apenas a diretórios
-f corresponde apenas a arquivos
-r corresponde apenas por classificação
-t corresponde apenas por acesso recente
-R ordem de listagem inversa
-h mostra uma breve mensagem de ajuda
-[0-9] selecione a enésima entrada
fasd [-A|-D] [caminhos ...]
-A adicionar caminhos
-D excluir caminhos
~ ➤ git:master*
Em 28 de dezembro de 2017, às 17h15, Xiao-Meng Wang
[email protected]> escreveu: Oi Euan para a instrução, aqui está uma saída que eu tenho.
primeira parte, não tenho ideia do que está acontecendo:
Isso está em zsh~ ➤ set -x git:master*
eval "$(fasd --init auto)"
definir +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" ] && completo ; 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'
+(avaliado):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# função para executar cd embutido\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# conclusão do modo de comando zsh \n_fasd_zsh_cmd_complete() {\n local compl\n leia -c compl\n (( $+compstate )) && compstate[inserir]=menu # não expanda se o compsys estiver carregado\n responda=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# conclusão do modo de comando 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(( $+functions[compdef ] )) && {\n # conclusão do modo de palavra zsh\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>> "/Usuários /Administrador/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | do\n compadd -U -V fasd "$line"\n feito\n compstate[inserir]=menu # não expandir\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 # 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 # habilita a conclusão do modo de palavra\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 \':complete: \' 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> definir +xsegunda parte, não consigo escrever o arquivo de exemplo, então mudei para root e neste env mínimo, o fasd funciona. Ainda não criei o arquivo .bashrc.
bash-3.2$ sudo su
Senha:
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
total de 40
drwxr-xr-x 3 roda raiz 96 28 de dezembro 16:51 .
drwx------ 3 roda raiz 96 Dez 28 16:50 ..
-rwxr-xr-x 1 roda raiz 20195 28 de dezembro 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2#fasd
bash-3.2# ls
.viminfo bin exemplo.txt
bash-3.2# echo "echo olá mundo" >> ~/.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: comando não encontrado
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 exemplo
bash-3.2# rm exemplo.txt
bash-3.2# toque em example.txt
bash-3.2# ./bin/fasd exemplo
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txtEm 28 de dezembro de 2017, às 02:37, Euan Kemp
[email protected]> escreveu: Forneça uma reprodução mínima.
Pode ser útil alterar o código init do fasd para o seguinte para fins de depuração:
set -x
eval "$(fasd --init auto)"
definir +x
Ou incluir set -x antes do comando que apresenta erros.Não consigo reproduzir esses problemas. Aqui estão as etapas que posso executar para ter uma instalação fasd funcional no bash (que, se você deseja verificar o trabalho em seu sistema, pode restringir se o problema está na configuração do bashrc ou em outro lugar):
$ 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 Certifique-se de que o histórico não esteja em branco; fasd pega comandos para processar do histórico
(https://github.com/clvv/fasd/blob/90b531a5daaaa545c74c7db92659fc/fasd#l127-l130 https://github.com/clvv/fasd/blob/90b531a5daaaa545c74c7d8974b54cbdb92659fc/fasd#l127-l130 )
e, se o histórico estiver vazio, apresentará um erro
echo "echo olá mundo" >> ~/.bash_history
eval "\$(fasd --init auto)"
EOF$ env -i HOME=${testhome} bash
$ cd ~/bin
$ cd ~/bin
$ cd~$ z bin && pwd
$ toque exemplo.txt
exemplo de $fasd
Nota: o acima deve ser executado em um shell interativo para que o fasd funcione, não um script bash. Com apenas pequenas modificações, o acima deve funcionar para zsh também.O acima para mim funciona como eu esperaria (imprimindo /tmp/tmp.zKxt6nvlxj/bin e 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).
Forneça qualquer um dos seguintes, se puder:
mais detalhes sobre o que está quebrando (por exemplo, a saída de fasd example ou fasd --init após aplicar set -x ao shell)
Se você pode reproduzi-lo em um ambiente mínimo como o acima.
Uma reprodução mínima real que não é apenas "na minha máquina não funciona"
—
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ou silencie o tópico 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/143448/15842166/7c72db3-20b52166/7c72db3-20busercontent . 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
Não tenho certeza se está relacionado. Mas acho que https://github.com/jimhester/per-directory-history entra em conflito com fasd. Eu tenho o mesmo problema que o fasd não rastreia nenhum arquivo ou diretório. Depois de desabilitar o plugin por histórico de diretório, o fasd funciona bem.
Também consegui isso no subsistema para Windows (pode ser o problema aqui), com bash
e zsh
.
até tentei desabilitar todas as outras coisas nos arquivos rc
, mas as listas fasd
estão sempre vazias.
Eu também tentei usar fasd
do repositório, bem como instalá-lo com um gerenciador de pacotes, os resultados não mudaram.
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
Não tenho certeza se o ranking deveria estar em ~/.fasd
, mas o arquivo parece estar sempre vazio.
Para mim, ajudou a corrigi-lo para executá-lo como root, extraindo a parte fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install
de
fasd --init auto
e cerque-o com eval, eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" e aplicando no root /root/.bashrc , talvez extraindo o O comando init não era necessário e bastava executá-lo como root, mas não tive mais tempo para confirmar isso, mas acho que lembro que não funcionou para mim assim apenas por meio de root - tive que extrair parte do bash do comando init também, eu acho.
Para futuros leitores, tive um problema semelhante porque os direitos da minha pasta ~/.fasd eram 600 (rw apenas para root). A remoção desta pasta e a obtenção do meu ~/.zshrc resolveu o problema.
Para futuros leitores, tive um problema semelhante porque os direitos da minha pasta ~/.fasd eram 600 (rw apenas para root). A remoção desta pasta e a obtenção do meu ~/.zshrc resolveu o problema.
Este foi o problema para mim também
Para mim foi 100% https://github.com/clvv/fasd/issues/117#issuecomment -357458043.
Comentários muito úteis
Não tenho certeza se está relacionado. Mas acho que https://github.com/jimhester/per-directory-history entra em conflito com fasd. Eu tenho o mesmo problema que o fasd não rastreia nenhum arquivo ou diretório. Depois de desabilitar o plugin por histórico de diretório, o fasd funciona bem.