使用 Atom 作为 Factor 监听器的默认编辑器

Using Atom as default editor for Factor listener

我想使用 Atom 作为因子侦听器的默认编辑器,这样键入 \ foo edit 将在 Atom 中打开 foo 的定义。但是当我尝试它时,我得到了这个:

Launching failed with error:
Win32 error 0x2: The system cannot find the file specified.
Launch descriptor:

T{ process
    { command
        {
            "atom"
            "C:\path\to\factor_directory\Factor/work/file_directory/filename.factor:1"
        }
    }
    { detached t }
    { environment H{ } }
    { environment-mode +append-environment+ }
    { group +same-group+ }
}

但是如果我 cd 进入目录并从 powershell 执行 atom filename.factor(我在 Windows 8.1),它工作正常,这表明 Factor 生成的命令有问题。所以我打开 C:\path\to\factor_directory\Factor\basis\editors\atom 发现

! Copyright (C) 2014 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: editors kernel make math.parser namespaces sequences ;
IN: editors.atom

SINGLETON: atom-editor
atom-editor \ editor-class set-global

SYMBOL: atom-path

M: atom-editor editor-command ( file line -- command )
    [
        atom-path get "atom" or ,
        number>string ":" glue ,
    ] { } make ;

我对它的工作原理有一个最模糊的想法。我想我应该以某种方式更改 editor-command 的定义,但我不确定它有什么问题。

有什么想法吗?

atom 可执行文件可能不在您的路径中。如果您查看以下行:

atom-path get "atom" or ,

or单词从栈中取出2项,如果其中一项为真,则输出第一项,否则返回f(false)(如果你如果正在使用 GUI 侦听器,您实际上可以通过单击单词本身在帮助浏览器中以交互方式查找特定单词的文档!因此您可以单击 or 并阅读文档以弄清楚它是如何工作的)。

查看错误信息,返回"atom",因此我们可以推断

atom-path get

一定返回了 f (false)。所以你需要做的是在执行edit字之前设置编辑器的可执行路径为atom-path

"C:/path/to/atom.exe" \ atom-path set-global

现在我不确定我使用的路径定界符是否会在 Windows 中按原样工作,但你明白了。