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
- Host: GitHub
- URL: https://github.com/eraserhd/kak-plumb
- Owner: eraserhd
- License: unlicense
- Created: 2019-06-16T20:53:53.000Z (almost 7 years ago)
- Default Branch: develop
- Last Pushed: 2021-05-24T15:54:33.000Z (about 5 years ago)
- Last Synced: 2025-03-25T03:11:50.323Z (about 1 year ago)
- Topics: kakoune, plan9, plan9port, plugin
- Language: Shell
- Homepage:
- Size: 28.3 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.adoc
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.