codemp-nvim/README.md

58 lines
2.8 KiB
Markdown
Raw Normal View History

2024-08-17 16:57:38 +02:00
# codemp-nvim
2024-08-17 17:04:00 +02:00
<a href="https://codemp.dev"><img alt="codemp logo" align="center" src="https://codemp.dev/codemp-t.png" height="100" /></a>
2024-08-17 16:59:00 +02:00
> code multiplexer for neovim
2022-09-14 12:13:48 +02:00
2024-08-17 16:57:38 +02:00
CodeMP is a **collaborative** text editing plugin to work remotely.
It seamlessly integrates in your editor providing remote cursors and instant text synchronization,
as well as a remote virtual workspace for you and your team.
CodeMP is build with state-of-the-art CRDT technology, guaranteeing eventual consistency.
This means everyone in a workspace will always be working on the exact same file _eventually_:
even under unreliable networks or constrained resources, the underlying CRDT will always reach a
convergent state across all users. Even with this baseline, CodeMP's proto is optimized for speed
and low network footprint, meaning even slow connections can provide stable real-time editing.
> This is the reference codemp neovim plugin maintained by [hexedtech](https://hexed.technology)
## usage
to interact with this plugin use the `:MP` command
2024-08-17 17:04:00 +02:00
| command | description |
| --- | --- |
| `:MP toggle` | toggles the codemp sidebar |
| `:MP connect [host] [username] [password]` | to connect to server, user and pwd will be prompted if not given |
| | |
| `:MP disconnect` | disconnects from server |
| `:MP id` | shows current client id |
| `:MP join <workspace>` | will join requested workspace; starts processing cursors, users and filetree |
| | |
| `:MP leave <workspace>` | disconnect from a joined workspace |
| `:MP attach <buffer>` | will attach to requested buffer if it exists (opens a new local buffer and uses current window) |
| `:MP detach <buffer>` | detach from a buffer and stop receiving changes |
| `:MP share` | shares current file: creates a new buffer with local file's content, and attach to it |
| `:MP sync` | forces resynchronization of current buffer |
| `:MP create <bufname>` | will create a new empty buffer in workspace |
| `:MP delete <bufname>` | will delete a buffer from workspace |
2024-08-17 16:57:38 +02:00
### quick start
* first connect to server with `:MP connect`
* then join a workspace with `:MP join <workspace>`
* either attach directly to a buffer with `:MP attach <buffer>` or browse available buffers with `:MP toggle`
MP command autocompletes available options for current state, so cycle <Tab> if you forget any name
### configuration
it's possible to configure global `vim.g.codemp_username` and a `vim.g.codemp_password` which will be used when connecting
2022-09-14 12:13:48 +02:00
2024-08-06 01:11:34 +02:00
## installation
2024-08-17 16:57:38 +02:00
**currently there is no stable release available**
an internal testing build is available here, place the whole `codemp` folder under your `.config/nvim/lua` directory
### building
this plugin relies on the native codemp lua bindings: just compile the main `codemp` project with `lua` feature enabled
and place a `lua.so` or `lua.dll` together with the plugin lua files while bundling
2022-09-14 12:13:48 +02:00