From 3d1b0e17c9f2f2a66defef77af1383556db53fbd Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Mon, 28 Apr 2025 18:20:07 +0300 Subject: [PATCH] chore: add readme --- README.md | 29 +++++++++++++++++++++++++++++ main.lua | 13 +++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e69de29..e59778b 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,29 @@ +# vidir.yazi + +This plugin is a bulk-rename plugin using [vidir](https://linux.die.net/man/1/vidir). + +## Requirements + +- [yazi >= v25.2.7](https://github.com/sxyazi/yazi) +- [vidir](https://linux.die.net/man/1/vidir) (sometimes included in [moreutils](https://man.archlinux.org/listing/extra/moreutils/) package) + +## Installation + +```bash +ya pack -a kristoferssolo/vidir +``` + +## Usage + +Add this to your `~/.config/yazi/keymap.toml`: + +```toml +[[manager.prepend_keymap]] +on = "B" +run = [ "escape --visual", "plugin --sync vidir" ] +desc = "Bulk rename with vidir" +``` + +## License + +This plugin is MIT-licensed. For more information check the [LICENSE](LICENSE) file. diff --git a/main.lua b/main.lua index 8b2c5d9..5380243 100644 --- a/main.lua +++ b/main.lua @@ -1,14 +1,19 @@ +--- @sync entry + return { entry = function() local selected_items = cx.active.selected if #selected_items >= 1 then - local selected_urls = "" + -- For selected files, pass them directly to vidir + local files = "" for _, v in pairs(selected_items) do - selected_urls = selected_urls .. ya.quote(tostring(v)) + files = files .. ya.quote(tostring(v)) .. " " end - ya.manager_emit("shell", { 'vidir "$@"', block = true, confirm = true }) + + ya.manager_emit("shell", { "vidir " .. files, block = true, confirm = true }) else - ya.manager_emit("rename", { hovered = false, cursor = "before_ext" }) + -- If no selection, use current directory (.) + ya.manager_emit("shell", { "vidir .", block = true, confirm = true }) end end, }