问题
I would like to run various commands when Atom starts, so that it opens in the state I expect it to without having to run those commands manually every time.
I know init.coffee
is run when Atom starts, but I don't know how to run a command from there.
回答1:
I finally found the answer here:
atom.commands.dispatch(atom.views.getView(atom.workspace), 'package:command');
Just change package:command
to your desired package & command, and put the result in your init.coffee
.
package:command
is the same syntax you would use in keymap.cson
. Basically, it's the name of the package and the name of the command you can find in the command palette, but lowercased and using dashes instead of spaces. ex: Fuzzy Finder: Toggle File Finder
becomes fuzzy-finder:toggle-file-finder
atom.views.getView(atom.workspace)
is to dispatch the command into the full workspace. If you want to target the current text editor instead, try atom.views.getView(atom.workspace.getActiveTextEditor())
.
You can test the whole thing by running it in the Dev Tools Console (open it using Window: Toggle Dev Tools
, or Ctrl+Shift+I
, or F12
).
> atom.commands.dispatch(atom.views.getView(atom.workspace), 'fuzzy-finder:toggle-file-finder');
Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: Array(1)}
来源:https://stackoverflow.com/questions/41645238/how-to-run-a-command-when-atom-starts