【问题标题】:How to run a command when atom startsatom启动时如何运行命令
【发布时间】:2017-05-29 10:52:02
【问题描述】:

我想在 Atom 启动时运行各种命令,以便它以我期望的状态打开,而不必每次都手动运行这些命令。

我知道 init.coffee 在 Atom 启动时运行,但我不知道如何从那里运行命令。

【问题讨论】:

    标签: command startup atom-editor


    【解决方案1】:

    终于找到答案here:

    atom.commands.dispatch(atom.views.getView(atom.workspace), 'package:command');

    只需将package:command 更改为您想要的包和命令,然后将结果放入您的init.coffee。

    package:command 与您在keymap.cson 中使用的语法相同。基本上,它是包的名称和您可以在命令面板中找到的命令的名称,但要小写并使用破折号而不是空格。例如:Fuzzy Finder: Toggle File Finder 变为 fuzzy-finder:toggle-file-finder

    atom.views.getView(atom.workspace) 是将命令分派到整个工作区。如果您想改为以当前文本编辑器为目标,请尝试atom.views.getView(atom.workspace.getActiveTextEditor())。

    您可以通过在开发工具控制台中运行它来测试整个东西(使用Window: Toggle Dev Tools、Ctrl+Shift+I 或F12 打开它)。

    > atom.commands.dispatch(atom.views.getView(atom.workspace), 'fuzzy-finder:toggle-file-finder');
    Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: Array(1)}
    

    【讨论】:

    • 这个放在哪里?我试图把它放在init.coffee 中,但我收到了这个错误:Failed to load C:\Users\User\.atom\init.coffee Cannot read property 'nodeName' of null
    • @W.M.您要运行哪个'package:command'?我怀疑它导致了这个问题。我添加了有关如何在开发工具控制台中对其进行测试的说明。也许您尝试运行的命令不适用于 atom.workspace 视图 - 在这种情况下,您需要确定要使用的正确视图。
    • fuzzy-finder:toggle-file-finder 为我工作。但是当我尝试时:atom.commands.dispatch(atom.views.getView(atom.workspace), "hydrogen-python:toggle-variable-explorer"); 它不起作用......有什么想法吗?
    • @WestYang 我从未使用过该软件包,但我认为它需要针对您正在使用的特定文件,而不是整个工作区。请改用atom.views.getView(atom.workspace.getActiveTextEditor())。
    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 2013-05-25
    • 1970-01-01
    • 2017-04-19
    • 2017-04-18
    • 1970-01-01
    • 2010-10-09
    • 2019-05-21
    相关资源
    最近更新 更多