簡體   English   中英

無法在mongo shell中設置外部編輯器。(Mac OS)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM