zsh автозаполнение результатов от функции

377
Alec

Я искал и искал и не смог найти четкий способ сделать это:

Немного придуманный пример, чтобы скрыть детали : скажем, я хочу автозаполнять имена сеансов tmux командой, которая их откроет.

Так, скажем, tmux-open $NAMEоткрывает указанный сеанс tmux и tmux-lsперечисляет все возможные имена сеансов, разделенные символами новой строки.

Как я могу настроить Zsh так, чтобы tmux-open <TAB>автозаполнение со списком возможных сессий от tmux-ls.

4

1 ответ на вопрос

4
Alec

Figured it out. It was pretty simple and so a lot of the guides seemed to skip over something like this and go onto more complex stuff. In ~/.zshrc:

function _tmux_completions() { local -a sessions sessions=($(tmux-ls)) compadd -a sessions } compdef _tmux_completions tmux-open