在兩種不同的情況下,我用emacs覆蓋了重要的文件,直到後來才意識到它。發生這種情況的原因是各種命令(特別是org-agenda-write
和org-export
)只會替換現有文件,而不會發出具有該名稱的文件已存在的警告。有沒有辦法配置emacs,這樣就不會發生?如何防止emacs在不發出警告的情況下覆蓋文件?
回答
org-agenda-write
使用write-file
來保存您的日程。當從程序調用該函數時,該函數將覆蓋現有文件而無需確認。 write-file
被深埋在org-agenda-write
之內,並且直接修改它可能會導致Emacs其他地方出現令人驚訝的錯誤。但是,您可以將org-agenda-write
換成周圍的建議。這是一種簡潔的方式來添加對文件存在的檢查,並在覆蓋文件之前提醒用戶。
(defadvice org-agenda-write (around my-file-check)
"Check if a file exists before writing the agenda to it."
(if (file-exists-p file)
(if (y-or-n-p (format "Overwrite %s?" file))
ad-do-it)
ad-do-it))
(ad-activate 'org-agenda-write)
這可能有資格作爲一個bug在org-agenda-write
,如果你的org-模式郵件列表上很好地詢問他們可能會被說服,使這個檢查的默認行爲。
org-export
的文件寫入行爲看起來有點牽扯,可能會借鑑外部程序來完成。不過,如果你願意的話,你可以使用類似的包裝。
謝謝,我會試一試這段代碼。我認爲如果沒有適用於任何試圖覆蓋現有文件而沒有警告的功能的全局解決方案? –
你可以建議'寫入文件'。但是,像這樣的基本功能混淆是有風險的,因爲寫文件被許多其他代碼使用。大多數文件寫入功能已經檢查覆蓋。如果他們不這可能是一個應該修復的錯誤。這是最好的全球解決方案。 – Tyler
- 1. rsync覆蓋只讀文件。我如何防止這種情況?
- 2. 如何在不關閉文件的情況下覆蓋文件
- 3. 如何在不覆蓋的情況下寫入hdf5文件?
- 4. 如何在不覆蓋java的情況下寫入文件?
- 5. 在不覆蓋Java的情況下寫入文本文件
- 6. 如何防止文件覆蓋自身?
- 7. 如何防止git pull覆蓋文件?
- 8. 防止覆蓋文件
- 9. 防止文件被覆蓋
- 10. 防止覆蓋文件中
- 11. BASH:如何在不覆蓋舊文件的情況下複製文件
- 12. 如何在不覆蓋現有文件的情況下複製文件?
- 13. 如何在不覆蓋現有文件的情況下創建線程文件?
- 14. 如何在不發出警告的情況下將套接字轉換爲SSLConnectionRef?
- 15. 發出文件警告,覆蓋目標的命令
- 16. 在不覆蓋exe文件的情況下更新遊戲
- 17. 8086在不覆蓋的情況下寫入文件
- 18. 在不覆蓋的情況下寫入文件ObjC
- 19. 在不覆蓋的情況下寫入文件
- 20. 導出一個.txt文件,不會出現覆蓋警告
- 21. 防止在部署時覆蓋文件?
- 22. 如何在不覆蓋單個文件的情況下進行拉動
- 23. 如何在不停止(中斷)程序的情況下在Python中發出警告?
- 24. 如何在不覆蓋它的情況下傳輸$ exercise參數?
- 25. 如何在不覆蓋內容的情況下粘貼頁腳?
- 26. 如何防止警告
- 27. 如何在不覆蓋文件現有內容的情況下將輸出寫入文本文件?
- 28. Eclemma 1.5.3在異常情況下的覆蓋報告
- 29. 如何在不引發警告錯誤的情況下在Ruby中存儲STDOUT?
- 30. 在不覆蓋前一個文件的情況下寫入文件類
您可以舉出覆蓋文件的命令示例嗎? – Juancho
是的,請提供重現步驟。 –