我最近从 bash 切换到zsh
shell。与此相反bash
,当我重新登录时,历史记录为空。当我按向上/向下时,没有任何显示。如何设置zsh
保存会话之间的历史记录?
答案1
Zsh 具有开箱即用的简约配置,其中不包含诸如保存会话之间的命令历史记录之类的好功能。此功能和其他功能可用,但默认情况下处于关闭状态。
根据操作系统的设置方式,它可能会zsh-newuser-install
首次向您显示配置屏幕 ( )。如果没有,或者要再次运行它,请参阅运行 Zsh 首次使用向导
在首次配置屏幕中,选择(1) Configure settings for history
,根据需要更改设置,然后选择(0) Remember edits and return to main menu
。当您执行此操作时,请使用(2) Configure the new completion system.
和(1) Turn on completion with the default options.
或激活命令敏感完成(2) Run the configuration tool (compinstall)
。还激活一些基本功能(4) Pick some of the more common shell options
:我建议打开autocd
,extendedglob
。最后选择(0) Exit, saving the new settings.
.
如果您更喜欢手动进行配置,则需要同时设置HISTFILE
和SAVEHIST
你可能会想要增加HISTSIZE
也。这些设置将保存.zshrc
在您的主目录中的文件中。
# Save history between sessions
HISTSIZE=10000
SAVEHIST=$HISTSIZE
HISTFILE=~/.zsh_history
# Turn on some useful options
setopt auto_cd
setopt extended_glob
# Activate context-sensitive completion
autoload -Uz compinit
compinit
以下是首次配置屏幕未涵盖的一些更基本的设置。
- 防止意外覆盖
mv
带有输出重定向或带有或 的文件cp
。 - 使批量重命名功能
zmv
可用的。 - 默认迅速的默认情况下是平淡且无信息的。为了帮助您开始,这里有一个提示,显示当前目录的最后 3 个组件以及上一个命令的状态(如果失败)。
# Prevent against accidentally overwriting files
setopt no_clobber
alias cp='cp -i'
alias mv='mv -i'
# Rename, copy or link files based on patterns.
autoload -U zmv
alias zcp='noglob zmv -C'
alias zln='noglob zmv -L'
alias zmv='noglob zmv'
# Prompt
PS1='%B%(?,,[%?] )%3~%# %b'