[Solved] Can I represent (and use) a search-and-replace instruction in text?


Atom seems great, and I am trying to standardize on it. My one big sticking point is simple command re-use, specifically search-and-replace actions using complex regexes.

EG: Right now, I want to develop a series of regex translations to convert a latex formula, like this:


Into a simplified version that can be pasted into wolfram alpha, like this:

((2-t)/(t^(2)(t-1)(t+1)))-((x(t-1))/(t)) = ((1)/(t^(2)(t^(2)-1)))+((x(2t^(2)-2t))/((t^(2)-1)))

In tools like vi or kedit, I could easily represent my series of transformations with strings that could be copy-pasted into the vi commandline.


Atom doesn’t appear to have anything like a commandline. The command palette doesn’t seem to allow parameterized commands. Am I missing something?


Ctrl-F Gives the find-replace function that can handle regular expressions if .* button is selected.

If this transform is used regularly, you could code it to a shortcut key.


Thanks for your interest! Please correct me if I’m wrong, but what I’m hearing is a suggestion that I do the following actions:

  • type ctrl-F,
  • find / copy my search string,
  • mouse to the search field,
  • paste,
  • find / copy my replace string,
  • mouse to the replace field,
  • paste,
  • mouse to the replace-all key (OK, maybe there’s a hotkey)

Repeat for each of my 3 operations. That’s a total of 24-30 user inputs, depending how I access my search/replace strings. Worse, the actions alternate between keyboard and mouse. Increasing by 8-10 for every new transform that I wish to add. This is quite precisely the sequence that I’m trying to avoid.

Rephrased, my question is: does Atom provide a way for me to script this to one (or perhaps 3) actions without writing a plugin?


As novice I would code a small segment in init.coffee or search for a package.
However I cannot help but wonder -
Do people reading your Atom related question know how VIM works?

Do you already use https://github.com/t9md/atom-vim-mode-plus?
Does this offer what you ask?


Aha! My flawed assumption was that the only way to create new commands was to build a whole new package.

Init.coffee should do it. I just need to create a new command consisting of a few simple calls to replace. That will fulfill my need, and be easily editable as my (complex) replace function evolves.

Excellent answer, thanks so much for your help.


Thank you for the [+] feedback.
[compliment] It seems as though you are more than capable to do the research and get the task done.

One note - realize even if the default is Coffeescript, you could use Javascript instead by replacing init.coffee with init.js. My novice recommendation is to stay with Coffeescript.