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 466
  • Win 0
  • Mac 466
  • Linux 0
Sep 30 Sep 29 Sep 28 Sep 27 Sep 26 Sep 25 Sep 24 Sep 23 Sep 22 Sep 21 Sep 20 Sep 19 Sep 18 Sep 17 Sep 16 Sep 15 Sep 14 Sep 13 Sep 12 Sep 11 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
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 0 0 0 0 0 0 0 0 0 0 0 0 1 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
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.