Tabを押して完了すると、「該当ウィジェットなし」のため、キーバインディング、機能/オプション、または完了が明確ではありません。

Tabを押して完了すると、「該当ウィジェットなし」のため、キーバインディング、機能/オプション、または完了が明確ではありません。

私がインストールしたものzplug

zplug "junegunn/fzf-bin", from:gh-r, as:command, rename-to:fzf, use:"*${(L)$(uname -s)}*amd64*"
zplug "junegunn/fzf", use:"shell/*.zsh", defer:2
zplug "peco/peco", as:command,     from:gh-r, use:"*${(L)$(uname -s)}*amd64*"

zplug "lincheney/fzf-tab-completion", use:"zsh/fzf-zsh-completion.sh"

私はすでにzsl-autosuggestionsそれをインストールしていることに注意してくださいzsh-completions

オプション/機能 - 次のいずれかの結果が表示されるかどうかを説明しますNo such widget

autoload -Uz async && async             
autoload -Uz add-zsh-hook               
autoload -Uz compinit && compinit       
autoload -Uz url-quote-magic            
autoload -Uz vcs_info                   
setopt autocd                           
setopt append_history                   
setopt auto_list                        
setopt auto_menu                        
setopt auto_pushd                       
setopt extended_history                 
setopt hist_expire_dups_first           
setopt hist_find_no_dups                
setopt hist_ignore_dups                 
setopt hist_ignore_all_dups             
setopt hist_reduce_blanks               
setopt hist_save_no_dups                
setopt hist_ignore_space                
setopt inc_append_history               
setopt interactive_comments                               
setopt magic_equal_subst                                      
setopt print_eight_bit                  
setopt print_exit_value                 
setopt prompt_subst                     
setopt pushd_ignore_dups                
setopt share_history                    
setopt transient_rprompt

watch=(notme) 
LOGCHECK=60
REPORTTIME=5

キーバインディング -bindkey '^I' fzf_completionsですNo such widget。ただし、コメントを付けてをタップするとTabまだ表示されますNo such widget `1'

bindkey  "^[[H"   beginning-of-line
bindkey  "^[[F"   end-of-line
bindkey  '^I'     fzf_completions

KEYTIMEOUT=1
WORDCHARS='*?_-[]~=./&;!#$%^(){}<>'

調べる:

if zplug check "junegunn/fzf-bin"; then
    export FZF_DEFAULT_OPTS="--height 40% --reverse --border --inline-info --color=dark,bg+:235,hl+:10,pointer:5"
fi

if zplug check "zsh-users/zsh-autosuggestions"; then
    ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ACB31D,bg=#0087AF,bold,underline"
fi

if zplug check "junegunn/fzf-bin"; then
    alias base="base64"
    alias decode="decode64"
    alias encode="encode64"
fi

完了 - 解決のために各問題について説明しましたが、問題は明確ではありません。

zstyle ':completion::complete:*' gain-privileges 1
zstyle ':completion:*:descriptions' format '%B%d%b'
zstyle ':completion:*:descriptions' format '%U%F{yellow}%d%f%u'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:warnings' format 'No matches for: %d'
zstyle ':completion:*' completer _expand _complete _ignored _approximate
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=2
zstyle ':completion:*' rehash true
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle ':completion:*' verbose yes
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"

原因の原因は不明です。何が原因なのかわかりません。

答え1

No such widgetこれは、実際には存在しないウィジェットにバインドされた宣言がTabあることを意味します。bindkeyTabまたはバインドするウィジェットがTab存在しない他のウィジェットを呼び出そうとします。


キーにTab何が接続されているかを確認するには、次の手順に従います。

bindkey '^I'

これは次のように出力されます

"^I" fzf-completion

このウィジェットが存在することを確認するには:

  1. ~/.zshrcあなたのファイルから障害を負う zsh-autosuggestions
  2. 端末を再起動してください。
  3. それから
    zle -lL fzf-completion
    

ウィジェットがあればいいえ存在する場合、上記のコマンドは何も出力しません。この場合、問題を発見しました。その後、Tabキーをウィジェットにバインドして問題を解決できます。する存在する。


上記のコマンドが「sh zle -N fzf-completion」または「sh zle -Ccomplete-word .complete-word _main_complete」などの結果を出力する場合は、ウィジェットが存在します。この場合、出力の単語の最後はウィジェットを実装する関数の名前を示します。

その後、次のようにして関数のソースを確認できます。

type fzf-completion

これは次のように出力されます

fzf-completion is a shell function from /path/to/fzf/completion/completion

その後、ファイルを開いてコードを調べることができます。あるいは、必要に応じて、次のように関数のトレースをオンにすることもできます。

functions -t fzf-completion

どちらの場合も、同様の声明を見つけてくださいzle widget-name。その後、次のように確認できます。それウィジェットは上記の方法で存在します。


これにより、問題の正確な場所を見つけて解決できます。

関連情報