打开新的终端窗口时,要写入的最新VIM undofile显示为第一行,通常会出现某种形式的错误。 为什么显示,有没有办法阻止它?将.hushlogin
添加到我的主目录不起作用。
上下文:我的.dotfiles
在Git仓库中版本化,包含符号链接的.Vim
目录。我正在使用ZSH, iTerm2
和Git
的自制软件安装。
消息: /Users/joshuaberk/.dotfiles/vim/vim.symlink/undo/%Users%joshuaberk%.dotfiles%system%env.zsh:1: unmatched
我.Vimrc
的(可能相关)部分包括在下面(Undofile设置在“备份”中)。
" Search/Substitution/Completion
set ignorecase " removes case sensitivity by default
set smartcase " adding ≥1 uppercase = case sensitivity
set incsearch " do incremental searching
set gdefault " substitute all matches in line (not first)
set showmatch " quickly jump to matching bracket
set completeopt=menu,longest " disable preview window on completion
set wildmenu
set wildmode=list:longest,full
" Backup
set undofile
set undodir=~/.vim/undo
set backupdir=~/.vim/backups
set directory=~/.vim/swaps
set history=50
set autoread " updates VIM file if changed elsewhere
set hidden " hide buffers instead of closing them
set clipboard+=unnamed " system clipboard by default
答案 0 :(得分:3)
在评论中,您说您正在使用Zach Holman's dotfiles。在zsh
点文件内,there's a section that looks for all *.zsh
files and loads them。它正在寻找$ZSH
下的所有内容:
config_files=($ZSH/**/*.zsh)
默认情况下,这是整个dotfiles目录:
export ZSH=$HOME/.dotfiles
您的.vimrc
将您的虚拟文件设置为.vim
(这是该dotfiles目录中的符号链接)。
您可以通过删除所有这些撤消文件来修补此问题:
cd ~/.vim/undo
rm *.zsh
但你如何永久修复它?我找不到任何特别令人满意的方式。您无法自定义Vim使用的undofile名称,但您可以自定义其位置。也许你会告诉Vim在你的.dotfiles
目录之外保存它的地址:
set undodir=/tmp/vim/undo
if !isdirectory(expand(&undodir))
call mkdir(expand(&undodir), "p")
endif
你可以告诉Vim不保存.zsh
个文件的文件:
autocmd FileType zsh set noundofile
或者,您可以通过更改.zshrc
以将错误消息更改为/dev/null
来告诉zsh STFU有关配置文件中的错误:
for file in ${(M)config_files:#*/path.zsh}
do
source $file 2> /dev/null
done
这个似乎是最糟糕的选择;如果你在其他.zsh
个文件中引入拼写错误,它会让你的生活充满痛苦。我会选择1或2选项,具体取决于您希望在重新启动时保留撤消历史记录的数量。