It feels far more natural to me than lightspeed.nvim and leap.nvim. I should probably time myself, but I feel like I'm jumping around at least 4x as fast leap.nvim et al, but without even thinking. At all. It's that natural.
- Makes you feel faster than the Yellow Flash of the Hidden Leaf who killed
100050 shinobi within seconds by flashing around. - Type in as many characters as you want, not some semi-arbitrary number.
- Stabilizes on a single jump character very quickly.
- Minimizes information overload.
- Bidirectional and smartcase design by default. I argued here why using unidirectional/case-sensitive matching is very, very suboptimal (only 2 bits of information for 2 additional key presses!). It's kind of like Golomb coding (i.e. unary code of up to length 2 + fixed-length code) when a fixed-length code on its own would be far more efficient.
- Information theoretically ideal for the average scenario. (Just kidding, I haven't proved it rigorously or anything. In fact, even if it turns out not to be "ideal", it's so ergonomic that it's well worth a few wasted bits.) In contrast, lightspeed/leap seem like they were designed for the unlikely or exceptional scenario (for which they are, admittedly, decent), even at significant cost to much more common scenarios. If I ever encounter an exceptional scenario, I can always fall back on regular vim motions anyways, so I don't see the point of optimizing for the rare case.
...It's exactly how I would have designed such a navigation plugin I had time to create one, and addresses some things I would have liked to see in its predecessors. Actually, it's a bit better than what I would have come up with. I mean, it's a folke plugin. Simultaneously stellar engineering and design.
I tried this on Colemak and now my world is upside down.
For autoformatting, try an autocmd:
autocmd BufWritePre * lua vim.lsp.buf.format()
Or alternatively, I use:
autocmd BufWritePre * lua require("utils").format()
-- Formats the current buffer
function utils.format()
local whitelist = { "python", "rust" }
if vim.tbl_contains(whitelist, vim.bo.filetype) then
vim.lsp.buf.format()
end
end
Not sure if this helps, but here's my ordering:
sorting = {
priority_weight = 2,
comparators = {
require("copilot_cmp.comparators").prioritize,
compare.offset,
compare.exact,
compare.recently_used,
compare.score,
compare.scopes,
compare.locality,
compare.kind,
compare.sort_text,
compare.length,
compare.order,
},
},
...Realistically copilot is so good that it knows what the next word I'm completing is without even typing in a single character, so this doesn't bother me like it used to.
I've read parts of this. People I've recommended it to tell me that it's easier to read if you already know the topics beforehand. I don't disagree, but it's still nice to see what a "20 page crash course" in any given area of mathematics looks like.
Aw man, my prime number classifier is only 4.879% accurate. :(
Have you tried Krita?