Я пытаюсь заставить Vim запустить команду CommandTFlush всякий раз, когда новый файл является писателем. Для тех, кто не использует плагин Command-T, команда «CommandTFlush» используется для перестройки индекса файлов в текущем каталоге.Запустите команду CommandTFlush при записи нового файла
Что я хочу сделать, это запустить команду после записи файла на диск, чтобы CommandTFlush нашел файл и добавил его в свой индекс.
Я пытался писать функцию, сам, но либо он не срабатывает или срабатывает слишком рано (до того, как файл записывается, и все дело в том, чтобы добавить файл индекса):
au! BufWritePre * ks| call NewFilesUpdatesCommandT()
function! NewFilesUpdatesCommandT()
let [email protected]%
if !filereadable(filename)
CommandTFlush
endif
endfunction
Я подозреваю, что это можно решить, установив в BufWritePre некоторый boolean var (isTheFileNew), а затем выполнив команду CommandTFlush в BufWritePost, если файл был только что создан, но я не могу понять синтаксис. Другим решением может быть установка/отключение обратного вызова BufWritePost из обратного вызова BufWritePre, если это возможно ...
Может ли кто-нибудь помочь мне здесь? ;)
В чем заключается 'ks |' в начале вашей автокоманды? Не удается найти его в vim help. – ZyX
Найдено. Почему вы хотите пометить свою позицию, если ваша функция не перемещает курсор? – ZyX
Не знаю, действительно. Это просто плохая копия/вставка, основанная на некоторых указателях, которые я получил в #[email protected] Не совсем поняли, как получить что-то полезное из файлов справки. Я нахожусь на третий день с Вимом здесь;) – peterfarsinsen