Я пытаюсь заставить Vim выполнить команду 'CommandTFlush' каждый раз, когда новый файл является записью. Для тех, которые не используют плагин Команды-T, команда 'CommandTFlush' используется для восстановления индекса файлов в текущем каталоге.
То, что я хочу сделать, выполняется команда после того, как файл записан в диск, так, чтобы CommandTFlush нашел файл и добавил его к, он - индекс.
Я попытался писать функцию сам, но или она не стреляет, или она стреляет слишком скоро (прежде чем файл будет записан, и самое главное должно добавить файл к индексу):
au! BufWritePre * ks| call NewFilesUpdatesCommandT()
function! NewFilesUpdatesCommandT()
let filename=@%
if !filereadable(filename)
CommandTFlush
endif
endfunction
Я подозреваю, что это могло быть решено путем установки некоторого булева var (isTheFileNew) в BufWritePre и затем выполнить команду CommandTFlush в BufWritePost, если бы файл был просто создан, но я не могу выяснить синтаксис. Другое решение могло устанавливать/сбрасывать обратный вызов BufWritePost из обратного вызова BufWritePre, если это возможно...
Кто-либо мог помочь мне здесь?;)
augroup NFUCT
autocmd!
autocmd BufWritePre * call NFUCTset()
augroup END
function NFUCTset()
if !filereadable(expand('%'))
augroup NFUCT
autocmd BufWritePost * call NFUCT()
augroup END
endif
endfunction
function NFUCT()
augroup NFUCT
autocmd!
autocmd BufWritePre * call NFUCTset()
augroup END
CommandTFlush
endfunction
Это реализация вашего второго предложения.