Я установил Ubuntu 14.04 с помощью этой команды
$ sudo add-apt-repository ppa:aacebedo/fasd
$ sudo apt-получить обновление
$ sudo apt-get установить fasd
Затем я попытался выполнить пример, но он не показывает результата
$ сенсорный пример.txt
пример $fasd
$
Я неправильно его установил? Или команда, которую я выполняю, неверна?
у меня такая же проблема, только не работает какое-то время.
Вы включили код инициализации ( eval "$(fasd --init auto)"
) в rc вашей оболочки (например, .bashrc
или .zshrc
) и запустили новый экземпляр вашей оболочки?
Да, я смог переместить выходной журнал, но попробовал общий код инициализации eval "$(fasd --init auto)", после запуска другого сеанса zsh или перезапуска iterm и ввода fasd/fasd -a/, это просто ничего не показывает.
Вот фрагмент лога:
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
fasd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C[-1, -e] , s[-] n[1,e]' -c - 'c[-1,-A][-1,-D ]'-фfasd_cd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C[-1, -e] , s[-] n[1,e]' -c - 'c[-1,-A][-1,-D ]'-ф
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
Я даже пробовал "/usr/local/bin/fasd -a", и ничего не появляется, я просто понятия не имею, почему он не может найти команду, поскольку в моей переменной $PATH есть /usr/local/bin.
18 декабря 2017 г. в 08:15 Юан Кемп < notifications @github.comnotifications@ github.com > написал:
Включили ли вы код инициализации (eval "$(fasd --init auto)") в rc вашей оболочки (например, ваш .bashrc или .zshrc) и запустили новый экземпляр вашей оболочки?
—
Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 или отключите ветку https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .
Кстати, единственное, что работает, это «fasd -h», что подтверждает, что по крайней мере zsh может узнать, где находится команда, поэтому я понятия не имею, почему лока не может найти команду.
18 декабря 2017 г. в 09:18 Сяо-Мэн Ван < [email protected] [email protected] > написал:
Да, я смог переместить выходной журнал, но попробовал общий код инициализации eval "$(fasd --init auto)", после запуска другого сеанса zsh или перезапуска iterm и ввода fasd/fasd -a/, это просто ничего не показывает.
Вот фрагмент лога:
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
fasd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C[-1, -e] , s[-] n[1,e]' -c - 'c[-1,-A][-1,-D ]'-фfasd_cd -U -V fasd -K _fasd_zsh_cmd_complete -x 'C[-1, -e] , s[-] n[1,e]' -c - 'c[-1,-A][-1,-D ]'-ф
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙЯ даже пробовал "/usr/local/bin/fasd -a", и ничего не появляется, я просто понятия не имею, почему он не может найти команду, поскольку в моей переменной $PATH есть /usr/local/bin.
18 декабря 2017 г. в 08:15 Юан Кемп < notifications @github.comnotifications@ github.com > написал:
Включили ли вы код инициализации (eval "$(fasd --init auto)") в rc вашей оболочки (например, ваш .bashrc или .zshrc) и запустили новый экземпляр вашей оболочки?
—
Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/clvv/fasd/issues/117#issuecomment-352297827 или отключите ветку https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO .
Та же проблема, мой env - это подсистема Ubuntu в Windows 10.
Пожалуйста, предоставьте минимальную репродукцию.
В целях отладки может помочь изменить код инициализации fasd на следующий:
set -x
eval "$(fasd --init auto)"
set +x
Или включить set -x
перед командой, которая выдает ошибку.
Я не могу воспроизвести эти проблемы. Вот шаги, которые я могу выполнить, чтобы иметь работающую установку fasd под bash (которая, если вы хотите проверить работу в вашей системе, может сузить вопрос, связана ли проблема с вашей конфигурацией bashrc или где-то еще):
$ 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
Примечание . Для работы fasd вышеописанное должно быть запущено в интерактивной оболочке, а не в сценарии bash. С небольшими изменениями (заменой «bash» на «zsh») вышеизложенное должно работать и для zsh.
Вышеприведенное для меня работает так, как я и ожидал (распечатывая /tmp/tmp.zKxt6nvlxj/bin
и 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt
).
Пожалуйста, предоставьте что-либо из следующего, если можете:
fasd example
или fasd --init
после применения set -x
к оболочке)Привет, Юан, за инструкцию, вот некоторые результаты, которые у меня есть.
Первая часть, я понятия не имею, что происходит:
это в зш
~ ➤ установить -x git:мастер *
eval "$(fasd --init авто)"
установить +х
+zsh:2> fasd --init авто
+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" ] && завершить ; then # bash\n eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)"\n else # оболочка posix\n eval "$(fasd --init posix-alias posix- ловушка)"\n fi\n} >> "/Пользователи/Администратор/.config/fasd/fasd.log" 2>&1'
+(оценка):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# функция для выполнения встроенной функции cd\nfasd_cd() {\n if [ $# -le 1 ] ; then\n fasd "$@"\n else\n local _fasd_ret="$(fasd -e \'printf %s\' "$@")"\n [ -z "$_fasd_ret" ] && return\n [ -d "$_fasd_ret" ] && cd "$_fasd_ret" || printf %s\n "$_fasd_ret"\n fi\n}\nalias z=\'fasd_cd -d\'\nalias zz=\'fasd_cd -d -i\'\n\n# add zsh hook\n_fasd_preexec( ) {\n { eval "fasd --proc $(fasd --sanitize $1)"; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# завершение командного режима zsh \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # не расширять, если загружен compsys\n answer=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# завершение командного режима 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 # zsh завершение режима слова\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${words [ТЕКУЩИЙ]}"\n local fnd="${_fasd_cur//,/ }"\n local type=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Users /Администратор/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | do\n compadd -U -V fasd "$line"\n done\n compstate[insert]=menu # не расширять\n }\n _fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; }\n _fasd_zsh_word_complete_trigger() {\n local _fasd_cur="${words[CURRENT]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # определить виджеты zle\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 # включить завершение в словесном режиме\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrator/.config/fasd/fasd.log")"\n if [ "$orig_comp" ]; ) eval "$orig_comp _fasd_zsh_word_complete_trigger";;\n esac\n else\n zstyle \':completion: \' completer _complete _fasd_zsh_word_complete_trigger\n fi\n unset orig_comp\n}'
+(eval):1> псевдоним 'a=fasd -a'
+(eval):2> псевдоним 's=fasd -si'
+(eval):3> псевдоним 'sd=fasd -sid'
+(eval):4> псевдоним 'sf=fasd -sif'
+(eval):5> псевдоним 'd=fasd -d'
+(eval):6> псевдоним 'f=fasd -f'
+(eval):17> псевдоним 'z=fasd_cd -d'
+(eval):18> псевдоним 'zz=fasd_cd -d -i'
+(eval):24> autoload -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> установить +x
вторая часть, я не могу написать файл примера, поэтому я перешел на root, и в этом минимальном env работает fasd. Я еще не создал файл .bashrc.
bash-3.2$ sudo su
Пароль:
sh-3.2# testhome=$(mktemp -d)
sh-3.2# mkdir -p ${testhome}/bin
sh-3.2# cd ${testhome}/bin
ш-3.2# лс
ш-3.2# pwd
/var/папки/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;
ш-3.2# лс -ал
всего 40
drwxr-xr-x 3 корневое колесо 96 28 декабря 16:51 .
drwx------ 3 корневое колесо 96 дек 28 16:50 ..
-rwxr-xr-x 1 корневое колесо 20195 28 декабря 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2# фасд
bash-3.2# лс
.viminfo bin пример.txt
bash-3.2# эхо "эхо привет мир" >> ~/.bash_history
bash-3.2# лс
.bash_history .viminfo bin пример.txt
bash-3.2# экспорт PATH=$PATH:${testhome}/bin
bash-3.2# лс
.bash_history .fasd .viminfo bin пример.txt
bash-3.2# в .fasd
bash: v: команда не найдена
bash-3.2# кошка .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
bash-3.2# rm пример.txt
bash-3.2# сенсорный пример.txt
пример bash-3.2# ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt
28 декабря 2017 г. в 02:37 Юан Кемп < notifications @github.comnotifications@ github.com > написал:
Пожалуйста, предоставьте минимальную репродукцию.
В целях отладки может помочь изменить код инициализации fasd на следующий:
установить -х
eval "$(fasd --init авто)"
установить +х
Или включить set -x перед командой, которая выдает ошибку.Я не могу воспроизвести эти проблемы. Вот шаги, которые я могу выполнить, чтобы иметь работающую установку fasd под bash (которая, если вы хотите проверить работу в вашей системе, может сузить вопрос, связана ли проблема с вашей конфигурацией bashrc или где-то еще):
$ 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" <
экспорт PATH=$PATH:${testhome}/bin Убедитесь, что история не пуста; fasd берет команды для обработки из истории
(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b307-cbdb1fas#54cbdb1fas# )
и, если история пуста, выдаст ошибку
эхо "эхо привет мир" >> ~/.bash_history
eval "$(fasd --init авто)"
EOF$ env -i HOME=${testhome} bash
$ cd ~/bin
$ cd ~/bin
$ компакт-диск ~$ z bin && pwd
$ сенсорный пример.txt
пример $fasd
Примечание: для работы fasd вышеописанное должно быть запущено в интерактивной оболочке, а не в bash-скрипте. С небольшими изменениями вышеизложенное должно работать и для zsh.Вышеприведенное для меня работает так, как я и ожидал (распечатывая /tmp/tmp.zKxt6nvlxj/bin и 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).
Пожалуйста, предоставьте что-либо из следующего, если можете:
более подробная информация о том, что ломается (например, вывод примера fasd или fasd --init после применения set -x к оболочке)
Можете ли вы воспроизвести его в минимальной среде, как указано выше.
Настоящая минимальная копия, а не просто «на моей машине это не работает».
—
Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 или отключите звук в ветке https://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3- фIjkOr9WFjjWks5tEo53gaJpZM4QxsoO .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
Мой код инициализации zsh выглядит следующим образом:
fasd_cache = "$ HOME/.config/fasd/fasd-init-zsh"
если ["$ (команда -v fasd)" -nt "$ fasd_cache" -o! -s "$fasd_cache"]; тогда
fasd --init псевдоним posix posix-hook zsh-hook zsh-ccomp zsh-ccomp-install zsh-ccomp zsh-ccomp-install> | "$fasd_cache"
фи
источник "$fasd_cache"
сбросить fasd_cache
Где находится fasd-init-zsh:
fasd ➤ cat fasd-init-zsh git: master *
псевдоним a = 'fasd -a'
псевдоним s = 'fasd -si'
псевдоним sd = 'fasd -sid'
псевдоним sf = 'fasd -sif'
псевдоним d = 'fasd -d'
псевдоним f = 'fasd -f'
fasd_cd () {
если [$# -ле 1]; тогда
fasd "$ @"
еще
местный _fasd_ret = "$ (fasd -e 'printf%s'" $ @ ")"
[-z "$_fasd_ret"] && возврат
[-d "$_fasd_ret"] && cd "$_fasd_ret" || printf%s\n"$_fasd_ret"
фи
}
псевдоним z = 'fasd_cd -d'
псевдоним zz = 'fasd_cd -d -i'
_fasd_prompt_func () {
eval "fasd --proc $ (fasd --sanitize $ (история 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Пользователи/Администратор/.config/fasd/fasd.log" 2> & 1
}
случай $ PROMPT_COMMAND в
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_ fasd_prompt_func; $ PROMPT_COMMAND" ;;
эсак
_fasd_bash_cmd_complete () {
# завершить команду после "-e"
местный курс = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A command $ cur)) && return# завершить, используя строку чтения по умолчанию, завершенную после "-A" или "-D"случай $ {COMP_WORDS [COMP_CWORD-1]} в-A | -D) COMPREPLY = ($ (compgen -o по умолчанию $ cur)) && return ;;эсак# получить результаты завершения, используя расширенные псевдонимыместный РЕЗУЛЬТАТ = $ (fasd --complete "$ (псевдоним -p $ COMP_WORDS \2 >> "/Пользователи/Администратор/.config/fasd/fasd.log" | \)'/\1/p")$ {COMP_LINE # } "| пока читаем строку -r; делаем
quote_readline "$ строка" 2> /dev/null || \
printf%q "$line" 2> /dev/null && \
printf\n
Готово)
локальная ИФС = $'\n'; ПОЛНОСТЬЮ = ($ РЕЗУЛЬТАТ)
}
_fasd_bash_hook_cmd_complete () {
для cmd в $*; делать
завершить -F _fasd_bash_cmd_complete $ cmd
Готово
}
_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz
В fasd.log в основном говорится о:
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
(eval):2: команда не найдена: fasd
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
ПО УМОЛЧАНИЮ -f -tn
ПЕРВЫЙ
КОМАНДА -c -tn
Но когда я набираю fasd -h, он работает:
~ ➤ fasd -h git:мастер*
fasd [опции] [запрос ...]
[f|a|s|d|z] [варианты] [запрос ...]
опции:
-s список путей с оценками
-l список путей без оценок
-i интерактивный режим
-е
-б
-Б
-a сопоставление файлов и каталогов
-d совпадать только с каталогами
-f совпадать только с файлами
-r соответствует только по рангу
-t соответствует только недавнему доступу
-R обратный порядок перечисления
-h показать краткое справочное сообщение
-[0-9] выбрать n-ю запись
fasd [-A|-D] [пути ...]
-A добавить пути
-D удалить пути
~ ➤ git:мастер*
28 декабря 2017 г., 17:15, Сяо-Мэн Ван
[email protected]> написал: Привет, Юан, за инструкцию, вот некоторые результаты, которые у меня есть.
Первая часть, я понятия не имею, что происходит:
это в зш~ ➤ set -x git:мастер*
eval "$(fasd --init авто)"
установить +х+zsh:2> fasd --init авто
+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" ] && завершить ; then # bash\n eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)"\n else # оболочка posix\n eval "$(fasd --init posix-alias posix- ловушка)"\n fi\n} >> "/Пользователи/Администратор/.config/fasd/fasd.log" 2>&1'
+(оценка):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# функция для выполнения встроенной функции cd\nfasd_cd() {\n if [ $# -le 1 ] ; then\n fasd "$@"\n else\n local _fasd_ret="$(fasd -e \'printf %s\' "$@")"\n [ -z "$_fasd_ret" ] && return\n [ -d "$_fasd_ret" ] && cd "$_fasd_ret" || printf %s\n "$_fasd_ret"\n fi\n}\nalias z=\'fasd_cd -d\'\nalias zz=\'fasd_cd -d -i\'\n\n# add zsh hook\n_fasd_preexec( ) {\n { eval "fasd --proc $(fasd --sanitize $1)"; } >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1\n}\nautoload -Uz add-zsh-hook\nadd-zsh-hook preexec _fasd_preexec\n\n# завершение командного режима zsh \n_fasd_zsh_cmd_complete() {\n local compl\n read -c compl\n (( $+compstate )) && compstate[insert]=menu # не расширять, если загружен compsys\n answer=(${(f)"$( fasd --complete "$compl")"})\n}\n\n# завершение командного режима 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 # zsh завершение режима слова\n _fasd_zsh_word_complete() {\n [ "$2" ] && local _fasd_cur="$2"\n [ -z "$_fasd_cur" ] && local _fasd_cur="${words [ТЕКУЩИЙ]}"\n local fnd="${_fasd_cur//,/ }"\n local type=${1:-e}\n fasd --query $typ "$fnd" 2>> "/Users /Администратор/.config/fasd/fasd.log" | sed \'s/^[^ ] [ ] //\' | do\n compadd -U -V fasd "$line"\n done\n compstate[insert]=menu # не расширять\n }\n _fasd_zsh_word_complete_f() { _fasd_zsh_word_complete f ; }\n _fasd_zsh_word_complete_trigger() {\n local _fasd_cur="${words[CURRENT]}"\n eval $(fasd --word-complete-trigger _fasd_zsh_word_complete $_fasd_cur)\n }\n # определить виджеты zle\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 # включить завершение в словесном режиме\n orig_comp="$(zstyle -L \':completion:*\' completer 2>> "/Users/ Administrator/.config/fasd/fasd.log")"\n if [ "$orig_comp" ]; ) eval "$orig_comp _fasd_zsh_word_complete_trigger";;\n esac\n else\n zstyle \':completion: \' completer _complete _fasd_zsh_word_complete_trigger\n fi\n unset orig_comp\n}'
+(eval):1> псевдоним 'a=fasd -a'
+(eval):2> псевдоним 's=fasd -si'
+(eval):3> псевдоним 'sd=fasd -sid'
+(eval):4> псевдоним 'sf=fasd -sif'
+(eval):5> псевдоним 'd=fasd -d'
+(eval):6> псевдоним 'f=fasd -f'
+(eval):17> псевдоним 'z=fasd_cd -d'
+(eval):18> псевдоним 'zz=fasd_cd -d -i'
+(eval):24> autoload -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> установить +xвторая часть, я не могу написать файл примера, поэтому я перешел на root, и в этом минимальном env работает fasd. Я еще не создал файл .bashrc.
bash-3.2$ sudo su
Пароль:
sh-3.2# testhome=$(mktemp -d)
sh-3.2# mkdir -p ${testhome}/bin
sh-3.2# cd ${testhome}/bin
ш-3.2# лс
ш-3.2# pwd
/var/папки/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;
ш-3.2# лс -ал
всего 40
drwxr-xr-x 3 корневое колесо 96 28 декабря 16:51 .
drwx------ 3 корневое колесо 96 дек 28 16:50 ..
-rwxr-xr-x 1 корневое колесо 20195 28 декабря 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2# фасд
bash-3.2# лс
.viminfo bin пример.txt
bash-3.2# эхо "эхо привет мир" >> ~/.bash_history
bash-3.2# лс
.bash_history .viminfo bin пример.txt
bash-3.2# экспорт PATH=$PATH:${testhome}/bin
bash-3.2# лс
.bash_history .fasd .viminfo bin пример.txt
bash-3.2# в .fasd
bash: v: команда не найдена
bash-3.2# кошка .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
bash-3.2# rm пример.txt
bash-3.2# сенсорный пример.txt
пример bash-3.2# ./bin/fasd
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt28 декабря 2017 г., 02:37, Юан Кемп
уведомления@github.com> написал: Пожалуйста, предоставьте минимальную репродукцию.
В целях отладки может помочь изменить код инициализации fasd на следующий:
установить -х
eval "$(fasd --init авто)"
установить +х
Или включить set -x перед командой, которая выдает ошибку.Я не могу воспроизвести эти проблемы. Вот шаги, которые я могу выполнить, чтобы иметь работающую установку fasd под bash (которая, если вы хотите проверить работу в вашей системе, может сузить вопрос, связана ли проблема с вашей конфигурацией bashrc или где-то еще):
$ 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" <
экспорт PATH=$PATH:${testhome}/bin Убедитесь, что история не пуста; fasd берет команды для обработки из истории
(https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b307-cbdb1fas#54cbdb1fas# )
и, если история пуста, выдаст ошибку
эхо "эхо привет мир" >> ~/.bash_history
eval "\$(fasd --init auto)"
EOF$ env -i HOME=${testhome} bash
$ cd ~/bin
$ cd ~/bin
$ компакт-диск ~$ z bin && pwd
$ сенсорный пример.txt
пример $fasd
Примечание: для работы fasd вышеописанное должно быть запущено в интерактивной оболочке, а не в bash-скрипте. С небольшими изменениями вышеизложенное должно работать и для zsh.Вышеприведенное для меня работает так, как я и ожидал (распечатывая /tmp/tmp.zKxt6nvlxj/bin и 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt).
Пожалуйста, предоставьте что-либо из следующего, если можете:
более подробная информация о том, что ломается (например, вывод примера fasd или fasd --init после применения set -x к оболочке)
Можете ли вы воспроизвести его в минимальной среде, как указано выше.
Настоящая минимальная копия, а не просто «на моей машине это не работает».
—
Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542 или отключите звук в ветке https://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3- фIjkOr9WFjjWks5tEo53gaJpZM4QxsoO .https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc -7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0db -11e6-9aed-b52498112777.png https://github.com/clvv/fasd https://github.com/clvv/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/ n$ https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/n$ https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github .com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/issues/117#issuecomment-354156542 https://github.com/clvv/fasd/issues/117 #issuecomment-354156542
Не уверен, что это связано. Но я считаю, что https://github.com/jimhester/per-directory-history конфликтует с fasd. У меня та же проблема, что fasd не отслеживает файлы или каталоги. После отключения плагина истории каталогов fasd работает нормально.
Также получил это в подсистеме для окон (может быть, здесь проблема), как с bash
, так и с zsh
.
даже пытался отключить все остальное в файлах rc
, но списки fasd
всегда пусты.
Я также пытался использовать как fasd
из репозитория, так и установить его с помощью менеджера пакетов, результаты не изменились.
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
Не уверен, что рейтинг должен быть в ~/.fasd
, но файл кажется всегда пустым.
Для меня это помогло исправить это, чтобы запустить его от имени пользователя root, извлекая часть fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install
из
fasd --init auto
и окружите ее eval, eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)" и примените к корневому каталогу /root/.bashrc , возможно, извлекая команда init была не нужна, и все, что было достаточно, это запустить ее как root, но у меня не было больше времени, чтобы подтвердить это, но я думаю, что помню, что это не сработало для меня так же, как и только с помощью root - мне пришлось извлеките часть команды инициализации bash, я думаю.
Для будущих читателей: у меня была аналогичная проблема, потому что права моей папки ~/.fasd были 600 (только для root). Удаление этой папки и поиск моего файла ~/.zshrc решили проблему.
Для будущих читателей: у меня была аналогичная проблема, потому что права моей папки ~/.fasd были 600 (только для root). Удаление этой папки и поиск моего файла ~/.zshrc решили проблему.
Это было проблемой и для меня
Для меня это было 100% https://github.com/clvv/fasd/issues/117#issuecomment -357458043.
Самый полезный комментарий
Не уверен, что это связано. Но я считаю, что https://github.com/jimhester/per-directory-history конфликтует с fasd. У меня та же проблема, что fasd не отслеживает файлы или каталоги. После отключения плагина истории каталогов fasd работает нормально.