Maintain a project-local list of special files to access with ease.
Using Neovim's built-in package manager:
vim.pack.add({
{
src = "https://github.com/yilisharcs/quarrel.nvim",
},
})Using lazy.nvim:
{
"yilisharcs/quarrel.nvim",
}Below are the available options and their default values:
vim.g.quarrel = {
-- Where all arg data is stored.
database = vim.fs.joinpath(vim.fn.stdpath("data"), "quarrel/arglists.msgpack"),
-- Five opt-in keymaps I believe make for a good workflow.
-- See for yourself: ./plugin/quarrel.lua:26
keymaps = false,
}quarrel.nvim intends to fix a persistent issue in file navigation: alternate buffers can't cope with multiple files and global marks don't remember cursor position. This plugin leverages the built-in arglist to automatically manage these multiple files. Whenever you change directories, it'll save the arglist of the previous directory and load the next one's.
Tip
Leverage built-in Neovim features to make navigation more pleasant:
- Edit the previous or next arglist files with
[aanda] - Jump to the first or last arglist files with
[AandA] - Operate on the arglist with
:argdo
Important to note that this plugin does not:
- Change directories automatically. Use mini.misc with
setup_auto_root(). - Provide a UI to modify the arglist. Use fzf-lua with
:FzfLua args.
Note
quarrel.nvim was initially made to experiment with the arglist. Now it includes experimenting with the msgpack format since it takes less space than json and I wanted to see what it's like to use it. It will remain minimal.
Harpoon: https://github.com/ThePrimeagen/harpoon
This project is licensed under the Apache License 2.0.