자동 완성 목록으로 직접 이동하도록 zsh에 어떻게 지시합니까?

자동 완성 목록으로 직접 이동하도록 zsh에 어떻게 지시합니까?

zsh(oh-my-zsh는 기본으로 설치되어 있음)를 사용하고 누르면 Tab경로가 자동 완성되는데 매우 유용합니다.

후보가 하나만 있는 경우 자동 완성 시스템은 예상대로 현재 입력 중인 경로에 후보를 추가합니다.

그러나 후보자가 여러 명인 경우 PS 아래에 볼 수 있는 목록이 표시되며 여기에서 두 가지 옵션이 있습니다.

  1. 의도와 일치하는 항목이 목록에 표시되면 첫 글자를 입력하기 시작하고 Tab 키를 다시 눌러 전체 단어를 자동 완성합니다.

  2. 목록이 나타난 후 바로 Tab 키를 누른 다음 탐색 키 바인딩을 사용하여 목록에서 항목을 선택한 다음 Enter를 눌러 입력 중인 현재 경로에 선택한 항목을 추가할 수 있습니다.

Tab두 번째 경우에는 연속해서 두 번 누르면 Tab탐색 모드로 들어갑니다.

zsh탐색 목록으로 바로 이동하도록 하는 방법, 즉 선택 목록이 있는 경우 첫 번째 항목을 강조 표시하는 방법이 있나요 ?

답변1

파일 에 다음을 추가합니다 .zshrc.

zstyle ':completion:::::default' menu yes select
  • 명령문은 zstyleCSS 규칙과 다소 비슷합니다. 첫 번째 매개변수는 CSS 선택기(또는 네임스페이스)처럼 작동하고, 두 번째 매개변수는 CSS 속성처럼 작동하며, 다른 모든 매개변수는 값입니다. OMZ를 덮다zstyle ':completion:*:*:*:*:*' menu select, CSS와 마찬가지로 "더 무거운" 선택기를 사용하거나 동일한 선택기를 사용하지만 나중에 설정해야 합니다(후자는 기존 규칙을 완전히 대체합니다). 여기에 default. *선택기의 이러한 부분은 태그에 대해 항상 비어 있으므로 s를 생략할 수 있습니다 default.
  • select속성에 값 중 하나가 할당 되면 menu완성 시스템에 항상 메뉴 선택을 사용하도록 지시합니다.메뉴 사용이 끝나면.마지막 절은 OMZ 구현에 문제가 있음을 나타냅니다. OMZ의 규칙은 Zsh가 메뉴를 사용할 때 항상 선택을 사용하도록 지시하지만 실제로는 그렇게 합니다.아니요Zsh에게 항상 메뉴를 사용하도록 지시합니다. 항상 첫 번째 시도에서 실행 메뉴를 완료하려면 yes.

또는 Zsh의 완성 시스템을 구성하는 데 지쳤다면 다음을 시도해 보세요.Zsh 자동 완성 플러그인.

답변2

이를 달성하는 매우 간단한 방법이 있습니다. oh-my-zsh는 모르지만 이건 알아요질문.
이는 zstyle '*' single-ignored complete쉘 구성에 위치를 포함시키는 것만큼 간단합니다.뒤쪽에oh-my-zsh 구성이 로드되었습니다. 도움이 되었기를 바랍니다!

관련 정보