[英]can't set an external editor in mongo shell.(Mac OS)
我想在mongo shell中設置外部編輯器,但出現此錯誤。
sh: /Applications/CodeRunner.app: is a directory
editor exited with error (32256), not applying changes
正如mongodb文件所說,我在啟動mongo shell之前做了以下工作。
export EDITOR='/Applications/CodeRunner.app'
echo $EDITOR
/Applications/CodeRunner.app
open $EDITOR
我確保可以通過運行echo $EDITOR
啟動編輯器“ CodeRunner”。
此后,我進入mongo shell並執行以下操作,但收到錯誤。
var obj = {}
edit obj
sh: /Applications/CodeRunner.app: is a directory
editor exited with error (32256), not applying changes
能否請任何人告訴我我在做什么錯以及如何解決此錯誤?
您在Finder中看到的MacOS .app
“文件”實際上是具有目錄和文件結構的應用程序包 。 您可以通過使用ls -laR /Applications/CodeRunner.app
在Terminal會話中列出文件,或在Finder中的CodeRunner.app上單擊鼠標右鍵,然后從菜單中選擇“查看包內容”,從而窺視所有內容。
實際的可執行文件可以在Contents / MacOS目錄中找到,因此EDITOR變量的正確設置應為:
EDITOR="/Applications/CodeRunner.app/Contents/MacOS/CodeRunner"
但是,我用MongoDB 3.6.3 shell測試了CodeRunner 2.3,它不能作為mongo
shell的編輯器正常工作。
在mongo
shell中設置EDITOR變量並運行edit foo
啟動CodeRunner,並帶有一個包含foo
內容的臨時文件(到目前為止,很好)。 不幸的是,保存此文件或關閉CodeRunner中的選項卡不會將控制權返回給mongo
shell。 我發現我必須退出CodeRunner應用程序才能返回編輯結果並恢復我的mongo
shell會話。
如果您的目標是在外殼程序中使用用於JavaScript函數的GUI編輯器,則一種方法是將JavaScript代碼保存在文件中,並在保存到首選編輯器中后,使用load()
命令在mongo
shell中運行它。 另外,您也可以使用代碼編輯器來研究MongoDB管理工具(有很多開源的工具)。 DbKoda就是這樣的一個例子,它是跨平台和開源的。
如果您需要使用數據或查詢結果,但不需要任何自定義功能,則建議使用數據管理UI,例如MongoDB Compass 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.