Vim: записывать обратно мой файл при каждом нажатии клавиши
Я бы хотел, чтобы 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