Bash( )에서 \bash --noprofile --norc
캐럿/반환/커서( |
)가 단어( ) 중간에 있는 경우 탭을 두 번 클릭하면 캐럿( ) 앞의 단어에 대한 제안 사항이 l|!@#asdf
표시됩니다 (이 예에서는) . 그러나 zsh()에서는 전혀 작동하지 않습니다. 캐럿() 앞의 단어를 자동 완성하려면 캐럿 뒤에 공백이 있어야 합니다 .ls
l
\zsh -f
l| !@#asdf
이것은 bash가 더 잘하는 몇 안되는 것 중 하나입니다. zsh에 이것을 활성화하는 설정이 있는지 누가 말해 줄 수 있나요?
답변1
이와 관련하여 bash의 완료 동작에 더 가까운 것은 expand-or-complete-prefix
기본값 대신 위젯을 사용하는 것입니다 expand-or-complete
(또는 완성기가 활성화된 complete-word
경우 )._expand
bindkey '^I' expand-or-complete-prefix
_prefix
그렇지 않고 현재 단어를 완성할 수 없지만 커서 왼쪽 부분은 완성할 수 있는 경우 기본 완성기를 구성할 수 있습니다.
최소한 다음을 추가하세요.
zstyle ':completion:*' completer _complete _prefix
set -o completeinword
앞으로
autoload -Uz compinit
compinit
당신의 ~/.zshrc
.
가장 쉬운 방법은 compinstall
원하는 대로 마감을 조정하는 것입니다. 가지다오직zsh가 수행하는 모든 강력한 기능의 혜택을 누리지 못하는 것은 낭비입니다. 달리기:
autoload compinstall
compinstall
실행은 가 없는 첫 번째 호출 compinstall
에서 옵션으로 사용할 수도 있습니다 .zsh-newuser-install
zsh
~/.zshrc
_prefix
거기에서 완성기를 활성화 해야 합니다 . set -o completeinword
아직 완료되지 않았으므로 수동으로 추가 해야 합니다 compinstall
. 실제로 하나가 있습니다:
# TODO: _prefix completer should make sure completeinword is set.
이 함수의 라인 compinstall
.
바라보다info zsh _prefix
더 알아보기.