autocomplete - 如何从 zsh 自动完成功能中删除额外的空间?

标签 autocomplete zsh

我用 compctl -K _my_cpl ls将我的自动完成功能挂接到 ls命令。该函数从索引文件中返回名称列表。

但是,zsh 总是在每次完成后添加一个空格。如果我想自动完成多级目录,我每次都必须删除一个空格。 有没有办法像 -o nospace 那样删除额外的空间? bash完整命令中的选项?

我测试了zstyle ':completion:*' add-space false命令,它不起作用。谢谢你。

_my_cpl() {
local cur last opts

# current word in command line.
read -cA cur
last=$cur[-1]

# grep all directories and file names under current directory level.
opts=`egrep "${last}[^/]*[$|/]*" ~/index -o |uniq`

reply=($=opts)
}
compctl -K _my_cpl ls

最佳答案

compctl -K _my_cpl -S '' ls

这回答了您提出的问题,但对于您想要做的事情可能不够灵活。特别是,这种方法不允许您为目录和常规文件指定不同的后缀。如果你想这样,我认为你需要切换到"new"完成系统并单独调用 compadd与不同-S论据。

关于autocomplete - 如何从 zsh 自动完成功能中删除额外的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372866/

相关文章:

javascript - jquery 自动完成使用多个来源(本地 json api 和 jsonp)

javascript - HTML 禁用错误的自动完成

linux - 在 ZSH 的 PATH 变量中添加新条目

visual-studio-code - Windows 10 中 zshrc 的正确路径

zsh - 这是什么意思 >> ~/.zshrc?

java - eclipse 可以在赋值运算符的左侧自动完成吗?

search - 带下划线/JS的自动完成功能

macos - 当我打开 zsh 时,一些奇怪的字符显示为我的提示符(OSX 上的 oh-my-zsh)

css - PhpStorm CSS 代码完成不适用于 Twig 扩展模板

命令行中的 bash/zsh 输出行