Fasd: フレッシュインストールしますが機能しません

作成日 2017年12月01日  ·  14コメント  ·  ソース: clvv/fasd

このコマンドを使用してubuntu14.04にインストールしました
$ sudo add-apt-repository ppa:aacebedo / fasd
$ sudo apt-get update
$ sudo apt-get install fasd

次に、例を実行しようとしましたが、結果が表示されません
$ touch example.txt
$fasdの例
$

間違ってインストールしましたか? または、実行するコマンドが正しくありませんか?

最も参考になるコメント

関連しているかどうかわからない。 しかし、 https://github.com/jimhester/per-directory-historyがfasdと競合していることがわかりました。 fasdがファイルやディレクトリを追跡しないのと同じ問題があります。 ディレクトリごとの履歴プラグインを無効にすると、fasdは正常に機能します。

全てのコメント14件

私も同じ問題を抱えています、それはしばらくの間機能していません。

初期化コード( eval "$(fasd --init auto)" )をシェルのrc(たとえば、 .bashrcまたは.zshrc )に含めて、シェルの新しいインスタンスを実行しましたか?

はい、できました。出力ログを再配置できましたが、一般的なinitコード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 ]'-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、EuanKemp< 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/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZ

ちなみに、動作するのは「fasd -h」だけです。これは、少なくともzshがコマンドの場所を検出できることを確認するため、locaがコマンドを検出できない理由がわかりません。

2017年12月18日09:18、Xiao-Meng Wang< xiaomengwong @gmail.comxiaomengwong@ gmail.com >は次のように書いています。

はい、できました。出力ログを再配置できましたが、一般的なinitコード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 ]'-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、EuanKemp< 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/ADKNgnXANOaoBoWsmKj82G3Cfuiln8yrks5tBa6jgaJpZ

同じ問題、私の環境はWindows10のUbuntuサブシステムです

最小限の複製を提供してください。

デバッグの目的で、fasdinitコードを次のように変更すると役立つ場合があります。

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

:fasdを機能させるには、bashスクリプトではなく、インタラクティブシェルで上記を実行する必要があります。 わずかな変更(「bash」を「zsh」に置き換える)だけで、上記はzshでも機能するはずです。

上記は私が期待するとおりに機能します( /tmp/tmp.zKxt6nvlxj/bin6 /tmp/tmp.zKxt6nvlxj/bin/example.txt出力します)。

可能であれば、次のいずれかを提供してください。

  1. 何が壊れているかについての詳細(たとえば、シェルにset -xを適用した後のfasd exampleまたはfasd --initの出力)
  2. 上記のような最小限の環境で再現できるかどうか。
  3. 「私のマシンでは機能しない」だけではない実際の最小限の複製

こんにちはEuanの指示です。これが私が得た出力です。

最初の部分、私は何が起こっているのか分かりません:
これはzshにあります

〜➤set-x git:master *
eval "$(fasd --init auto)"
+xを設定

+ zsh:2> fasd --init auto
+ 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"] && 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-フック) "\ nfi \ 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] ; 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#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#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(($ + features [compdef ]))&& {\ n#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 >>" / Users /Administrator/.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 [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(($ + features [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 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> set + x

2番目の部分では、サンプルファイルを記述できないため、rootに変更しました。この最小限の環境では、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
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
合計40
drwxr-xr-x3ルートホイール96Dec2816:51。
drwx------3ルートホイール96Dec28 16:50..
-rwxr-xr-x1ルートホイール2019512月28日16:51fasd
bash-3.2#eval "$(./ bin / fasd --init auto)"
bash-3.2#fasd
bash-3.2#ls
.viminfo bin example.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/folders/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、EuanKemp< notifications @github.comnotifications@ github.com >は次のように書いています。

最小限の複製を提供してください。

デバッグの目的で、fasdinitコードを次のように変更すると役立つ場合があります。

set -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"< export PATH = $ PATH:$ {testhome} / bin

履歴が空白でないことを確認してください。 fasdは履歴から処理するコマンドを取得します

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

そして、履歴が空の場合、エラーになります

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の例
注:fasdを機能させるには、bashスクリプトではなく、インタラクティブシェルで上記を実行する必要があります。 わずかな変更を加えるだけで、上記はzshでも機能するはずです。

上記は期待どおりに機能します(/tmp/tmp.zKxt6nvlxj/binおよび6 /tmp/tmp.zKxt6nvlxj/bin/example.txtを出力します)。

可能であれば、次のいずれかを提供してください。

何が壊れているかについての詳細(たとえば、シェルにset -xを適用した後のfasdexampleまたはfasd--initの出力)
上記のような最小限の環境で再現できるかどうか。
「私のマシンでは機能しない」だけではない実際の最小限の複製

コメントしたのでこれを受け取っています。
このメールに直接返信するか、GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542で表示するか、スレッドhttps://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3-をミュートします。

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

私のzshinitコードは次のように表示されます。

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"
fi
ソース"$fasd_cache"
設定されていないfasd_cache

fasd-init-zshは次のとおりです。

fasd➤catfasd-init-zshgit:master *
エイリアスa='fasd-a'
エイリアスs='fasd-si'
エイリアスsd='fasd-sid'
エイリアスsf='fasd-sif'
エイリアスd='fasd-d'
エイリアスf='fasd-f'

内蔵CDを実行する機能

fasd_cd(){
if [$#-le 1]; それから
fasd "$ @"
そうしないと
local _fasd_ret = "$(fasd -e'printf%s'" $ @ ")"
[-z "$ _fasd_ret"] && return
[-d "$ _fasd_ret"] && cd "$ _fasd_ret" || printf%s \ n "$ _fasd_ret"
fi
}
エイリアス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_COMMANDin
_fasd_prompt_func );;
*)PROMPT_COMMAND = "_ fasd_prompt_func; $ PROMPT_COMMAND" ;;
esac

bashコマンドモードの完了

_fasd_bash_cmd_complete(){
#「-e」の後にコマンドを完了する
ローカルcur=$ {COMP_WORDS [COMP_CWORD]}
[[$ {COMP_WORDS [COMP_CWORD-1]} == --e ]] && \COMPREPLY =($(compgen -A command $ cur))&& return#「-A」または「-D」の後に完了するデフォルトのreadlineを使用して完了するケース${COMP_WORDS[COMP_CWORD-1]} in-A | -D)COMPREPLY =($(compgen -o default $ cur))&& return ;;esac#拡張エイリアスを使用して完了結果を取得するローカル結果=$(fasd --complete "$(エイリアス-p $ COMP_WORDS \2 >> "/Users/Administrator/.config/fasd/fasd.log" | \)' / \ 1 / p")$ {COMP_LINE# }"|読み取り中-r行;
quote_readline "$ line" 2> / dev / null || \
printf%q "$ line" 2> / dev / null && \
printf \ n
終わり)
ローカルIFS=$'\ n'; COMPREPLY =($ RESULT)
}
_fasd_bash_hook_cmd_complete(){
$*のcmdの場合; する
complete -F _fasd_bash_cmd_complete $ cmd
終わり
}

bashコマンドモードの完了を有効にする

_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:master *
fasd[オプション][クエリ...]
[f | a | s | d |z][意見][クエリ...]
オプション:
-sスコア付きのパスを一覧表示
-lスコアなしのパスを一覧表示
-iインタラクティブモード
-e結果ファイルで実行するコマンドを設定します
-b使用するだけバックエンド
-Bバックエンドを追加する
-一致するファイルとディレクトリ
-d一致するディレクトリのみ
-f一致ファイルのみ
-rランクのみで一致
-最近のアクセスのみで一致
-R逆リスト順
-h簡単なヘルプメッセージを表示する
-[0-9]n番目のエントリを選択します

fasd [-A |-D][パス...]
-パスを追加
-Dパスを削除
〜➤git:master *

2017年12月28日、17:15、Xiao-Meng Wang[email protected]>は書いた:

こんにちはEuanの指示です。これが私が得た出力です。

最初の部分、私は何が起こっているのか分かりません:
これはzshにあります

〜➤set-x git:master *
eval "$(fasd --init auto)"
+xを設定

+ zsh:2> fasd --init auto
+ 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"] && 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-フック) "\ nfi \ 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] ; 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#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#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(($ + features [compdef ]))&& {\ n#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 >>" / Users /Administrator/.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 [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(($ + features [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 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> set + x

2番目の部分では、サンプルファイルを記述できないため、rootに変更しました。この最小限の環境では、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
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
合計40
drwxr-xr-x3ルートホイール96Dec2816:51。
drwx------3ルートホイール96Dec28 16:50..
-rwxr-xr-x1ルートホイール2019512月28日16:51fasd
bash-3.2#eval "$(./ bin / fasd --init auto)"
bash-3.2#fasd
bash-3.2#ls
.viminfo bin example.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/folders/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]>は次のように書いています:

最小限の複製を提供してください。

デバッグの目的で、fasdinitコードを次のように変更すると役立つ場合があります。

set -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"< export PATH = $ PATH:$ {testhome} / bin

履歴が空白でないことを確認してください。 fasdは履歴から処理するコマンドを取得します

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

そして、履歴が空の場合、エラーになります

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の例
注:fasdを機能させるには、bashスクリプトではなく、インタラクティブシェルで上記を実行する必要があります。 わずかな変更を加えるだけで、上記はzshでも機能するはずです。

上記は期待どおりに機能します(/tmp/tmp.zKxt6nvlxj/binおよび6 /tmp/tmp.zKxt6nvlxj/bin/example.txtを出力します)。

可能であれば、次のいずれかを提供してください。

何が壊れているかについての詳細(たとえば、シェルにset -xを適用した後のfasdexampleまたはfasd--initの出力)
上記のような最小限の環境で再現できるかどうか。
「私のマシンでは機能しない」だけではない実際の最小限の複製

コメントしたのでこれを受け取っています。
このメールに直接返信するか、GitHub https://github.com/clvv/fasd/issues/117#issuecomment-354156542で表示するか、スレッドhttps://github.com/notifications/unsubscribe-auth/ADKNgl5x1H3BscF4Pa3-をミュートします。

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がファイルやディレクトリを追跡しないのと同じ問題があります。 ディレクトリごとの履歴プラグインを無効にすると、fasdは正常に機能します。

bashzshの両方で、これをWindowsのサブシステム(ここで問題になる可能性があります)でも取得しました。
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にあるかどうかはわかりませんが、ファイルは常に空のようです。

私にとっては、ルートとして実行するように修正し、 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コマンドは必要なく、ルートとして実行するだけで十分でしたが、それを確認する時間がありませんでしたが、ルートだけでは機能しなかったことを覚えていると思います。 initコマンドのbash部分も抽出すると思います。

将来の読者のために、〜/ .fasdフォルダーの権限が600(rootのみのrw)であったため、同様の問題が発生しました。 このフォルダを削除して〜/ .zshrcを入手すると、問題が解決しました。

将来の読者のために、〜/ .fasdフォルダーの権限が600(rootのみのrw)であったため、同様の問題が発生しました。 このフォルダを削除して〜/ .zshrcを入手すると、問題が解決しました。

これは私にとっても問題でした

私にとっては100% https: //github.com/clvv/fasd/issues/117#issuecomment-357458043でした。

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

ghost picture ghost  ·  12コメント

josephholsten picture josephholsten  ·  15コメント

pearofducks picture pearofducks  ·  7コメント

sindresorhus picture sindresorhus  ·  11コメント

sbglasius picture sbglasius  ·  5コメント