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

https://github.com/eraserhd/kak-plumb

Kakoune integration with the plan9port plumber
https://github.com/eraserhd/kak-plumb

kakoune plan9 plan9port plugin

Last synced: 8 months ago
JSON representation

Kakoune integration with the plan9port plumber

Awesome Lists containing this project

README

          

kak-plumb
=========

https://kakoune.org[Kakoune] integration with the
https://9fans.github.io/plan9port/[plan9port]
https://9fans.github.io/plan9port/man/man4/plumber.html[plumber].

Plumbing Text and Clicking
--------------------------

`Enter` is mapped to plumb the current selections. Multiple selections are
plumbed iteratively.

If a selection is one character long, it is treated like a Plan 9 "click".
The surrounding (or following) WORD is plumbed instead, and a "click"
attribute is computed with the selection's offset.

A special case is when `filetype` is `diff`: The location of the cursor
within the diff chunk is used to compute a position in the "new" file, and
this file, line, and column are plumbed.

`kakoune` is sent as the source. The current working directory is sent
unless overridden by setting the `plumb_wdir` option. Additionally, a
`session` attribute is sent with the value of `%val{session}`.

Opening Plumbs in Kakoune
-------------------------

`edit-client` is a script which will listen to the plumber's `edit` port and
send Kakoune sessions commands it receives. It can be used to open files in
Kakoune when plumbed.

It should be wrapped with systemd or launchd. Make sure that `kak` and `9`
are in the path and `$NAMESPACE` is set properly.

See the `plumbing-examples` file for examples of usage.

Contributing
------------

All new functionality must contain tests. See `test/tests.bash` for details.