Как захватить пользовательский ввод "Подтвердить сохранение"?
Я использую эту команду, чтобы переименовать текущий файл и удалить файл со старым именем::exe "confirm sav ".variable
Variable
указывается в un inputdialog().
Как я могу захватить confirm saveas
пользовательский ввод (перезаписать да или нет), чтобы сделать это:
если userinput == 'нет' -> ничего не делать
если userinput == 'yes' -> удалить старый файл и буфер: call delete(expand('#')) | bd#
Надеюсь, я ясно дал понять.
2 ответа
Вы не можете напрямую получить доступ к результату :confirm
, но эффект от :saveas
можно наблюдать: если буфер не 'modified'
больше, экономия была сделана. Для обработки неизмененных исходных буферов исходное состояние должно быть сохранено и восстановлено.
let save_modified = &l:modified
setlocal modified
exe "confirm sav ".variable
if !&l:modified
" User confirmed.
call delete(expand('#')) | bd#
else
" User canceled; restore original state.
let &l:modified = save_modified
endif
Примечание: есть плагин для переименования: переименовать плагин
confirm()
Функция - это то, что вы ищете.
:h confirm()
проверить подробное описание аргумента и примеры.