ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Open With

by j-martin ST3 Mac

Open current file in another editor

Details

Installs

  • Total 504
  • Win 0
  • Mac 504
  • Linux 0
Sep 10 Sep 9 Sep 8 Sep 7 Sep 6 Sep 5 Sep 4 Sep 3 Sep 2 Sep 1 Aug 31 Aug 30 Aug 29 Aug 28 Aug 27 Aug 26 Aug 25 Aug 24 Aug 23 Aug 22 Aug 21 Aug 20 Aug 19 Aug 18 Aug 17 Aug 16 Aug 15 Aug 14 Aug 13 Aug 12 Aug 11 Aug 10 Aug 9 Aug 8 Aug 7 Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28
Windows 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 1 1 1 0 0 0 0 0 0 1 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

Open With

…something other than Sublime Text

What?

Opens the file you are working with into another editor or application. While: - Preserving your cursor position. - Allow flexible key binding. - Allow templating/variables (line number, columns number, etc.). - Activates the target editor window (if required).

It currently only support Sublime Text 3 on macOS.

Why?

Some text editors work better than some other for some kind of work (e.g.: IntelliJ for refactoring, VIM for quick edits/macros, Emacs for orgmode, etc.), but Sublime shines when it comes to its multi-cursor support (for example).

  • IntelliJ as multi cursor support, but it's slow and wonky at best.
  • VIM is VIM. Sublime, Emacs and IntelliJ have decent VIM emulators, but it's not the same once you hit more advanced features.
  • Emacs has org mode.

The idea is to be able to switch between them with minimal cognitive load and preserve the cursor location when switching between editors.

Possible use cases / scenarios

  • Editing some file in IntelliJ.
  • Call Sublime as an IntelliJ external tool with a keybinding (of your choice).
  • Edit something in Sublime.
  • Trigger Open With Intellij with a keybinding (of your choice).

If both editors are configured to save on loss of focus, it makes things super smooth.

Installation

  1. Install Package Control for SublimeText 3.
  2. Type cmd + shift + p or ctrl + shift + p | Package Install | Open With

Configuration

By default, using Open with... from the command palette will let you use IntelliJ and Finder.

To add your own editor, add the following settings. - the name key is the window name (to be activated) - Adding your own application/editor to your user settings will help populating the command palette (cmd+shift+p).

Variables/Placeholder:

The are template placeholders and will be replaced when launching the editor/application.

  • {filename} (fully qualified)
  • {directory} (fully qualified)
  • {line} (number)
  • {column} (number)

Example

Preferences: Settings - User

{
  "open_with": [
    {
      "name": "IntelliJ IDEA",
      "command": ["/usr/local/bin/idea", "{filename}:{line}"]
    },
    {
      "name": "NeoVim",
      "command":
      ["/usr/local/Cellar/neovim-dot-app/HEAD/bin/gnvim", "{filename}", "+{line}"],
    },
    {
      "name": "MacVim",
      "command": ["/usr/local/bin/mvim", "{filename}", "+{line}"]
    },
    {
      "name": "Emacs",
      "command": ["/usr/local/bin/emacsclient", "+{line}:{column}", "{filename}"]
    },
    {
      "name": "Mou",
      "command": ["open", "-a", "Mou", "{filename}"]
    },
    {
      "name": "Finder",
      "command": ["open", "{directory}"]
    },
    {
      "name": "VMD",
      "command": ["/usr/local/bin/vmd", "{filename}"]
    }
  ]
}

Preferences: Key Bindings - User

[
  { "keys": ["ctrl+alt+super+shift+-"], "command": "open_with", "args": {"name": "IntelliJ IDEA"} },
  { "keys": ["ctrl+alt+super+shift+d"], "command": "open_with", "args": {"name": "MacVim"} }
]

Alternatively if you don't want to add anything to your settings and just want the key bindings, just specify the name and command as args.

[
  { "keys": ["ctrl+alt+super+shift+d"], "command": "open_with", "args": {
      "name": "MacVim", "command": ["/usr/local/bin/mvim", "{filename}", "+{line}"]}
  }
]

Different approaches

  • Defining the editor as a build tool (kinda wonky).
  • Sidebar Enhancements, Wonderful plugin (you should install it), but last time I checked it doesn't preserve line numbers and a bit awkward to set key bindings and On macOS, invoking shell commands is NOT supported.