我目前正在尝试通过关注此XDG BASE DIRECTORIES 网站来清理我的主目录。
为此,我已存储在我的~/.zshenv
:
# ---- Default editors ---- #
export EDITOR="nvim"
export VISUAL="nvim"
# ---- XDG BASE DIRECTORY ---- #
# https://wiki.archlinux.org/title/XDG_Base_Directory
export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:="$HOME/.config"}
export XDG_CACHE_HOME=${XDG_CACHE_HOME:="$HOME/.cache"}
export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}
export XDG_STATE_HOME=${XDG_STATE_HOME:="$HOME/.local/state"}
# ---- ZSH ---- #
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
export HISTFILE="$XDG_STATE_HOME/zsh/history"
export SHELL_SESSION_DIR="$XDG_STATE_HOME/zsh/sessions"
export SHELL_SESSION_FILE="$SHELL_SESSION_DIR/$TERM_SESSION_ID"
Run Code Online (Sandbox Code Playgroud)
问题是,当 i 时echo $HISTFILE
,它给出~/.config/zsh/.zsh_history
,这不是我想要的,并且不对应于$XDG_STATE_HOME/zsh/history
。
我尝试echo $HISTFILE
在文件末尾添加~/.zshenv
,它给出了~/.local/state/zsh/history
,这正是我想要的。但是,如果我echo $HISTFILE
在终端中运行,它仍然给出~/.config/zsh/.zsh_history
. 所以看起来好像没有使用$HISTFILE
其中的集合,我不明白为什么以及如何修复它......~/.zshenv
我觉得可行的解决方案是更改/etc/zprofile
文件,但我不喜欢这样做,因为我认为每当我更新计算机软件时,所有这些文件都会被重置(我认为......)。如果情况并非如此,我将在那里修改它们以覆盖$HISTFILE …