nvim-macros is your go-to Neovim plugin for supercharging your macro game! 🚀 It's all about making macro management in Neovim a breeze. Say goodbye to the fuss and hello to efficiency! This plugin lets you save, yank, and run your macros like a pro, and even handles those pesky special characters with ease.
Time to get nvim-macros into your Neovim setup! If you're rolling with lazy.nvim, just pop this line into your plugin configuration:
{
"kr40/nvim-macros",
cmd = {"MacroSave", "MacroYank", "MacroSelect", "MacroDelete"},
opts = {
json_file_path = vim.fs.normalize(vim.fn.stdpath("config") .. "/macros.json"), -- Location where the macros will be stored
default_macro_register = "q", -- Use as default register for :MacroYank and :MacroSave and :MacroSelect Raw functions
json_formatter = "none", -- can be "none" | "jq" | "yq" used to pretty print the json file (jq or yq must be installed!)
}
}
Once you've got nvim-macros installed, Neovim is your macro playground! 🎉
Imagine you've got a nifty macro recorded in the q register that magically turns the current line into a to-do list item. After recording it, just summon :MacroYank q to yank the macro. Then, you can elegantly bind it to a key sequence in your Neovim setup like this:
vim.keymap.set('n', '<Leader>t', '^i-<Space>[<Space>]<Space><Esc>', { remap = true })
_📝 Note: We highly recommend setting remap = true to ensure your macro runs as smoothly as if you were performing a magic trick yourself!_
nvim-macros loves to fit in just right. Set up your custom options like so:
require('nvim-macros').setup({
json_file_path = "/your/very/own/path/to/macros.json",
default_macro_register = "a",
json_formatter = "jq",
})
Fine with the defaults? No worries! nvim-macros will go with the flow and use the defaults no need to call setup
or opts
.
Got ideas? Found a bug? Jump in and contribute! Whether it's a pull request or a hearty discussion in the issues, your input is what makes the nvim-macros party rock.
nvim-macros is on a quest to make your Neovim experience even more magical! Here are some enchantments we're looking to add:
Macro Editing: Forge a way to edit your macros directly within Neovim. This will involve summoning a macro from the JSON grimoire into a buffer, weaving your edits, and then sealing the updated macro back into the tome.
Macro Tags/Categories: Introduce the mystic arts of tagging and categorizing your macros. This will allow you to filter and search through your macros based on their assigned tags or categories, managing your macro arsenal with unparalleled ease.
Macro Sharing/Importing: Develop an incantation to export and import macros, empowering you to share your macros with fellow sorcerers or swiftly set up your macro sanctum on a new system.
Macro Analytics: Offer a crystal ball to gaze into your macro usage, revealing insights such as the frequency of use, helping you to understand your workflow and refine your arsenal of macros.
Feel free to jump in and contribute if you're drawn to any of these upcoming features or if you have your own ideas to sprinkle some extra magic into nvim-macros! 🌟
nvim-macros didn't just spring out of thin air; it's been nurtured by some awesome ideas and projects in the Neovim community. Here's a shoutout to the sparks that ignited this project:
Big thanks to the creators and contributors of these projects! 🙏