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

Open With

by j-martin ST3 OS X

Open current file in another editor

Details

Installs

  • Total 229
  • Win 0
  • OS X 229
  • Linux 0
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 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4
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
OS X 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 2 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 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 OSX.

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 OSX, invoking shell commands is NOT supported.