- Ввод (выбрать общую команду оболочки)
- Ввод (Copy command to clipboard)
- Вверх (перемещение курсора к выходу)
- Ввод (выход из интерфейса)
ВопросКак мне использовать для этого ожидаемый (инструмент Linux)?
Я не могу получить правильную комбинацию ключевых слов, таких как тайм-аут, взаимодействие, отправка.
Я также подозреваю, что копирование gh вторым пилотом в буфер обмена нарушает дизайн интерактивности или есть побочные эффекты от предыдущий запуск ./copilot_auto.sh как составить список файлов, влияющих на текущий запуск.
Ручной рабочий процесс должен быть автоматизирован
Ввод1: gh, второй пилот, подскажите, как составить список файлов
Output1:
Welcome to GitHub Copilot in the CLI!
version 0.5.4-beta (2024-01-04)
I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency
? What kind of command can I help you with? [Use arrows to move, type to filter]
> generic shell command
gh command
git command
Ввод 2: нажмите Enter, чтобы выбрать общую команду оболочки
Вывод 2:< /strong> (2-й и 3-й варианты исчезнут из вывода 1 и появится предложение)
? What kind of command can I help you with?
> generic shell command
Suggestion:
ls
? Select an option [Use arrows to move, type to filter]
> Copy command to clipboard
Explain command
Revise command
Rate response
Exit
Ввод 3: нажмите Enter, чтобы выбрать «Копировать команду в буфер обмена».
Вывод 3< /strong>: команда, скопированная в буфер обмена, отображается в качестве подтверждения, затем параметры повторяются
? Select an option
> Copy command to clipboard
Command copied to clipboard!
? Select an option [Use arrows to move, type to filter]
> Copy command to clipboard
Explain command
Revise command
Rate response
Exit
Попытки автоматизации
В настоящее время я пытался использовать ожидание:
Тайм-аут используется для ожидания перехода к командной строке второго пилота экран опций. Я изменил код ожидания от второго пилота, у меня плохое понимание механики ожидания.
#!/usr/bin/expect
set input_command [join $argv " "]
spawn gh copilot suggest $input_command
interact {
timeout 1 { send "\r" }
}
# interact
# sleep 1
# send "\r"

Вопросы по механике ожидания
Пример 1. Почему ниже не отправляется Enter, как в примере с тайм-аутом?
interact
sleep 1
send "\r"
Пример 2. Почему тайм-аут ниже 1 не работает, как показано ниже, но тайм-аут 2 работает для непрерывной отправки ключа?
Почему клавиша Enter имеет более короткий требуется таймаут, чем клавиша «Вверх»?
Откуда это ['\x1b' '] ниже? (Здесь я подозреваю, что проблемы связаны с буфером обмена или побочным эффектом предыдущего запуска)
Ввод кода
#!/usr/bin/expect
set input_command [join $argv " "]
spawn gh copilot suggest $input_command
interact {
timeout 1 { send "\033\[A" }
}
Вывод
spawn gh copilot suggest how to list files
Welcome to GitHub Copilot in the CLI!
version 0.5.4-beta (2024-01-04)
I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency
? What kind of command can I help you with? 1R [Use arrows to move, type to filter]
✗ Error: could not prompt: unexpected escape sequence from terminal: ['\x1b' ']']
^[[7;1R^[]11;rgb:1f1f/2424/2828^[\^[[11;1R%
Пример 3. Если я попытаюсь совместить клавиши «Ввод» и «Вверх», чтобы приблизиться к последовательности из 4 клавиш, упомянутой в начале, он нажимает только клавишу «Вверх» и игнорирует ввод:
Почему взаимодействие происходит в бесконечном цикле и почему выполняется только последняя команда?
#!/usr/bin/expect
set input_command [join $argv " "]
spawn gh copilot suggest $input_command
interact {
timeout 1 { send "\r" }
timeout 2 { send "\033\[A" }
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-expect
Мобильная версия