1

我正在使用 Mongo shell。我已将我的 EDITOR 设置为我的记事本++ 路径。我创建了一个对象,然后使用 EDIT 命令使用 notepad++ 编辑对象,但它不会更新对象。

// mongo shell
var pow = { name: "teest" }; 
edit pow
// notepad++ opens a document called 'mongo_edit141225123.js' that resides
// in C:\users\...\Appdata\local\temp
// I edit the object, save and close notepad++
pow // object isn't updated :(

我错过了什么?

4

1 回答 1

1

这里似乎有一些警告。但我可以描述我是如何做到这一点的:

  1. 设置PATH环境变量以包含 notepad++ 可执行文件的路径。请注意“应用”此更改并且在执行此操作时没有现有的命令行窗口。或者至少在此步骤完成后打开一个新的。

  2. 在命令 shell 窗口中指定一个EDITOR变量,或者在与设置PATH环境变量相同的系统属性下设置它。由于程序目录位于 PATH 中,因此只需设置可执行文件名称:

    set EDITOR="notepad++"
    
  3. 启动你的 mongo shell 并去编辑一个变量:

    > edit something
    
  4. 这将启动指定的编辑器,首先使用“未定义”变量。输入“有效”的内容,因为任何无效的 JavaScript 声明都将被丢弃。现在是重要的部分。编辑后和“关闭”时单击“选项卡关闭”图标,不要关闭整个编辑器,如图所示:

    在此处输入图像描述

最后一部分似乎是最重要的。如果系统提示您保存(并且您可能会保存),请执行此操作。只有“在”选项卡关闭(并保存)之后,您才应该关闭编辑器本身。

如果您随后edit something从 mongo shell 发出相同的命令,那么编辑器将打开您之前编辑的内容。

如果您遵循此操作并首先关闭编辑器窗口,那么您应该会看到一个附加选项卡打开,并且原始选项卡包含您之前拥有的内容。但随后的更改将丢失,因为 shell 现在正在跟踪不同的临时文件。

所以按照这些步骤,你应该是对的。我希望其他外部编辑器也有类似的问题,实际上会以类似的方式解决。

于 2014-10-03T07:16:26.107 回答