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

问题描述:

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

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-path get "atom" or , 

or字需要2个项目从堆栈中,如果其中有一个为真,它将输出其中第一个,否则,f(假)返回(如果您正在使用GUI侦听器,则可以通过单击该单词本身来交互地查看帮助浏览器中特定单词的文档!因此,您可以单击or并阅读文档以了解其工作原理)。

望着错误消息,"atom"被退回,所以我们可以推断出

atom-path get 

肯定没有返回f(假)。所以,你需要做的是执行edit字之前,编辑器的可执行文件的路径设置为atom-path

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

现在我不能肯定,如果我使用的路径分隔符将工作的,是在Windows,但你明白了。

+0

您可以使用“/”或“\\”作为路径分隔符,它们都可以在Windows中工作,我也认为其他操作系统也是如此。 – 2016-04-03 03:39:00