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 490
  • Win 0
  • Mac 490
  • Linux 0
Apr 20 Apr 19 Apr 18 Apr 17 Apr 16 Apr 15 Apr 14 Apr 13 Apr 12 Apr 11 Apr 10 Apr 9 Apr 8 Apr 7 Apr 6 Apr 5 Apr 4 Apr 3 Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12 Mar 11 Mar 10 Mar 9 Mar 8 Mar 7
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 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 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.