Zsh가 설치를 완료합니까(/run/media/DISK-LABEL)?

Zsh가 설치를 완료합니까(/run/media/DISK-LABEL)?

zsh디스크 레이블을 마운트 지점으로 확장하는 기능을 찾고 있습니다 .

예: 내 디스크 DISK-LABEL1에 레이블이 설치되어 있습니다 /run/media/god/DISK-LABEL1.

cat //DISK-LA<Tab>Like: 로 입력을 확장할 수 있는 플러그인이 있습니까 cat /run/media/god/DISK-LABEL1?

"//"이러한 유형의 자동 완성을 트리거하는 예로 선택되었습니다...

답변1

정말로 완료를 트리거하려면 //수정해야 할 것 같습니다._path_files. 나는 그것을 권장하지 않습니다.

아니면 정의하여file-patterns스타일인데 방법을 모르겠어요.

god에 대한 디렉토리를 지정 하면 해당 디렉토리를 로 참조 /run/media/god할 수 있습니다 . ~god이는 완성 기능 사용 여부에 관계없이 작동합니다. 팁에 표시된 것처럼 부작용이 /run/media/god있습니다 .~god

hash -d god=/run/media/god

답변2

한 가지 방법은 기다리고 있는 작업을 수행하는 함수를 정의하는 것입니다.

mountbylabel () {
  mount /run/media/god/$1
}

그런 .zshrc다음 완성 함수를 만듭니다.

#compdef mountbylabel

compadd "${(@f)$(ls /run/media/god)}"

_mountbylabelfpath라는 이름의 파일에 넣으세요. 나는 그 안에 모든 완성 기능 파일을 저장 ~/.zsh/completions/하고

fpath=(~/.zsh/completions $fpath)

.zshrc.

관련 정보