Я бы хотел, чтобы vim автоматически записывал мой файл как можно чаще. Идеалом было бы каждое нажатие клавиши.
Мне нужно регулярно сэкономить, чтобы увидеть, как будет работать мой фоновый сбор. Это make файл для латексного документа, и я бы хотел, чтобы предварительный просмотр показывал мне почти обновленный документ, когда я закончил набирать текст.
Возможный ответ (ответы ниже помогли сделать это)
" Choose your own statusline here
let g:pbstatusline="%F\ %y\ %l:%c\ %m"
set statusline=%F\ %y\ %l:%c\ %m
autocmd FileType tex setlocal autowriteall
" Save the file every 5 keypresses
autocmd FileType tex setlocal statusline=%!pb:WriteFileViaStatusLine()
" Save the file every time this event fires.
autocmd FileType tex :autocmd InsertLeave,CursorHold,CursorHoldI * call pb:WriteFileViaStatusLine("always")
" 1 optional param: "always" is only allowed value.
let s:writefilecounter = 0
function! pb:WriteFileViaStatusLine(...)
if s:writefilecounter > 5 || (a:0 > 0 && a:1 == "always")
if &buftype == ""
write
endif
let s:writefilecounter = 0
else
let s:writefilecounter = s:writefilecounter + 1
endif
return g:pbstatusline
endfunction