Fasd: Instalação nova mas não funciona

Criado em 1 dez. 2017  ·  14Comentários  ·  Fonte: clvv/fasd

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?

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.

Todos 14 comentários

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
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 .

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:

  1. mais detalhes sobre o que está quebrando (por exemplo, a saída de fasd example ou fasd --init depois de aplicar set -x ao shell)
  2. Se você pode reproduzi-lo em um ambiente mínimo como o acima.
  3. Uma reprodução mínima real que não é apenas "na minha máquina não funciona"

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'

função para executar o CD embutido

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
}

adicionar gancho bash

caso $ PROMPT_COMMAND em
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac

conclusão do modo de comando bash

_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
}

habilitar a conclusão do modo de comando bash

_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
-eset comando para executar no arquivo de resultado
-buse apenasProcesso interno
-Badicionar back-end adicional
-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 +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]> 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

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mhlinder picture mhlinder  ·  3Comentários

josephholsten picture josephholsten  ·  15Comentários

sindresorhus picture sindresorhus  ·  11Comentários

pearofducks picture pearofducks  ·  7Comentários

sbglasius picture sbglasius  ·  5Comentários