我使用此命令重命名当前文件并删除旧名称的文件:
:exe "confirm sav ".variable
Variable
在un inputdialog()中给出。
如何捕获confirm saveas
用户输入(覆盖是或否)以执行此操作:
如果userinput ==' no' - >什么都不做
如果用户输入=='是' - >删除旧文件和缓冲区:call delete(expand('#')) | bd#
希望我能说清楚。
答案 0 :(得分:1)
您无法直接访问: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
注意:有一个重命名插件:rename plugin
答案 1 :(得分:0)
confirm()
功能正是您所需要的。
:h confirm()
检查详细的参数描述和示例。