.zshrc
입력에 저장하고 화면과 통합 할 수 있는 몇 가지 쉘 기능이 정의되어 있습니다. 예를 들면 다음과 같습니다.
function s()
{
screen -t "$1" ssh "$@"
}
그러나 이러한 셸 함수를 사용하면 zsh의 기본 제공 명령 완료 기능을 활용할 수 없습니다. SSH의 경우 known_hosts 및 ssh_config를 기반으로 호스트 이름을 자동으로 완성합니다. 래퍼를 만든 명령의 기존 완료 메커니즘에 연결하는 기본 방법은 무엇입니까?
편집하다:
아래의 답변에 대해 Gilles에게 감사드립니다. compdef를 사용하는 것이이 방법으로 보이지만 흥미롭게도 균일하게 작동하지 않는 것 같습니다. 이 경우 다음과 같은 설정이 있습니다.
function s()
{
screen -t "$1" ssh "$@"
}
function m()
{
screen -t "man.$1" man "$1"
}
compdef $_comps[man] m
compdef $_comps[ssh] s
래퍼 함수 'm'의 완성은 예상대로 작동하지만 함수 's'의 완성은 그렇지 않습니다. 호스트 이름을 완성하려고 시도하는 대신 'tab'을 눌렀을 때 파일 목록을 제공하여 기본 자동 완성으로 돌아갑니다. SSH 완료가 처리되는 방식에 이상한 점이 있습니까? 즉, 추가 작업이 필요합니까?