7
A
回答
1
我不認爲默認編輯器或終端的概念是有道理的。對編輯來說,定義時使用$EDITOR
的約定。
在Debian和相關(如Ubuntu的,薄荷),你有(以/etc/alternatives/
通過符號連接),如/usr/bin/editor
和/usr/bin/x-terminal-emulator
符號鏈接路徑一些系統默認值。
1
每用戶環境變量告訴你。
- $編輯器爲您提供了作爲文本編輯器啓動的命令;
- $ BROWSER爲您提供瀏覽器
- $ PAGER爲您提供尋呼機(或多或少)。
這對命令行軟件是有效的,而通常桌面環境使用自己的(內部)變量。
另外在python中,你可以使用os.getenv
來讀取環境變量。
3
編程方式在一個相當醜陋的方式在不久前訪問列表,我敢肯定它不是最好的方式。選項存儲在一個名爲defaults.list的文件中(我認爲這通常是這種情況)。這個位置不太一般,我認爲它在/ usr/share/applications /在我的ubuntu系統上,雖然它確實出現在我認爲的其他地方。然後我將其作爲文本文件處理。
1
這工作在Ubuntu/GNOME:
>>> query_lines = subprocess.check_output(['update-alternatives',
'--query',
'gnome-text-editor']).split('\n')
>>> bestlist = filter(lambda l: 'Best' in l, query_lines)
>>> bestlist[0].split()[1]
'/usr/bin/gedit'
如果不是侏儒,你至少可以得到命令行編輯:
>>> query_lines = subprocess.check_output(['update-alternatives',
... '--query',
... 'editor']).split('\n')
>>> bestlist = filter(lambda l: 'Best' in l, query_lines)
>>> bestlist[0].split()[1]
'/bin/nano'
2
分辨率順序爲$EDITOR
- >editor
- >一些控制檯編輯器的預定義列表。在Debian/Ubuntu上,sensible-editor
(和sensible-browser
和sensible-pager
)將爲您執行查找,包括查看正確的環境變量。類似變量是$PAGER
,$SHELL
,$BROWSER
。要查找文件關聯,可以使用xdg-open
。
1
以從@投手的答案提示,和純粹的bash:
editor=$(grep "text/plain" -r -i -I /usr/share/applications/defaults.list | awk -F';' '{print $1}' | awk -F'.desktop' '{print $1}' | awk -F'=' '{print $2}')
相關問題
- 1. 如何以編程方式確定iPhone上的默認鈴聲?
- 2. 如何以編程方式確定Word應用程序凍結
- 3. 以編程方式取消默認應用程序
- 4. 如何以編程方式更改iPhone應用程序的默認圖標?
- 5. 如何將應用程序設置爲以編程方式打開特定類型文件的默認程序?
- 6. 如何以編程方式確定Android中當前活動的應用程序
- 7. 以編程方式讓iPhone從應用程序中沉默?
- 8. 如何以編程方式確定Windows的當前默認代碼頁?
- 9. 如何以編程方式確定函數參數的默認值?
- 10. 在Android中,如何以編程方式更改特定意圖的默認應用程序?
- 11. 如何以編程方式確認Magento中的用戶?
- 12. 如何以編程方式確定VB應用程序日誌的位置?
- 13. 以編程方式爲文件類型調用默認應用程序
- 14. 如何以編程方式在大型Linux應用程序中「拔出網線」?
- 15. 如何以編程方式卸載Windows中的應用程序?
- 16. 如何在Xcode中以編程方式默認按鈕?
- 17. 如何在opencart中以編程方式設置默認貨幣?
- 18. 在Android中,您如何以編程方式訪問用戶的默認地圖應用程序?
- 19. 如何更改打開應用程序的默認方式
- 20. AppleScript可以確定默認郵件應用程序嗎?
- 21. 如何在Macintosh中以編程方式退出應用程序
- 22. 如何以編程方式替換默認的log4j2配置?
- 23. 如何以編程方式進入Android的默認主屏幕?
- 24. 如何以編程方式將附件從「默認郵件應用程序」添加到iOS中的「MyApp」?
- 25. 編譯默認的Android應用程序
- 26. 如何以編程方式關閉反應js應用程序
- 27. 如何以編程方式在Android中啓動特定的應用程序?
- 28. 如何以編程方式獲取應用程序的名稱?
- 29. 如何以編程方式設置tabLayout的應用程序:tabBackground?
- 30. 如何以編程方式在IIS7中啓動/停止默認網站和應用程序池
好了,所以看起來像該系統使用了一個名爲defaults.list文件。所以找出系統正在使用哪個defaults.list應該可以解決這個問題。如果任何人有任何提示,請繼續 – sqram 2012-01-06 21:20:40