{"id":24070347,"url":"https://github.com/vbauerster/kamp","last_synced_at":"2025-07-28T14:33:10.192Z","repository":{"id":42472711,"uuid":"471642948","full_name":"vbauerster/kamp","owner":"vbauerster","description":"tool to control Kakoune editor from the command line","archived":false,"fork":false,"pushed_at":"2024-10-24T12:46:44.000Z","size":321,"stargazers_count":10,"open_issues_count":2,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-24T13:55:26.644Z","etag":null,"topics":["kakoune","plugin"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vbauerster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-19T09:01:19.000Z","updated_at":"2024-10-24T12:46:48.000Z","dependencies_parsed_at":"2024-06-09T16:47:41.370Z","dependency_job_id":"8c78684d-dcbc-4c61-be19-aabe2967c0c3","html_url":"https://github.com/vbauerster/kamp","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauerster%2Fkamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauerster%2Fkamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauerster%2Fkamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vbauerster%2Fkamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vbauerster","download_url":"https://codeload.github.com/vbauerster/kamp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233212415,"owners_count":18642427,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kakoune","plugin"],"created_at":"2025-01-09T15:38:23.633Z","updated_at":"2025-07-28T14:33:10.180Z","avatar_url":"https://github.com/vbauerster.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kamp\n\nKamp is a tool to control [Kakoune](https://github.com/mawww/kakoune) editor from the command line.\n\n## Installation\n\n### From source\n\nRequires [Rust](https://www.rust-lang.org) installed on your system.\n\nClone the repository and run `cargo install --path .`\n\n### Nix\n\nWith nix-env:\n\n```shell-script\nnix-env -iA kamp\n```\n\nWith modern nix command:\n\n```shell-script\nnix profile install nixpkgs#kamp\n```\n\n## Kakoune integration\n\nAdd following definition into your kakrc.\n\n```kak\nevaluate-commands %sh{\n    kamp init -a -e EDITOR='kamp edit'\n}\n```\n\n## Provided scripts\n\nThe [scripts](scripts) need to be added to `$PATH` in order to use them.\n\n| script                                     | function                         |\n| ------------------------------------------ | -------------------------------- |\n| [`kamp-buffers`](scripts/kamp-buffers)     | pick buffers (fzf)               |\n| [`kamp-files`](scripts/kamp-files)         | pick files (fzf)                 |\n| [`kamp-nnn`](scripts/kamp-nnn)             | pick files (nnn)                 |\n| [`kamp-filetypes`](scripts/kamp-filetypes) | set filetype (fzf)               |\n| [`kamp-lines`](scripts/kamp-lines)         | search lines in buffer (fzf)     |\n| [`kamp-sessions`](scripts/kamp-sessions)   | attach session and pick a buffer |\n| [`kamp-grep`](scripts/kamp-grep)           | grep interactively with fzf      |\n| [`kamp-fifo`](scripts/kamp-fifo)           | pipe stdin into fifo buffer      |\n\n### Kakoune mappings example\n\nFollowing mappings use [tmux-terminal-popup](https://github.com/alexherbo2/tmux.kak/blob/716d8a49be26b6c2332ad4f3c5342e485e02dff4/docs/manual.md#tmux-terminal-popup) as popup implementation.\n\n```kak\nalias global popup tmux-terminal-popup\nmap global normal -docstring 'files'          \u003cc-f\u003e ':connect popup kamp-files\u003cret\u003e'\nmap global normal -docstring 'git ls-files'   \u003cc-l\u003e ':connect popup kamp-files -b git\u003cret\u003e'\nmap global normal -docstring 'buffers'        \u003cc-b\u003e ':connect popup kamp-buffers\u003cret\u003e'\nmap global normal -docstring 'grep selection' \u003cc-g\u003e ':connect popup kamp-grep -q \"%val{selection}\"\u003cret\u003e'\nmap global normal -docstring 'grep by filetype' \u003cc-y\u003e ':connect popup kamp-grep -- -t \"%opt{filetype}\"\u003cret\u003e'\n```\n\n## Shell integration\n\nYou may want to set the `EDITOR` variable to `kamp edit` so that connected programs work as intended:\n\n```sh\nexport EDITOR='kamp edit'\n```\n\nSome useful aliases:\n\n```sh\nalias k='kamp edit'\nalias kval='kamp get val'\nalias kopt='kamp get opt'\nalias kreg='kamp get reg'\nalias kcd-pwd='cd \"$(kamp get sh pwd)\"'\nalias kcd-buf='cd \"$(dirname $(kamp get val buffile))\"'\nalias kft='kamp get -b \\* opt filetype | sort | uniq' # list file types you're working on\n```\n\n## Similar projects\n\n- [kks](https://github.com/kkga/kks)\n- [kakoune.cr](https://github.com/alexherbo2/kakoune.cr)\n- [kakoune-remote-control](https://github.com/danr/kakoune-remote-control)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbauerster%2Fkamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvbauerster%2Fkamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvbauerster%2Fkamp/lists"}