Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/karlicoss/open-in-editor

Script to jump into files in you text editor, from your web browser
https://github.com/karlicoss/open-in-editor

editor emacs mime vim xdg-open

Last synced: 15 days ago
JSON representation

Script to jump into files in you text editor, from your web browser

Awesome Lists containing this project

README

        

#+begin_src python :exports results :results output drawer
import open_in_editor
print(open_in_editor.__doc__)
#+end_src

#+RESULTS:
:results:

This scripts allows opening your text editor from a link on a webpage/within a browser extension via MIME.
See a short [[https://karlicoss.github.io/promnesia-demos/jump_to_editor.webm][demo]].

It handles URIs like:

: editor:///path/to/file:123
: editor:///path/to/file?line=456

See =test_parse_uri= for more examples.

To install (register the MIME handler), run

: python3 open_in_editor.py --install --editor emacs

See =--help= for the list of available editors. If you want to add other editors, the code should be easy to follow.

You can check that it works with

: xdg-open 'editor:///path/to/some/file'

I haven't found any existing/mature scripts for this, *please let me know if you know of any*! I'd be quite happy to support one less script :)

The script was tested on *Linux only*! I'd be happy if someone contributes adjustments for OSX.

:end:

* Usage

#+begin_src bash :exports results :results output verbatim
./open_in_editor.py --help
#+end_src

#+RESULTS:
#+begin_example
usage: open_in_editor.py [-h] [--editor {emacs,vim,gvim,default}] [--install]
[--run-tests]
[uri]

positional arguments:
uri URI to open + optional line number

optional arguments:
-h, --help show this help message and exit
--editor {emacs,vim,gvim,default}
Editor to use. 'default' means using your default GUI
editor (discovered with open/xdg-open)
--install Pass to install (i.g. register MIME in your system)
--run-tests Pass to run unit tests
#+end_example