Вот часть моего .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
Надеюсь, он достаточно хорошо прокомментирован, чтобы понять, что происходит.Если нет, добавьте комментарий, и я его исправлю.
Ciao!
Обновление [16/07/2012]
Я получил электронное письмо от Роба Кайна с просьбойвопросы о разделе backupdir
, на которые я хотел бы ответить для всех:
- Похоже, вы удаляете текущий каталог, а затем повторно добавляете его.что это делает?
- Что делает оператор
^=
? - Как работает порядок приоритета при использовании проверенных папок в Vim?(Например, добавлена ли последняя папка первой, которую она проверяет?)
Прежде всего, необходимо описать различные операторы.Эти операторы имеют разные значения для параметров не-списка строк, поэтому будьте осторожны!
-=
удаляет значение из списка строк; +=
добавляет значение ксписок строк; ^=
добавляет значение к списку строк.
Таким образом, backupdir
применяет следующие операции:
- Удалить текущий каталог из списка.
- Добавить текущий каталог в список (это гарантирует, что он проверен последним).
- Удалить домашний каталог из списка (я некак что-то там сохраняется).
- Prepend
~/.vim/backup/
. - Prepend
~/.vim-backup/
.
Когда Vim ищет, где сохранить резервные копии, он проверяетс первого до последнего;поэтому он будет проверять ~/.vim-backup/
, затем проверять ~/.vim/backup
, затем проверять список по умолчанию (за исключением .
и ~/
, которые были удалены) и, наконец, проверять .
Youможно получить помощь по всем этим вопросам в Vim, используя (например) :help ^=
или :help backupdir
.