1

这是我想要的功能。

每次我想在我的项目目录中搜索一些东西。我使用 ack 为我搜索一些关键字。

ack hey

有时我想搜索多个单词。所以我输入

ack "hey there"

我希望双引号可以在我输入 ack 并按 tab 后自动补全,并且光标可以在双引号之间成为焦点。

有人知道怎么做吗?

我曾尝试为此制作一个 oh-my-zsh 插件。但似乎我需要一些指南来寻求帮助。

function _ack_commands() {
    echo -n '"'
}

compdef _ack_commands ack
4

1 回答 1

1

你不能只用

zsh -f
ack() { command ack "$*" }
ack hey there

或类似的东西?

[...]

实际上,我很好奇是否可以按照您的描述写一些东西。我不得不估计我的 zsh-fu 还不够。

要弄乱光标位置,您通常会更改该CURSOR值(请参阅 参考资料man zshzle)。在 zle 小部件中,您可以使用zmodload -i zsh/parameter(参见参考资料man zshmodules)访问特殊值。但诀窍是 - 如zshzle手册页所述):

在 ZLE 处于活动状态时调用的内部完成小部件和陷阱,这些参数是只读的。

所以我们不能CURSOR从完成小部件内部更改 的值。

于 2013-07-10T19:48:10.680 回答