我有这个函数,只有在 vim 中修改了我的 .zshrc 时,它才会获取它,但我最近重新安装了 Windows 和 WSL,然后使用旧的 .zshrc 和 .vimrc 来恢复我的设置,但这个特定函数无法像以前那样工作前:
function zshrc () {
local original_ctime="$(zstat +ctime -- ~/.zshrc)" 2>/dev/null
vim ~/.zshrc || return
[[ -n $original_ctime ]] || return
if [[ $original_ctime != "$(zstat +ctime -- ~/.zshrc 2>/dev/null)" ]]
then
source ~/.zshrc
fi
}
该函数应该检查文件创建时间是否已更改。看这里。
在我重新安装 WSL 之前,我可以zshrc
使用(不进行任何更改)运行并保存 vim 缓冲区:wq
,然后 vim 不会覆盖原始文件,因此它不会source ~/.zshrc
,如果我进行更改,则只有 vim 会覆盖原始文件,因此函数将source ~/.zshrc
.我假设 vim 中的一些默认设置可能已更改,那么我怎样才能恢复该特定行为呢?
我知道我可以退出 vim 来:q!
得到这个,但是当我快速编辑不同的文件时,我会:wq
不假思索地使用它,然后它再次获取 .zshrc 而不进行任何更改。
答案1
Z
Z
养成执行(即Shift+ Z、Shift+ )的习惯Z。如果缓冲区已被修改,则这样做:wq
。如果缓冲区没有被修改,它将直接退出而不保存。