Hotkey to end the line with a semicolon and jump to a new line in Sublime Text 2

Samuel Stiles picture Samuel Stiles · May 21, 2013 · Viewed 13.8k times · Source

I'm trying to figure out a hotkey at work. I just got this job and I am using a Mac for more or less the first time in my life.

Back home on my Laptop, when using Eclipse, I seem to remember there being a single hotkey which would both:

  • Add a ; to the end of my current line (no matter where the caret was within said line)
  • Place my cursor at the beginning of a new line, with the same indentation level as the line I had just added a semicolon to

Does anybody know if this was an Eclipse-specific hotkey, or know of a way to replicate said hotkey in Sublime Text 2?

Answer

drdiv picture drdiv · Aug 10, 2013

Best solution for this is recording a macro on Sublime Text and then assigning it to a keyboard shortcut. Follow these steps:

  1. Create a line such as alert('hello') and leave the cursor right after letter 'o'.
  2. Then go to Tools > Record a Macro to start recording.
  3. Press Command+ to go to the end of line.
  4. Press ; and hit Enter
  5. Stop recording the macro by going to Tools > Stop Recording Macro
  6. You can now test your macro by Tools > Playback Macro (optional)
  7. Save your macro by going to Tools > Save Macro (ex: EndOfLine.sublime-macro)
  8. Create a shortcut by adding this between the square brackets in your in your Preferences > Key Bindings - User file:

    {
    "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
    }
    
  9. Now, every time you hit Command+;, it will magically place the semicolon at the end of current line and move the cursor to the next line.

Happy coding!