テスト.zsh:
#!/usr/bin/env zsh
for f in ${fpath}; do
echo ${f}
done
出力:
/usr/local/share/zsh/site-functions
/usr/share/zsh/functions/Calendar
/usr/share/zsh/functions/Completion
/usr/share/zsh/functions/Completion/AIX
/usr/share/zsh/functions/Completion/BSD
/usr/share/zsh/functions/Completion/Base
/usr/share/zsh/functions/Completion/Cygwin
/usr/share/zsh/functions/Completion/Darwin
/usr/share/zsh/functions/Completion/Debian
/usr/share/zsh/functions/Completion/Linux
/usr/share/zsh/functions/Completion/Mandriva
/usr/share/zsh/functions/Completion/Redhat
/usr/share/zsh/functions/Completion/Solaris
/usr/share/zsh/functions/Completion/Unix
/usr/share/zsh/functions/Completion/X
/usr/share/zsh/functions/Completion/Zsh
/usr/share/zsh/functions/Exceptions
/usr/share/zsh/functions/MIME
/usr/share/zsh/functions/Misc
/usr/share/zsh/functions/Newuser
/usr/share/zsh/functions/Prompts
/usr/share/zsh/functions/TCP
/usr/share/zsh/functions/VCS_Info
/usr/share/zsh/functions/VCS_Info/Backends
/usr/share/zsh/functions/Zftp
/usr/share/zsh/functions/Zle
コマンドライン出力にはいくつかの追加項目がありますが、次のようになります。
╭─ting@core ~/code/autojump ‹install-zsh-local*›
╰─➤ echo $fpath
/home/ting/code/oh-my-zsh/plugins/git
/home/ting/code/oh-my-zsh/functions
/home/ting/code/oh-my-zsh/completions
/usr/local/share/zsh/site-functions
/usr/share/zsh/functions/Calendar
/usr/share/zsh/functions/Completion
/usr/share/zsh/functions/Completion/AIX
/usr/share/zsh/functions/Completion/BSD
/usr/share/zsh/functions/Completion/Base
/usr/share/zsh/functions/Completion/Cygwin
/usr/share/zsh/functions/Completion/Darwin
/usr/share/zsh/functions/Completion/Debian
/usr/share/zsh/functions/Completion/Linux
/usr/share/zsh/functions/Completion/Mandriva
/usr/share/zsh/functions/Completion/Redhat
/usr/share/zsh/functions/Completion/Solaris
/usr/share/zsh/functions/Completion/Unix
/usr/share/zsh/functions/Completion/X
/usr/share/zsh/functions/Completion/Zsh
/usr/share/zsh/functions/Exceptions
/usr/share/zsh/functions/MIME
/usr/share/zsh/functions/Misc
/usr/share/zsh/functions/Newuser
/usr/share/zsh/functions/Prompts
/usr/share/zsh/functions/TCP
/usr/share/zsh/functions/VCS_Info
/usr/share/zsh/functions/VCS_Info/Backends
/usr/share/zsh/functions/Zftp
/usr/share/zsh/functions/Zle
スクリプトがシステムの代わりにユーザーのfpathにアクセスできるようにするにはどうすればよいですか?
答え1
fpath
ユーザーはKey-Value構成ファイルの単純な割り当てでは設定されず、複雑なスクリプトを介して設定される可能性があるため、実際にはできません。たとえば、myはfpath
zshのバージョンとシステムに存在するディレクトリによって異なります。ユーザーの取得は可能ですが、~/.zshrc
これはさまざまな操作を実行できます(特にzshが端末で実行されていない場合は機能しない可能性があり、内容を印刷する可能性があります。そうしないと、シェルが対話型であると仮定します)。
zsh source~/.zshenv
なので、ユーザーはfpath
そこから設定することをお勧めします。