【问题标题】:Setting mongodb editor path in mongorc on windows在 windows 上的 mongorc 中设置 mongodb 编辑器路径
【发布时间】:2013-11-30 07:59:24
【问题描述】:

我正在尝试在 Windows 8 上的 .mongorc.js 中为 mongodb 设置 sublime 文本编辑器的路径,所以我将此行添加到 .mongorc.js ...

EDITOR = "C:\\Program Files\\Sublime Text 3\sublime_text.exe";

当我从命令提示符启动 mongo.exe 然后键入:

> edit blah

它返回:

'C\Program' is not recognized as an internal or external command

所以我试试

EDITOR = "C:\\Program\u0020Files\\Sublime\u0020Text\u00203\\sublime_text.exe";

甚至

EDITOR = "C:\\Program%20Files\\Sublime%20Text%203\\sublime_text.exe";

我明白了

系统找不到指定的路径。

【问题讨论】:

  • 它工作正常,您的转义没有完整引用 - 您需要在转义的名称周围使用 " " 以便保留它。我刚刚添加了一个答案,展示了如何做到这一点。

标签: windows mongodb command-line-arguments


【解决方案1】:

显然,路径不能包含空格。

最简单的解决方法是使用生成的 8.3 文件夹名称,而不是带空格的路径。

在命令提示符下,您将使用 /x 开关,该开关显示通常隐藏的 8.3 目录和文件名:

c:
cd \
dir pro* /x

应该返回如下内容:

Directory of C:\

11/05/2013  07:19 PM    <DIR>          PROGRA~1     Program Files
11/05/2013  07:19 PM    <DIR>          PROGRA~2     Program Files (x86)

如果你使用的是 64 位版本的 Sublime,你会选择PROGRA~1

切换到Program Files目录:

cd Program Files

然后,找到 Sublime 文件夹的 8.3 名称:

C:\Program Files>dir Subl* /x

 Directory of C:\Program Files

 09/08/2013  02:17 PM    <DIR>          SUBLIM~1     Sublime Text 2

在我的系统上,它是SUBLIM~1。然后,使用系统中的值将 EDITOR 值更改为:

EDITOR="C:\\PROGRA~1\\SUBLIM~1\\sublime_text.exe"

你也可以在某处创建一个连接(没有空格),但是上面的技巧应该可以正常工作(我在我的机器上测试过,它工作正常)。我注意到使用 Sublime 的唯一问题是 MongoDB 控制台中的 edit 命令等待整个编辑器进程退出,因此您不能使用例如选项卡。

【讨论】:

  • 我认为最简单的解决方法是将 sublime_text.exe 添加到您的默认路径,然后将可执行文件名称分配给 EDITOR。
  • 我不会……我不喜欢将这种类型的应用程序添加到我的路径中。我不知道你为什么来投反对票。在被问到这个问题时,我不知道它是否正常工作——正如您从问题的结果中看到的那样。
  • 你的答案第一句话不准确。我在我的回答中指出,转义工作得很好 - OP没有添加转义引号 - 我来这个问题的原因是有人在 mongodb jira 中提交了一个错误来“修复”基于这个问题的行为,所以我添加了一个答案,以便人们知道该怎么做。正如您从我的示例中看到的那样,这已经有效(并且它适用于所有版本的 mongo shell/Windows。
  • 在我写这篇文章的时候,它没有用。在花时间写下长答案作为解决方法之前,我确认它已损坏。
  • OP 的语法不起作用,真的 - 我的语法不同。在我得到转义和不正确转义的组合之前,我花了大约 8 次尝试 - 这不是微不足道的,但在过去几年的任何版本中都没有改变。
【解决方案2】:

您的编辑器名称中可以包含空格,您只需确保正确转义所有内容。我没有你安装的编辑器,所以我用了写字板。

> EDITOR="\"C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe\""
"C:\Program Files\Windows NT\Accessories\wordpad.exe"
> edit a

为我工作。您需要将整个内容用引号引起来,然后用反斜杠转义整个可执行文件的反斜杠和双引号。

您还可以确保编辑器的路径在您的默认/系统路径中,然后您只需将编辑器可执行文件名称分配给 EDITOR。

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 2015-05-26
    • 1970-01-01
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多