例如,如果您曾經使用過git,那麼當您進行提交時,它會打開vi來添加或編輯一些文本,而當您退出時,它可以攔截並使用該文本。這是什麼叫,所以我可以查找一些文件呢?任何其他信息,尤其是使用python執行此操作,將會非常有用。如何將vi(或其他編輯器)用作另一個命令的一部分來編輯某些內容並將其返回給該命令?
2
A
回答
5
通常會執行用戶的$EDITOR
環境變量,並指示用一些隨機名稱編寫臨時文件。臨時文件可以被應用程序讀回,並在不再需要時丟棄。
# Your application makes a system call like:
$EDITOR /tmp/randfile1124098weasc9839x.txt
這允許文本編輯器成爲用戶偏好。 $EDITOR
可能是/usr/bin/vi
,/usr/bin/emacs
,無論如何。
2
您所做的只是對臨時目錄中的文件進行系統調用。系統調用返回時,讀取文件。
4
這裏是你如何可以使用Python做到這一點:
import tempfile, os
f = tempfile.NamedTemporaryFile()
os.system("vi " + f.name) # this will open vi to edit your temporary file
text = f.read()
相關問題
- 1. 將編輯命令映射到某個編輯器
- 2. vi命令將某些行復制到另一個文件
- 3. 禁用內容可編輯命令
- 4. sqlite3命令編輯表中的內容
- 5. 從外部編輯器將命令傳遞給.NET GUI
- 6. 小命令行腳本(如Autocad命令)一行編輯器
- 7. 編輯bash命令?
- 8. CloseSIngleConque不是一個編輯命令 - VIM
- 9. VIM:不是一個編輯命令:MiniBufExplorer
- 10. 如何在Linux上使用vi編輯終端中的命令?
- 11. 如何將某些東西從vim編輯器複製到shell命令行
- 12. 從一個vi編輯器複製列到其他
- 13. 當命令行vi模式打開外部編輯器時,如何發送回命令行?
- 14. 將命令傳遞給其他類
- 15. 爲什麼CI」命令是不工作的VI編輯
- 16. 編輯WordPress的Previous_post命令
- 17. Git - 「編輯」命令的Windows?
- 18. Gridview中的編輯命令
- 19. 將命令行參數委託給其他命令
- 20. 帶VI命令的Windows最佳Ruby編輯器
- 21. Firebug的命令編輯器禁用
- 22. 如何編輯NSArrayController的數據(或使用其他內容)
- 23. vi編輯器覆蓋控制檯命令歷史記錄
- 24. Summernote將不會編輯其內容
- 25. 編輯命令輸出
- 26. vim命令行編輯
- 27. 「VI」不被識別爲一個內部或外部命令
- 28. 將富文本編輯器的內容返回給servlet
- 29. 如何編輯LLDB中的命令行?
- 30. 如何用一個命令編輯文件?