setopt는 .zshrc에서 작동하지 않습니다. 누구든지 이유를 말해 줄 수 있습니까?

setopt는 .zshrc에서 작동하지 않습니다. 누구든지 이유를 말해 줄 수 있습니까?

이것이 내가 가지고 있는 것입니다 ~/.zshrc(실제로는 내 파일에서 가져온 것입니다 ~/.zshrc. 아래 참조).

#CHANGING DIRECTORIES
setopt CD_SILENT
setopt CDABLE_VARS
setopt AUTO_CD

#COMPLETION
setopt recexact autolist listambiguous menucomplete hashlistall globcomplete completeinword completealiases autoparamslash  

#EXPANSION AND GLOBBING
setopt nomatch badpattern globstarshort rcexpandparam extendedglob nocaseglob numericglobsort markdirs

#HISTORY
SAVEHIST=8192
HISTSIZE=$(( 1.2 * SAVEHIST ))
HISTFILE="$ZDOTDIR/.zhistory" 
setopt nohistbeep extendedhistory histverify sharehistory histallowclobber histreduceblanks histfcntllock histignoredups histignorealldups histsavenodups

#SCRIPTS AND FUCNTIONS
setopt multios aliasfuncdef localoptions localloops localtraps cbases cprecedences

#MISC
setopt transientrprompt nocheckjobs ignoreeof nobeep nolistbeep nonotify noclobber interactivecomments

설정하는 것 외에는 아무것도 하지 않습니다 HISTFILE.

% setopt
interactive
monitor
shinstdin
zle
% ls .zhistory
.zhistory

그러나 setopt autocd터미널 내부에서 사용하면 해당 세션에서 작동합니다. 예는 다음과 같습니다.

% setopt
interactive
monitor
shinstdin
zle
% setopt autocd
% setopt
autocd
interactive
monitor
shinstdin
zle

echo I AM BEING LOADED, EVEN THEN I FAIL TO LOAD ANY SETOPT COMMANDS여기에 추가하면 .zshrc시작 시 다음이 표시됩니다.

I AM BEING LOADED, EVEN THEN I FAIL TO LOAD ANY SETOPT COMMANDS
% setopt
interactive
monitor
shinstdin
zle

이는 GNU/Linux amd64의 zsh 5.9의 경우입니다.

이 파일의 실제 출처는 다음과 같습니다.

# FUNCTOIN TO SOURCE READABLE FILES
function src {
[[ -r "$1" ]] && source "$1"
}

if [[ -d ~/.config/.zshell/zload.d/ ]]; then
for FileToLoad in ~/.config/.zshell/zload.d/*.zsh(n); do
src "$FileToLoad"
done
unset FileToLoad
fi

unset -f src

답변1

죄송합니다. 사용법을 잘못 이해했습니다 setopt localoptions. 배우고 있는 중이라 오류가 발생할 수 있는 점 양해 부탁드립니다. 그래서 이 문제가 발생했습니다. 그건 멍청한 실수였어 ㅋㅋㅋ

아무것도 작동하지 않고 나를 화나게합니다. 그래서 기본을 다시 살펴보기로 결정했습니다.https://zsh.sourceforge.io/Doc/Release/Options.html

내가 직접 작성한 솔루션을 디버깅합니다. setopt xtrace줄을 읽고 있는지 확인하기 위해 엽니다 . 출력은 다음과 같습니다. 여기에 이미지 설명을 입력하세요.

여기에서 셸에 문제가 없으며 모든 줄을 읽고 있음을 알 수 있습니다. 거기에서 시행착오를 통해 해결책을 찾을 수 있습니다.

localoptions리뷰가 내 모든 문제를 해결할 수 있다는 것을 깨달았습니다 . 다시 읽어보니 제가 이해한 것이 틀렸다는 것을 알게 되었습니다. 이 옵션의 기능을 보려면 위의 공유 링크를 방문하세요.

여기서는 setopt localoptions함수 내부에서 수행되는 것처럼 src모든 옵션 설정이 해당 함수에 대해 로컬입니다.

현재 작동하는 모습을 보여주는 사진은 다음과 같습니다. 여기에 이미지 설명을 입력하세요. PS-> 실제로는 제가 직접 이해하지 못했습니다. zsh 포럼의 누군가가 제가 거기에 도달하도록 도와주었습니다.

내 zsh 버전: zsh 버전

관련 정보