Fasd: 全新安装但无法正常工作

创建于 2017-12-01  ·  14评论  ·  资料来源: clvv/fasd

我确实使用此命令为 ubuntu 14.04 安装
$ sudo add-apt-repository ppa:aacebedo/fasd
$ sudo apt-get 更新
$ sudo apt-get install fasd

然后我尝试执行该示例,但它没有显示任何结果
$ 触摸示例.txt
$ fasd 示例
$

我是不是安装错了? 还是我执行的命令不正确?

最有用的评论

不确定是否相关。 但我发现https://github.com/jimhester/per-directory-history与 fasd 冲突。 我有同样的问题,fasd 不跟踪任何文件或目录。 禁用 per-directory-history 插件后,fasd 工作正常。

所有14条评论

我的也有同样的问题,只是一段时间不工作。

你是否在你的 shell 的 rc 中包含了初始化代码( eval "$(fasd --init auto)" )(例如你的.bashrc.zshrc )并运行你的 shell 的一个新实例?

是的,我可以重新定位输出日志,但在启动另一个 zsh 会话或重新启动 iterm 并键入 fasd/fasd -a/ 后尝试了通用初始化代码 eval“$(fasd --init auto)”,它只是什么都不显示。

这是关于什么是日志的片段:

(评估):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 ]' -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
命令 -c -tn
默认 -f -tn
第一的

我什至尝试了“/usr/local/bin/fasd -a”,但什么也没显示,我只是不知道为什么它找不到命令,因为我的 $PATH 变量有 /usr/local/bin。

2017 年 12 月 18 日 08:15,Euan Kemp < [email protected] [email protected] > 写道:

你是否在你的 shell 的 rc(例如你的 .bashrc 或 .zshrc)中包含了初始化代码(eval "$(fasd --init auto)")并运行你的 shell 的一个新实例?


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ,或将帖子静音https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO

顺便说一句,唯一有效的是“fasd -h”,它确认至少 zsh 可以找到命令的位置,所以我不知道为什么 loca 找不到命令。

2017年12月18日09:18,王小萌< [email protected] [email protected] >写道:

是的,我可以重新定位输出日志,但在启动另一个 zsh 会话或重新启动 iterm 并键入 fasd/fasd -a/ 后尝试了通用初始化代码 eval“$(fasd --init auto)”,它只是什么都不显示。

这是关于什么是日志的片段:

(评估):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 ]' -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
命令 -c -tn
默认 -f -tn
第一的

我什至尝试了“/usr/local/bin/fasd -a”,但什么也没显示,我只是不知道为什么它找不到命令,因为我的 $PATH 变量有 /usr/local/bin。

2017 年 12 月 18 日 08:15,Euan Kemp < [email protected] [email protected] > 写道:

你是否在你的 shell 的 rc(例如你的 .bashrc 或 .zshrc)中包含了初始化代码(eval "$(fasd --init auto)")并运行你的 shell 的一个新实例?


您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看https://github.com/clvv/fasd/issues/117#issuecomment-352297827 ,或将帖子静音https://github.com/notifications/unsubscribe-auth/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZM4QxsoO

同样的问题,我的环境是 Windows 10 上的 Ubuntu 子系统

请提供最低限度的复制品。

出于调试目的,将 fasd 初始化代码更改为以下内容可能会有所帮助:

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

或者在出错的命令之前包含set -x

我无法重现这些问题。 以下是我可以运行的步骤,以便在 bash 下进行有效的 fasd 安装(如果您希望检查系统上的工作,可以缩小问题是出在您的 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

注意:以上必须在交互式 shell 下运行,fasd 才能工作,而不是 bash 脚本。 只需稍作修改(将 'bash' 替换为 'zsh'),上述内容也适用于 zsh。

以上对我来说就像我期望的那样工作(打印出/tmp/tmp.zKxt6nvlxj/bin6 /tmp/tmp.zKxt6nvlxj/bin/example.txt )。

如果可以,请提供以下任何一项:

  1. 关于什么是破坏的更多细节(例如,在将set -x应用到 shell 之后fasd examplefasd --init的输出)
  2. 您是否可以在像上面这样的最小环境中重现它。
  3. 一个实际的最小复制,不仅仅是“在我的机器上它不起作用”

嗨,Euan 的指示,这是我得到的一些输出。

第一部分,我不知道发生了什么:
这是在 zsh

~ ➤ 设置 -x git:master *
eval "$(fasd --init auto)"
设置 +x

+zsh:2> fasd --init 自动
+zsh:2> eval $'{ if [ "$ZSH_VERSION" ] && compctl; 然后 # zsh\n eval "$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \n zsh-wcomp zsh-wcomp-install)"\n elif [ "$BASH_VERSION" ] && 完成; 然后 # 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-钩子)"\n fi\n} >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1'
+(eval):1> [ 5.3 ']'
+(eval):1>compctl
+(eval):2> fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install
+(eval):2> eval $'alias a=\'fasd -a\'\nalias s=\'fasd -si\'\nalias sd=\'fasd -sid\'\nalias sf=\'fasd - sif\'\nalias d=\'fasd -d\'\nalias f=\'fasd -f\'\n# 执行内置函数 cd\nfasd_cd() {\n if [ $# -le 1 ] ; 然后\n fasd "$@"\n 其他\n 本地 _fasd_ret="$(fasd -e \'printf %s\' "$@")"\n [ -z "$_fasd_ret" ] && 返回\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# 添加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 reply=(${(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 word 模式补全\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>> "/Users /Administrator/.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: \' 补全器 _fasd_zsh_word_complete_f\n zstyle \':completion:fasd-complete-f: \' menu-select\n\n zle -C fasd-complete -d 完成字 _generic\n zstyle \':completion:fasd-complete-d: \' 完成者 _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:*\' 完成者 2>> "/Users/管理员/.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> 自动加载 -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> 设置 +x

第二部分,我无法编写示例文件,所以我更改为 root,在这个最小的环境中,fasd 可以工作。 我还没有创建 .bashrc 文件。

bash-3.2$ 须藤苏
密码:
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#密码
/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
共 40 个
drwxr-xr-x 3 根轮 96 Dec 28 16:51 。
drwx------ 3 根轮 96 Dec 28 16:50 ..
-rwxr-xr-x 1 根轮 20195 Dec 28 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2# fasd
bash-3.2# ls
.viminfo bin 示例.txt
bash-3.2# echo "echo hello world" >> ~/.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:找不到命令
bash-3.2# cat .fasd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/文件夹/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
bash-3.2# ./bin/fasd 示例
bash-3.2# rm example.txt
bash-3.2# touch example.txt
bash-3.2# ./bin/fasd 示例
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

2017 年 12 月 28 日 02:37,Euan Kemp < [email protected] [email protected] > 写道:

请提供最低限度的复制品。

出于调试目的,将 fasd 初始化代码更改为以下内容可能会有所帮助:

设置-x
eval "$(fasd --init auto)"
设置 +x
或者在出错的命令之前包含 set -x 。

我无法重现这些问题。 以下是我可以运行的步骤,以便在 bash 下进行有效的 fasd 安装(如果您希望检查系统上的工作,可以缩小问题是出在您的 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/90b531a5daaa545c74c7d98974b54cbdb#L127-L30d

并且,如果历史记录为空,则会出错

回声“回声你好世界”>>〜/ .bash_history
eval "$(fasd --init auto)"
EOF

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

$ z bin && 密码

$ 触摸示例.txt
$ fasd 示例
注意:以上必须在交互式 shell 下运行,fasd 才能工作,而不是 bash 脚本。 只需稍作修改,上述内容也适用于 zsh。

以上对我来说就像我期望的那样工作(打印出 /tmp/tmp.zKxt6nvlxj/bin 和 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt)。

如果可以,请提供以下任何一项:

关于什么是破坏的更多细节(例如 fasd 示例或 fasd --init 在将 set -x 应用于 shell 后的输出)
您是否可以在像上面这样的最小环境中重现它。
一个实际的最小复制,不仅仅是“在我的机器上它不起作用”

您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ,或将帖子静音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

我的 zsh 初始化代码如下所示:

fasd_cache = "$ HOME/.config/fasd/fasd-init-zsh"
if ["$ (command -v fasd)" -nt "$ fasd_cache" -o! -s "$ fasd_cache"]; 然后
fasd --init posix-alias 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'

执行内置 cd 的函数

fasd_cd () {
如果 [$ # -le 1]; 然后
快速“$@”
别的
local _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 $ (history 1 | \
sed "s / ^ [] [0-9] [] * //")) "" >> "/Users/Administrator/.config/fasd/fasd.log" 2> & 1
}

添加 bash 钩子

案例 $ PROMPT_COMMAND 中
_fasd_prompt_func ) ;;
*) PROMPT_COMMAND = "_fasd_prompt_func; $ PROMPT_COMMAND" ;;
经社理事会

bash 命令模式完成

_fasd_bash_cmd_complete () {
# 在“-e”之后完成命令
本地 cur = $ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == - e]] && \COMPREPLY = ($ (compgen -A command $ cur)) && return# 使用默认的readline完成 在“-A”或“-D”之后完成案例 $ {COMP_WORDS [COMP_CWORD-1]} 在-A | -D) COMPREPLY = ($ (compgen -o default $cur)) && return ;;经社理事会# 使用扩展别名获取完成结果本地结果 = $ (fasd --complete "$ (别名 -p $ COMP_WORDS \2 >> "/Users/Administrator/.config/fasd/fasd.log" | \)'/\1/p")$ {COMP_LINE # } "| while read -r line; do
quote_readline "$ line" 2> /dev/null || \
printf%q "$ line" 2> /dev/null &&\
打印\n
完毕)
本地 IFS = $ '\ n'; 完全 = ($ 结果)
}
_fasd_bash_hook_cmd_complete () {
对于 $ * 中的 cmd; 做
完成 -F _fasd_bash_cmd_complete $ cmd
完毕
}

启用 bash 命令模式完成

_fasd_bash_hook_cmd_complete fasd asdf sd sf z zz

在 fasd.log 中,它主要谈论:

(评估):2:找不到命令:fasd
命令 -c -tn
默认 -f -tn
第一的
命令 -c -tn
默认 -f -tn
第一的
命令 -c -tn
默认 -f -tn
第一的
(评估):2:找不到命令:fasd
命令 -c -tn
默认 -f -tn
第一的
(评估):2:找不到命令:fasd
命令 -c -tn
默认 -f -tn
第一的
(评估):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:master*
fasd [选项] [查询 ...]
[f|a|s|d|z] [意见] [查询...]
选项:
-s 列出带有分数的路径
-l 列出没有分数的路径
-i 交互模式
-e设置在结果文件上执行的命令
-b只使用后端
-B添加额外的后端
-a 匹配文件和目录
-d 只匹配目录
-f 只匹配文件
-r 仅按等级匹配
-t 仅通过最近访问匹配
-R 反向列出顺序
-h 显示简短的帮助信息
-[0-9] 选择第 n 个条目

fasd [-A|-D] [路径 ...]
-A 添加路径
-D 删除路径
~ ➤ git:master*

2017 年 12 月 28 日 17:15,王小萌[email protected]> 写道:

嗨,Euan 的指示,这是我得到的一些输出。

第一部分,我不知道发生了什么:
这是在 zsh

~ ➤ 设置 -x git:master*
eval "$(fasd --init auto)"
设置 +x

+zsh:2> fasd --init 自动
+zsh:2> eval $'{ if [ "$ZSH_VERSION" ] && compctl; 然后 # zsh\n eval "$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \n zsh-wcomp zsh-wcomp-install)"\n elif [ "$BASH_VERSION" ] && 完成; 然后 # 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-钩子)"\n fi\n} >> "/Users/Administrator/.config/fasd/fasd.log" 2>&1'
+(eval):1> [ 5.3 ']'
+(eval):1>compctl
+(eval):2> fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install zsh-wcomp zsh-wcomp-install
+(eval):2> eval $'alias a=\'fasd -a\'\nalias s=\'fasd -si\'\nalias sd=\'fasd -sid\'\nalias sf=\'fasd - sif\'\nalias d=\'fasd -d\'\nalias f=\'fasd -f\'\n# 执行内置函数 cd\nfasd_cd() {\n if [ $# -le 1 ] ; 然后\n fasd "$@"\n 其他\n 本地 _fasd_ret="$(fasd -e \'printf %s\' "$@")"\n [ -z "$_fasd_ret" ] && 返回\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# 添加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 reply=(${(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 word 模式补全\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>> "/Users /Administrator/.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: \' 补全器 _fasd_zsh_word_complete_f\n zstyle \':completion:fasd-complete-f: \' menu-select\n\n zle -C fasd-complete -d 完成字 _generic\n zstyle \':completion:fasd-complete-d: \' 完成者 _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:*\' 完成者 2>> "/Users/管理员/.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> 自动加载 -Uz add-zsh-hook
+(eval):25> add-zsh-hook preexec _fasd_preexec
+zsh:3> 设置 +x

第二部分,我无法编写示例文件,所以我更改为 root,在这个最小的环境中,fasd 可以工作。 我还没有创建 .bashrc 文件。

bash-3.2$ 须藤苏
密码:
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#密码
/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
共 40 个
drwxr-xr-x 3 根轮 96 Dec 28 16:51 。
drwx------ 3 根轮 96 Dec 28 16:50 ..
-rwxr-xr-x 1 根轮 20195 Dec 28 16:51 fasd
bash-3.2# eval "$(./bin/fasd --init auto)"
bash-3.2# fasd
bash-3.2# ls
.viminfo bin 示例.txt
bash-3.2# echo "echo hello world" >> ~/.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:找不到命令
bash-3.2# cat .fasd
/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd|1|1514451952
bash-3.2# ./bin/fasd
12 /var/文件夹/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/.fasd
bash-3.2# ./bin/fasd 示例
bash-3.2# rm example.txt
bash-3.2# touch example.txt
bash-3.2# ./bin/fasd 示例
6 /var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/tmp.SFwFn0r6/example.txt

2017 年 12 月 28 日,02:37,Euan Kemp通知@github.com> 写道:

请提供最低限度的复制品。

出于调试目的,将 fasd 初始化代码更改为以下内容可能会有所帮助:

设置-x
eval "$(fasd --init auto)"
设置 +x
或者在出错的命令之前包含 set -x 。

我无法重现这些问题。 以下是我可以运行的步骤,以便在 bash 下进行有效的 fasd 安装(如果您希望检查系统上的工作,可以缩小问题是出在您的 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/90b531a5daaa545c74c7d98974b54cbdb#L127-L30d

并且,如果历史记录为空,则会出错

回声“回声你好世界”>>〜/ .bash_history
eval "\$(fasd --init auto)"
EOF

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

$ z bin && 密码

$ 触摸示例.txt
$ fasd 示例
注意:以上必须在交互式 shell 下运行,fasd 才能工作,而不是 bash 脚本。 只需稍作修改,上述内容也适用于 zsh。

以上对我来说就像我期望的那样工作(打印出 /tmp/tmp.zKxt6nvlxj/bin 和 6 /tmp/tmp.zKxt6nvlxj/bin/example.txt)。

如果可以,请提供以下任何一项:

关于什么是破坏的更多细节(例如 fasd 示例或 fasd --init 在将 set -x 应用于 shell 后的输出)
您是否可以在像上面这样的最小环境中重现它。
一个实际的最小复制,不仅仅是“在我的机器上它不起作用”

您收到此消息是因为您发表了评论。
直接回复此邮件,在 GitHub 上查看https://github.com/clvv/fasd/issues/117#issuecomment-354156542 ,或将帖子静音https://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3- fIjkOr9WFjjWks5tEo53gaJpZM4QxsoO

https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc -7290892c7bb5.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b -11e6-9aed-b52498112777.png https://github.com/clvv/fasd https://github.com/clvv/fasd https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/ n$ https://raw.githubusercontent.com/clvv/fasd/master/fasd/r/n$ https://github.com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github .com/clvv/fasd/blob/90b531a5daaa545c74c7d98974b54cbdb92659fc/fasd#L127-L130 https://github.com/clvv/fasd/issues/117#issuecomment-354156542 https://github.com/clvv/fasd/issues/117 #issuecomment-354156542

不确定是否相关。 但我发现https://github.com/jimhester/per-directory-history与 fasd 冲突。 我有同样的问题,fasd 不跟踪任何文件或目录。 禁用 per-directory-history 插件后,fasd 工作正常。

Windows 子系统上也得到了这个(可能是这里的问题),有bashzsh
甚至尝试禁用rc文件中的所有其他内容,但fasd列表始终为空。

我还尝试使用来自 repo 的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 的 /root/.bashrc ,也许提取init 命令不是必需的,并且以 root 身份运行它就足够了,但没有更多时间来确认这一点,但我想我记得它对我不起作用,只是通过 root 的方式 - 我不得不我认为也提取了 init 命令的 bash 部分。

对于未来的读者,我遇到了类似的问题,因为我的 ~/.fasd 文件夹的权限是 600(rw 仅适用于 root)。 删除此文件夹并采购我的 ~/.zshrc 解决了这个问题。

对于未来的读者,我遇到了类似的问题,因为我的 ~/.fasd 文件夹的权限是 600(rw 仅适用于 root)。 删除此文件夹并采购我的 ~/.zshrc 解决了这个问题。

这也是我的问题

对我来说,这是 100% https://github.com/clvv/fasd/issues/117#issuecomment -357458043。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

sypl picture sypl  ·  12评论

sbglasius picture sbglasius  ·  5评论

rosshadden picture rosshadden  ·  6评论

sindresorhus picture sindresorhus  ·  11评论

simendsjo picture simendsjo  ·  6评论