首页 > 解决方案 > 作为 bindkey 函数的一部分,在 zsh 中手动调用 compinit

问题描述

因此,我通过为基本上所有字符生成键创建行并将它们指向生成字符然后调用语法检查器的相应函数来设置我.zshrc的基本级别的语法检查。bindkey

它在其他方面工作得很好,但是我想将它应用到选项卡,以便它考虑到$BUFFER来自 的更改compinit,但是在我创建compinit的函数中手动调用trap_tab甚至不调用compinit.

任何帮助深表感谢!

以下是相关位。只需取消注释并推荐bindkeyandzle -N行。未注释时,即使compinit被调用,在点击选项卡时我也不会收到任何自动填充选项。

# Setup basic config stuff for history size, Vim keybindings, and the like
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt  extendedglob notify
unsetopt nomatch

# Auto-completion (double-tab tab)
zstyle :compinstall filename '/home/terminus/.zshrc'
autoload -Uz compinit
compinit
zstyle ':completion:*' menu select

function trap_tab
{
    compinit
}

#bindkey '  ' trap_tab
#zle -N trap_tab

export EDITOR='vim

标签: linuxzsh

解决方案


事实证明没有“正确”的解决方案,但是 GitHub 上至少有一个人想出了一个自我描述的“hacky”解决方案,它似乎确实可以满足我的要求,尽管需要一些额外的格式:github.com/Valodim/zsh -捕获完成


推荐阅读