2014-06-30 94 views
0

我使用這個命令來重新命名當前文件,並與舊名稱刪除文件:
:exe "confirm sav ".variable如何捕獲'confirm saveas'用戶輸入?

Variable在未使用inputdialog給出()。

我怎樣才能捕捉confirm saveas用戶輸入(覆蓋yes或no)爲了做到這一點:
如果userinput == '不' - >無能爲力
如果userinput == '是' - >刪除舊文件和緩衝區:call delete(expand('#')) | bd#

希望我說清楚了。

回答

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

+0

非常感謝你。奇蹟般有效! – Reman

0

confirm()功能是你在找什麼。

:h confirm()查看詳細的參數說明和示例。