Я использую следующую функцию, чтобы сказать что функция или псевдоним или сценарий обертки (например. s
) должен быть завершен как существующая команда (например. ssh
):
compdefas () {
local a
a="$1"
shift
compdef "$_comps[$a]" "${(@)*}=$a"
}
compdefas xterm cxterm uxterm xterm-color
Некоторые команды завершения относятся к семейству функций и читают первое слово командной строки для определения который конкретная команда завершиться. Например, команды ssh
, scp
, sftp
и еще многие все завершаются функцией _ssh
. В этом случае необходимо сказать функцию завершения, которые “обслуживают” функцию, похож (по умолчанию, сервис является исполняемым именем, здесь имя функции).
_s () {
local service=ssh
_ssh "$@"
}
compdef _s s
Я нашел ответ здесь: http://www.pantz.org/software/ssh/badwindowerrorwithqemu.html.
Используйте-Y опцию с ssh вместо-X, для включения передачи X11, которой доверяют.