编辑器变量功能真的在Windows7上工作吗?
我读到一篇文章,说一旦我们设置了editor变量
在.mongorc.js中,我们只需键入shell:edit var_name
var_name将加载到编辑器中(在我的例子中是ultraedit)
用于编辑。一旦我们完成了改变,我们就可以
保存并退出编辑器;然后将解析变量
然后装回弹壳里。粗体斜体部分
对我不起作用。
它所做的只是让我在桌面上保存一些js文件?!
有什么想法吗?
编辑:
我注意到如果设置为notepad(“notepad.exe”),
工作正常。但如果我将其设置为ultraedit(“uedit32.exe”),
它不像人们所期望的那样工作。
最佳答案
EDITOR
环境变量在windows上工作,但看起来像mongodb 2.4中一样,有几个因素影响可用性。
当您使用edit
命令时,mongo
shell将使用该变量的内容编写一个临时javascript文件,并使用该文件路径编写一个临时javascript文件。然后shell会话等待编辑器退出并检查返回代码。
如果:
外部编辑器有一个多文档界面,并且已经有其他文档打开
外部编辑器未返回预期的0(无错误)返回代码
权变措施
将您的设置限制为使用单个文档编辑器。虽然EDITOR
可以工作,但可能有一个功能更强大的编辑器,其中包括javascript语法突出显示。
如果您正在开发复杂的javascript函数,那么您可能希望将这些函数放在外部文件中。您可以使用launches the external editor将js文件的最新版本重新加载到shell中。
超编辑
Ultraedit有一些额外的用户体验问题(我使用Ultraedit V20进行了测试):
(幸运地工作)如果在从notepad.exe
shell调用load("/path/to/file.js")
之前没有打开ultraedit,并且没有打开任何额外的选项卡,那么它将作为外部编辑器工作。您应该能够成功地使用edit
shell中的mongo
启动ultraedit,编辑变量,并在关闭ultraedit时查看保存的结果。ultraedit提示将更新的js文件保存在同一位置。
(不起作用)如果ultraedit已经打开并且有其他文档选项卡,则其行为不同。shell中的edit
命令将打开一个新的选项卡,但是当您关闭此选项卡(保存更改)时,ultraedit会提示您使用“另存为”对话框。ultraedit保存js文件,但显然没有返回预期的退出代码,因此mongo
shell不知道js文件已经更新,应该重新加载。
编辑:多亏了Ultraedit专家的建议,我找到了一个使Ultraedit运行良好的配置设置:
打开配置设置(高级>配置菜单)
在“应用程序布局>杂项”下,启用设置的复选框“为从外部应用程序打开的每个文件维护单独的进程”
重新启动ultraedit(该设置在下次启动前似乎不会生效)
启用“单独进程”设置后,您现在应该可以将Ultraedit用作外部edit
并在关闭从mongo
shell打开的编辑选项卡时看到所反映的更改。
关于mongodb - MongoDB - EDITOR变量 - MongoDB shell - Windows 7,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21467138/