{"id":13395087,"url":"https://github.com/bfredl/nvim-miniyank","last_synced_at":"2025-04-09T20:10:18.445Z","repository":{"id":54971252,"uuid":"52742552","full_name":"bfredl/nvim-miniyank","owner":"bfredl","description":"killring-alike plugin for neovim and vim 8 with no default mappings","archived":false,"fork":false,"pushed_at":"2023-11-06T20:49:29.000Z","size":25,"stargazers_count":235,"open_issues_count":12,"forks_count":15,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-04T14:04:06.943Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bfredl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-02-28T20:34:43.000Z","updated_at":"2025-03-28T14:07:19.000Z","dependencies_parsed_at":"2024-01-03T03:29:50.988Z","dependency_job_id":"8b546807-5f93-4f91-b436-a514cd0e9201","html_url":"https://github.com/bfredl/nvim-miniyank","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfredl%2Fnvim-miniyank","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfredl%2Fnvim-miniyank/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfredl%2Fnvim-miniyank/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bfredl%2Fnvim-miniyank/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bfredl","download_url":"https://codeload.github.com/bfredl/nvim-miniyank/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103871,"owners_count":21048245,"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":[],"created_at":"2024-07-30T17:01:41.626Z","updated_at":"2025-04-09T20:10:18.418Z","avatar_url":"https://github.com/bfredl.png","language":"Lua","funding_links":[],"categories":["Lua","Utility","Register"],"sub_categories":["Cursorline","Assembly"],"readme":"# nvim-miniyank\n\nThe killring-alike plugin with no default mappings.\n\nWorks in neovim, as well as vim with lua enabled and patch 8.0.1394.\n\n# Usage\n\nYanks and deletes will be detected using `TextYankPost` autocommand, so no mappings for these actions are needed.\nThe yank history is shared between [n]vim instances.\n\nThere is two different mappings for starting to put from the history.\nTo remap `p`, \"autoput\" mapping should be used. This will first put the same text as unmapped \"p\" would have, and still support `\"xp` and `clipboard=unnamed[plus]`:\n\n    map p \u003cPlug\u003e(miniyank-autoput)\n    map P \u003cPlug\u003e(miniyank-autoPut)\n\n\"startput\" will directly put the most recent item in the shared history:\n\n    map \u003cleader\u003ep \u003cPlug\u003e(miniyank-startput)\n    map \u003cleader\u003eP \u003cPlug\u003e(miniyank-startPut)\n\nRight after a put, use \"cycle\" to go through history:\n\n    map \u003cleader\u003en \u003cPlug\u003e(miniyank-cycle)\n\nStepped too far? You can cycle back to more recent items using:\n\n    map \u003cleader\u003eN \u003cPlug\u003e(miniyank-cycleback)\n\nMaybe the register type was wrong? Well, you can change it after putting:\n\n    map \u003cLeader\u003ec \u003cPlug\u003e(miniyank-tochar)\n    map \u003cLeader\u003el \u003cPlug\u003e(miniyank-toline)\n    map \u003cLeader\u003eb \u003cPlug\u003e(miniyank-toblock)\n\n# clipboard=unnamed register type fixing\nCurrently neovim doesn't have support for register types in the clipboard. This makes blockwise yanking and putting broken when `clipboard=unnamed` or `unnamedplus` is used. When this option is set, and \"p\" is mapped to \"autoput\" mappings as suggested above, this plugin will try to _correct_ the register type when an unnamed paste is done. It uses heuristics that _at least_ will work if you yank blockwise and then immediately paste unnamed in the same or another nvim instance.\n\nOf course, regardless if `clipboard=unnamed` is set or not, you can always do the correct paste using a \"startPut\" mapping, or cycling one step back in history when needed.\n\n# Throttling of big unnamed deletes\n\nThe plugin tries to avoid unnecessary copying on unnamed deletes (`d` or `c` with no preceeding `\"x`). Unnamed deletes with more than `g:miniyank_delete_maxlines` (default 1000) will be ignored. To force yanking, just add a register name, like `\"\"d` or `\"*d`.\n\n# Denite source\n\nIf Denite is installed, the yank history can be displayed using `:Denite miniyank`\n\n# FAQ\n\n## Does it work in vim 8?\n\nYes, if lua is enabled and with vim 8.1 or later. (Lua is not really intrinsically needed. One day I might implement the small necessary subset of msgpack directly in vimL.)\n\n## It doesn't work!\n\nThis plugin tries to autodetect a suitable file path for the shared yankring. `$XDG_RUNTIME_DIR` is used if set, otherwise  `stdpath('cache')` will be used. Check that `g:miniyank_filename` was set to a location that is both readable and writeable by your user account. If not, either fix your environment, or override it manually:\n\n\n    let g:miniyank_filename = $HOME.\"/.miniyank.mpack\"\n\n\n\n## Is python3 required?\n\nPython is only required for the optional Denite source. The rest of the plugin is pure vimscript.\n\n## 10 items? That is not close to be enough!\n\nHow about\n\n    let g:miniyank_maxitems = 100\n\n## It doesn't persist across reboots!\n\nSigh, just why? Okay, do\n\n    let g:miniyank_filename = $HOME.\"/.miniyank.mpack\"\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfredl%2Fnvim-miniyank","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbfredl%2Fnvim-miniyank","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbfredl%2Fnvim-miniyank/lists"}