Fasd: Instalación nueva pero no funciona

Creado en 1 dic. 2017  ·  14Comentarios  ·  Fuente: clvv/fasd

Lo instalé para ubuntu 14.04 usando este comando
$ sudo add-apt-repositorio ppa:aacebedo/fasd
$ sudo apt-obtener actualización
$ sudo apt-get install fasd

Luego traté de ejecutar el ejemplo, pero no muestra ningún resultado.
$ toque ejemplo.txt
$ fasd ejemplo
PS

¿Lo instalé mal? ¿O el comando que ejecuto no es correcto?

Comentario más útil

No estoy seguro si está relacionado. Pero encuentro que https://github.com/jimhester/per-directory-history entra en conflicto con fasd. Tengo el mismo problema que fasd no rastrea ningún archivo o directorio. Después de deshabilitar el fasd del complemento por historial de directorio funciona bien.

Todos 14 comentarios

El mío tiene el mismo problema, simplemente no funciona desde hace un tiempo.

¿Ha incluido el código de inicialización ( eval "$(fasd --init auto)" ) en el rc de su shell (por ejemplo, su .bashrc o .zshrc ) y ha ejecutado una nueva instancia de su shell?

Sí, lo hice, pude reubicar el registro de salida pero probé el código de inicio general eval "$(fasd --init auto)", después de iniciar otra sesión de zsh o reiniciar iterm y escribir fasd/fasd -a/, simplemente no muestra nada

Aquí hay un fragmento de lo que es el registro:

(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
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
PREDETERMINADO -f -tn
PRIMERO

Incluso probé "/usr/local/bin/fasd -a" y no aparece nada, simplemente no tengo idea de por qué no puede encontrar el comando ya que mi variable $PATH tiene /usr/local/bin.

El 18 de diciembre de 2017, a las 08:15, Euan Kemp < [email protected] [email protected] > escribió:

¿Ha incluido el código de inicialización (eval "$(fasd --init auto)") en el rc de su shell (por ejemplo, su .bashrc o .zshrc) y ejecutó una nueva instancia de su shell?


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 , o silencie el hilo https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

Por cierto, lo único que funciona es "fasd -h", que confirma que al menos zsh puede averiguar dónde está el comando, así que no tengo idea de por qué el loca no puede encontrar el comando.

El 18 de diciembre de 2017, a las 09:18, Xiao-Meng Wang < [email protected] [email protected] > escribió:

Sí, lo hice, pude reubicar el registro de salida pero probé el código de inicio general eval "$(fasd --init auto)", después de iniciar otra sesión de zsh o reiniciar iterm y escribir fasd/fasd -a/, simplemente no muestra nada

Aquí hay un fragmento de lo que es el registro:

(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
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
PREDETERMINADO -f -tn
PRIMERO

Incluso probé "/usr/local/bin/fasd -a" y no aparece nada, simplemente no tengo idea de por qué no puede encontrar el comando ya que mi variable $PATH tiene /usr/local/bin.

El 18 de diciembre de 2017, a las 08:15, Euan Kemp < [email protected] [email protected] > escribió:

¿Ha incluido el código de inicialización (eval "$(fasd --init auto)") en el rc de su shell (por ejemplo, su .bashrc o .zshrc) y ejecutó una nueva instancia de su shell?


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 , o silencie el hilo https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .

El mismo problema, mi env es el subsistema Ubuntu en Windows 10

Proporcione una reproducción mínima.

Puede ser útil cambiar el código de inicio fasd a lo siguiente para fines de depuración:

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

O para incluir set -x antes del comando que da error.

No puedo reproducir estos problemas. Estos son los pasos que puedo ejecutar para tener una instalación de fasd en funcionamiento bajo bash (que, si desea verificar el trabajo en su sistema, puede reducir si el problema radica en su configuración de bashrc o en otro 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 : lo anterior debe ejecutarse bajo un shell interactivo para que fasd funcione, no un script bash. Con solo modificaciones menores (reemplazando 'bash' con 'zsh'), lo anterior también debería funcionar para zsh.

Lo anterior para mí funciona como esperaba (imprimiendo /tmp/tmp.zKxt6nvlxj/bin y 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt ).

Proporcione cualquiera de los siguientes si puede:

  1. más detalles sobre lo que está fallando (por ejemplo, la salida de fasd example o fasd --init después de aplicar set -x al shell)
  2. Si puede reproducirlo en un entorno mínimo como el anterior.
  3. Una reproducción mínima real que no es solo "en mi máquina no funciona"

Hola, Euan por las instrucciones, aquí hay algunos resultados que tengo.

primera parte, no tengo ni idea de lo que está pasando:
esto es en zsh

~ ➤ establecer -x git:maestro *
eval "$(fasd--init auto)"
conjunto +x

+zsh:2> fasd --init automático
+zsh:2> eval $'{ if [ "$ZSH_VERSION" ] && compctl; luego # 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 ; luego # 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} >> "/Usuarios/Administrador/.config/fasd/fasd.log" 2>&1'
+(evaluación):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# función para ejecutar cd\nfasd_cd() {\n if [ $# -le 1 ] ; entonces\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# agregar gancho zsh\n_fasd_preexec( ) {\n { eval "fasd --proc $(fasd --sanitize $1)"; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# finalización del modo de comando zsh \n_fasd_zsh_cmd_complete() {\n compl local\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # no expandir si compsys está cargado\n answer=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# habilitar la finalización del modo de comando\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(( $+funciones[compdef ] )) && {\n # finalización del modo palabra zsh\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${palabras [ACTUAL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Usuarios /Administrador/.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[ACTUAL]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # definir 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 palabra completa _generic\n zstyle \':completar:fasd-complete-d: \' completer _fasd_zsh_word_complete_d\n zstyle \':completar:fasd-complete-d: \' menu-select\n }\n\n(( $+funciones[compdef] )) && {\n # habilitar la finalización del modo palabra\n orig_comp="$(zstyle -L \':finalización:*\' completador 2>> "/Usuarios/ Administrador/.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 original_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> carga automática -Uz add-zsh-hook
+(eval):25> agregar-zsh-gancho preexec _fasd_preexec
+zsh:3> establecer +x

segunda parte, no puedo escribir el archivo de ejemplo, así que cambié a root y en este env mínimo, fasd funciona. Todavía no creé el archivo .bashrc.

bash-3.2$ sudo su
Clave:
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 # contraseña
/var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/bin
sh-3.2# curl -sSL -o "${testhome}/bin/fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd;chmod https://raw.githubusercontent.com/clvv/ fasd/master/fasd;chmod +x ${testhome}/bin/fasd;
sh-3.2# ls-al
40 totales
rueda raíz drwxr-xr-x 3 96 28 de diciembre 16:51 .
drwx------ Rueda raíz 3 96 28 de diciembre 16:50 ..
-rwxr-xr-x 1 rueda raíz 20195 28 de diciembre 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2#fasd
bash-3.2#ls
.viminfo bin ejemplo.txt
bash-3.2# echo "echo hola mundo" >> ~/.bash_history
bash-3.2#ls
.bash_history .viminfo bin ejemplo.txt
bash-3.2# export PATH=$PATH:${testhome}/bin
bash-3.2#ls
.bash_history .fasd .viminfo bin ejemplo.txt
bash-3.2# v .fasd
bash: v: comando no encontrado
bash-3.2# gato .fasd
/var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
bash-3.2# ./bin/fasd ejemplo
bash-3.2# rm ejemplo.txt
bash-3.2# toque ejemplo.txt
bash-3.2# ./bin/fasd ejemplo
6 /var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/ejemplo.txt

El 28 de diciembre de 2017, a las 02:37, Euan Kemp < [email protected] [email protected] > escribió:

Proporcione una reproducción mínima.

Puede ser útil cambiar el código de inicio fasd a lo siguiente para fines de depuración:

conjunto -x
eval "$(fasd--init auto)"
conjunto +x
O para incluir set -x antes del comando que da error.

No puedo reproducir estos problemas. Estos son los pasos que puedo ejecutar para tener una instalación de fasd en funcionamiento bajo bash (que, si desea verificar el trabajo en su sistema, puede reducir si el problema radica en su configuración de bashrc o en otro 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

$ gato > "${testhome}/.bashrc" < export PATH=$PATH:${testhome}/bin

Asegúrese de que el historial no esté en blanco; fasd toma comandos para procesar del historial

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

y, si el historial está vacío, se producirá un error

echo "eco hola mundo" >> ~/.bash_history
eval "$(fasd--init auto)"
fin de semana

$ env -i INICIO=${testhome} bash
$ cd ~/papelera
$ cd ~/papelera
$ CD ~

$ z contenedor && pwd

$ toque ejemplo.txt
$ fasd ejemplo
Nota: lo anterior debe ejecutarse bajo un shell interactivo para que fasd funcione, no un script bash. Con solo modificaciones menores, lo anterior también debería funcionar para zsh.

Lo anterior para mí funciona como esperaba (imprimir /tmp/tmp.zKxt6nvlxj/bin y 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Proporcione cualquiera de los siguientes si puede:

más detalles sobre lo que está fallando (por ejemplo, la salida del ejemplo fasd o fasd --init después de aplicar set -x al shell)
Si puede reproducirlo en un entorno mínimo como el anterior.
Una reproducción mínima real que no es solo "en mi máquina no funciona"

Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 o silencie el hilo 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

Mi código de inicio zsh se muestra de la siguiente manera:

fasd_cache = "$ INICIO / .config / fasd / fasd-init-zsh"
if ["$ (comando -v fasd)" -nt "$ fasd_cache" -o! -s "$fasd_cache"]; luego
fasd --init posix-alias posix-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$fasd_caché"
fi
fuente "$fasd_cache"
desarmar fasd_cache

Donde fasd-init-zsh es:

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

funcion para ejecutar el cd incorporado

fasd_cd () {
si [$ # -le 1]; luego
"$ @"
demás
local _fasd_ret = "$ (fasd -e 'printf% s'" $ @ ")"
[-z "$ _fasd_ret"] && volver
[-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 $ (historial 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Usuarios/Administrador/.config/fasd/fasd.log" 2> & 1
}

agregar gancho bash

caso $ PROMPT_COMMAND en
_fasd_prompt_func );;
*) PROMPT_COMMAND = "_ fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac

finalización del modo de comando bash

_fasd_bash_cmd_complete () {
# completar el comando después de "-e"
valor local = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPLETAR = ($ (compgen -A comando $ cur)) && volver# completar usando la línea de lectura predeterminada completar después de "-A" o "-D"caso $ {COMP_WORDS [COMP_CWORD-1]} en-A | -D) COMPLETAR = ($ (compgen -o default $ cur)) && return ;;esac# obtener resultados de finalización usando alias expandidosRESULTADO local = $ (fasd --complete "$ (alias -p $ COMP_WORDS \2 >> "/Usuarios/Administrador/.config/fasd/fasd.log" | \)' / \ 1 / p")$ {COMP_LINE # } "| while read -r línea; hacer
quote_readline "$ línea" 2> / dev / null || \
printf% q "$ línea" 2> / dev / nulo && \
imprimir f \ n
hecho)
IFS local = $ '\ n'; COMPLETAR = ($ RESULTADO)
}
_fasd_bash_hook_cmd_complete () {
para cmd en $ *; hacer
completar -F _fasd_bash_cmd_complete $ cmd
hecho
}

habilitar la finalización del modo de comando bash

_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz

En el fasd.log, se habla principalmente de:

(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
(eval):2: comando no encontrado: fasd
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn
PREDETERMINADO -f -tn
PRIMERO
COMANDO -c -tn

Pero cuando escribo fasd -h, funciona:

~ ➤ fasd -h git:maestro*
fasd [opciones] [consulta...]
[f|a|s|d|z] [opiniones] [consulta...]
opciones:
-s lista de rutas con puntajes
-l lista de rutas sin puntajes
-i modo interactivo
-miestablecer comando para ejecutar en el archivo de resultados
-Buso únicoback-end
-Bañadir back-end adicional
-una combinación de archivos y directorios
-d coincide solo con directorios
-f archivos de coincidencia solamente
-r coincidencia solo por rango
-t coincidencia solo por acceso reciente
-R orden de cotización inverso
-h muestra un breve mensaje de ayuda
-[0-9] selecciona la enésima entrada

fasd [-A|-D] [caminos...]
-A agregar caminos
-D eliminar rutas
~ ➤ git:maestro*

El 28 de diciembre de 2017 a las 17:15, Xiao-Meng Wang[email protected]> escribió:

Hola, Euan por las instrucciones, aquí hay algunos resultados que tengo.

primera parte, no tengo ni idea de lo que está pasando:
esto es en zsh

~ ➤ establecer -x git:maestro*
eval "$(fasd--init auto)"
conjunto +x

+zsh:2> fasd --init automático
+zsh:2> eval $'{ if [ "$ZSH_VERSION" ] && compctl; luego # 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 ; luego # 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} >> "/Usuarios/Administrador/.config/fasd/fasd.log" 2>&1'
+(evaluación):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# función para ejecutar cd\nfasd_cd() {\n if [ $# -le 1 ] ; entonces\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# agregar gancho zsh\n_fasd_preexec( ) {\n { eval "fasd --proc $(fasd --sanitize $1)"; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# finalización del modo de comando zsh \n_fasd_zsh_cmd_complete() {\n compl local\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # no expandir si compsys está cargado\n answer=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# habilitar la finalización del modo de comando\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(( $+funciones[compdef ] )) && {\n # finalización del modo palabra zsh\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${palabras [ACTUAL]}"\n local fnd="${_fasd_cur//,/ }"\n local typ=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Usuarios /Administrador/.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[ACTUAL]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # definir 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 palabra completa _generic\n zstyle \':completar:fasd-complete-d: \' completer _fasd_zsh_word_complete_d\n zstyle \':completar:fasd-complete-d: \' menu-select\n }\n\n(( $+funciones[compdef] )) && {\n # habilitar la finalización del modo palabra\n orig_comp="$(zstyle -L \':finalización:*\' completador 2>> "/Usuarios/ Administrador/.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 original_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> carga automática -Uz add-zsh-hook
+(eval):25> agregar-zsh-gancho preexec _fasd_preexec
+zsh:3> establecer +x

segunda parte, no puedo escribir el archivo de ejemplo, así que cambié a root y en este env mínimo, fasd funciona. Todavía no creé el archivo .bashrc.

bash-3.2$ sudo su
Clave:
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 # contraseña
/var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/bin
sh-3.2# curl -sSL -o "${testhome}/bin/fasd" https://raw.githubusercontent.com/clvv/fasd/master/fasd;chmod https://raw.githubusercontent.com/clvv/ fasd/master/fasd;chmod +x ${testhome}/bin/fasd;
sh-3.2# ls-al
40 totales
rueda raíz drwxr-xr-x 3 96 28 de diciembre 16:51 .
drwx------ Rueda raíz 3 96 28 de diciembre 16:50 ..
-rwxr-xr-x 1 rueda raíz 20195 28 de diciembre 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2#fasd
bash-3.2#ls
.viminfo bin ejemplo.txt
bash-3.2# echo "echo hola mundo" >> ~/.bash_history
bash-3.2#ls
.bash_history .viminfo bin ejemplo.txt
bash-3.2# export PATH=$PATH:${testhome}/bin
bash-3.2#ls
.bash_history .fasd .viminfo bin ejemplo.txt
bash-3.2# v .fasd
bash: v: comando no encontrado
bash-3.2# gato .fasd
/var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
bash-3.2# ./bin/fasd ejemplo
bash-3.2# rm ejemplo.txt
bash-3.2# toque ejemplo.txt
bash-3.2# ./bin/fasd ejemplo
6 /var/carpetas/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/ejemplo.txt

El 28 de diciembre de 2017 a las 02:37, Euan Kemp[email protected]> escribió:

Proporcione una reproducción mínima.

Puede ser útil cambiar el código de inicio fasd a lo siguiente para fines de depuración:

conjunto -x
eval "$(fasd--init auto)"
conjunto +x
O para incluir set -x antes del comando que da error.

No puedo reproducir estos problemas. Estos son los pasos que puedo ejecutar para tener una instalación de fasd en funcionamiento bajo bash (que, si desea verificar el trabajo en su sistema, puede reducir si el problema radica en su configuración de bashrc o en otro 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

$ gato > "${testhome}/.bashrc" < export PATH=$PATH:${testhome}/bin

Asegúrese de que el historial no esté en blanco; fasd toma comandos para procesar del historial

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

y, si el historial está vacío, se producirá un error

echo "eco hola mundo" >> ~/.bash_history
eval "\$(fasd--init auto)"
fin de semana

$ env -i INICIO=${testhome} bash
$ cd ~/papelera
$ cd ~/papelera
$ CD ~

$ z contenedor && pwd

$ toque ejemplo.txt
$ fasd ejemplo
Nota: lo anterior debe ejecutarse bajo un shell interactivo para que fasd funcione, no un script bash. Con solo modificaciones menores, lo anterior también debería funcionar para zsh.

Lo anterior para mí funciona como esperaba (imprimir /tmp/tmp.zKxt6nvlxj/bin y 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).

Proporcione cualquiera de los siguientes si puede:

más detalles sobre lo que está fallando (por ejemplo, la salida del ejemplo fasd o fasd --init después de aplicar set -x al shell)
Si puede reproducirlo en un entorno mínimo como el anterior.
Una reproducción mínima real que no es solo "en mi máquina no funciona"

Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 o silencie el hilo 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.pnghttps : //cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png -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 #emisióncomentario-354156542

No estoy seguro si está relacionado. Pero encuentro que https://github.com/jimhester/per-directory-history entra en conflicto con fasd. Tengo el mismo problema que fasd no rastrea ningún archivo o directorio. Después de deshabilitar el fasd del complemento por historial de directorio funciona bien.

También obtuve esto en el subsistema para Windows (podría ser el problema aquí), con bash y zsh .
incluso intenté deshabilitar todas las demás cosas en los archivos rc , pero las listas fasd siempre están vacías.

También intenté usar fasd del repositorio e instalarlo con un administrador de paquetes, los resultados no cambiaron.

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

No estoy seguro si se supone que la clasificación debe estar en ~/.fasd , pero el archivo parece estar siempre vacío.

A mí me ayudó arreglarlo para ejecutarlo como root, extrayendo la parte fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install de
fasd --init auto y rodéelo con eval, eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" y aplicándolo en /root/.bashrc de root, tal vez extrayendo el el comando init no era necesario y todo lo suficiente fue ejecutarlo como root, pero no tuve más tiempo para confirmarlo, pero creo recordar que no funcionó para mí solo como root - tuve que extraiga bash parte del comando init también, creo.

Para futuros lectores, tuve un problema similar porque los derechos de mi carpeta ~/.fasd eran 600 (rw solo para root). Eliminar esta carpeta y obtener mi ~/.zshrc resolvió el problema.

Para futuros lectores, tuve un problema similar porque los derechos de mi carpeta ~/.fasd eran 600 (rw solo para root). Eliminar esta carpeta y obtener mi ~/.zshrc resolvió el problema.

Este fue el problema para mí también

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

pearofducks picture pearofducks  ·  7Comentarios

sindresorhus picture sindresorhus  ·  11Comentarios

josephholsten picture josephholsten  ·  15Comentarios

simendsjo picture simendsjo  ·  6Comentarios

ixil picture ixil  ·  5Comentarios