Привет, я пытаюсь заставить zsh запустить команду git и использовать вывод для генерации возможностей автозаполнения.
Команда, которую я пытаюсь запустить:
git log -n 2 --pretty=format:"'%h %an'"
И вот код, который я использую:
local lines words
lines=(${(f)$(git log -n 2 --pretty=format:"'%h %an'")})
words=${(f)$(_call_program foobar git log -n 2 --pretty=format:"%h")}
echo "Length of lines is " ${#lines[@]} " value is " ${lines}
echo "Length of words is " ${#words[@]} " value is " ${words}
compadd -d lines -a -- words
Это не работает вообще ... он думает, что words
- это отдельный элемент, и строки вообще не печатаются должным образом.
Однако, когда я пытаюсь настроить массив строк вручную, все это работает.
local lines words
lines=('one two' 'three')
words=('one two' 'three')
echo "Length of lines is " ${#lines[@]} " value is " ${lines}
echo "Length of words is " ${#words[@]} " value is " ${words}
compadd -d lines -a -- words