私はvimを使用してファイルを開き、バッファid(bufnr()
)は.2
PreviewJupyterMD
call PreviewJupyterMD()
関数本体は次のようになります。
function! PreviewJupyterMD()
" creat a md file and load file name to a variable l:md_file
...
...
exec "edit" . l:md_file
let b:created_for_jupyter = 1
autocmd BufUnload <buffer> call MDCleanUp()
endfunction
だから私がやっていることはedit
、新しいファイルを開いてバッファ3にロードすることです(私もそれをチェックしましたbufnr()
)。ローカル変数をバッファ 3 に追加します。次に、MDCleanUp
Vim を閉じたときにバッファ 3 の vim run 関数が必要です。
バッファに変数があるかどうMDCleanUp
かを確認するのは、そのバッファのファイルをディスクから削除する場合です。
function! MDCleanUp()
if exists("b:created_for_jupyter")
call delete(expand("<afile>:p"))
endif
" below 2 line use to know this function run on which buffer
echom bufnr()
sleep 4
endfunction
実際の動作はMDCleanUp
2 回実行されますが、出力メッセージechom bufnr()
はすべて 2 で、出力 2 は 2 回です!
出力が次のようになる理由について、指示または提案をお願いします。
2
2
そしてそれをどのようにするか:
2
3
前もって感謝します!