Home

Awesome

nvim-macros 📝

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.

Why You'll Love nvim-macros 😍

Getting Started 🚀

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!)
    
  }
}

How to Use 🛠️

Once you've got nvim-macros installed, Neovim is your macro playground! 🎉

Example 🌟

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!

Making It Yours 🎨

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.

Join the Party 🎉

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.

To-Do 📝

nvim-macros is on a quest to make your Neovim experience even more magical! Here are some enchantments we're looking to add:

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! 🌟

Inspiration 🌱

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! 🙏