这是我.vimrc
来自github的一部分。
这设置undodir
(并打开它),设置backupdir
,和directory
(用于.swp
文件)。请注意,如果目录不存在,它会创建目录。
" Save your backup files to a less annoying place than the current directory.
" If you have .vim-backup in the current directory, it'll use that.
" Otherwise it saves it to ~/.vim/backup or .
if isdirectory($HOME . '/.vim/backup') == 0
:silent !mkdir -p ~/.vim/backup >/dev/null 2>&1
endif
set backupdir-=.
set backupdir+=.
set backupdir-=~/
set backupdir^=~/.vim/backup/
set backupdir^=./.vim-backup/
set backup
" Save your swap files to a less annoying place than the current directory.
" If you have .vim-swap in the current directory, it'll use that.
" Otherwise it saves it to ~/.vim/swap, ~/tmp or .
if isdirectory($HOME . '/.vim/swap') == 0
:silent !mkdir -p ~/.vim/swap >/dev/null 2>&1
endif
set directory=./.vim-swap//
set directory+=~/.vim/swap//
set directory+=~/tmp//
set directory+=.
" viminfo stores the the state of your previous editing session
set viminfo+=n~/.vim/viminfo
if exists("+undofile")
" undofile - This allows you to use undos after exiting and restarting
" This, like swap and backup files, uses .vim-undo first, then ~/.vim/undo
" :help undo-persistence
" This is only present in 7.3+
if isdirectory($HOME . '/.vim/undo') == 0
:silent !mkdir -p ~/.vim/undo > /dev/null 2>&1
endif
set undodir=./.vim-undo//
set undodir+=~/.vim/undo//
set undofile
endif
希望它的评论足够好,以了解发生了什么。如果没有,请添加评论,我会修复它。
再见!
更新 [07/16/2012]
我收到了一封来自 Rob Kine 的电子邮件,询问了backupdir
我想为每个人回答的部分的以下问题:
- 看起来您正在删除当前目录,然后重新添加它。那有什么用?
- 运营商是做什么的
^=
?
- 在 Vim 中,使用检查的文件夹的优先顺序如何工作?(就像添加的最后一个文件夹是它检查的第一个文件夹?)
首先是描述不同的运营商。这些运算符对于非字符串列表选项有不同的含义,因此请注意!
-=
从字符串列表中删除值;
+=
将值附加到字符串列表;
^=
将值添加到字符串列表。
所以backupdir
应用了以下操作:
- 从列表中删除当前目录。
- 将当前目录附加到列表中(这确保它是最后检查的)。
- 从列表中删除主目录(我不喜欢保存在那里的东西)。
- 前置
~/.vim/backup/
.
- 前置
~/.vim-backup/
.
当 Vim 查找保存备份的位置时,它会从头到尾检查;所以它会检查~/.vim-backup/
,然后检查~/.vim/backup
,然后检查默认列表(除了.
和~/
被删除的),最后检查.
在 Vim 中,您可以使用(例如):help ^=
或:help backupdir
.