Как вы можете автоматически генерировать имена файлов для автоматически сохраненных сеансов VIM? - PullRequest
1 голос
/ 15 февраля 2012

Я знаю, что добавление следующего к ~/.vimrc автоматически сохранит файл сеанса в текущем каталоге с именем 'Session.vim'.

autocmd BufWritePre :mksession!

Однако эти файлы будут засорять каталоги. Я предпочел бы сохранить файл сеанса в /tmp/[some filename which specifies the directory].

Есть ли способ сделать это?

1 Ответ

2 голосов
/ 15 февраля 2012

Вы можете использовать это выражение для генерации имени файла:

"/tmp/vimSessions/".substitute(expand("%:p:h"),"/","_","g")

Конечно, вы можете изменить первую строку, чтобы она содержала любой каталог, который вы хотите.

UPDATE:

Добавьте это в ваш vimrc файл:

function GetSessionName(useFileName)
    if a:useFileName
        let l:dir=expand("%:p:h")
    else
        let l:dir=getcwd()
    endif
    return fnameescape("/tmp/vimSessions/".substitute(l:dir,"/","_","g"))
endfunction
if !isdirectory("/tmp/vimSessions")
    call mkdir("/tmp/vimSessions")
endif
autocmd VimEnter * if filereadable(GetSessionName(0))|exe "source ".GetSessionName(0)|endif
autocmd BufWritePost * exe "mksession! ".GetSessionName(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...