feat(nvim): hydra improvements
This commit is contained in:
parent
6f7d4c5b09
commit
e543f82554
@ -51,7 +51,7 @@ hydra({
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
mode = { "n", "x" },
|
mode = { "n", "x" },
|
||||||
body = "<leader>G",
|
body = "<leader>hg",
|
||||||
heads = {
|
heads = {
|
||||||
{
|
{
|
||||||
"J",
|
"J",
|
||||||
@ -117,16 +117,15 @@ hydra({
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- Hydra for diagrams
|
-- Hydra for diagrams
|
||||||
local hint = [[
|
|
||||||
|
hydra({
|
||||||
|
name = "Draw Diagram",
|
||||||
|
hint = [[
|
||||||
Arrow^^^^^^ Select region with <C-v>
|
Arrow^^^^^^ Select region with <C-v>
|
||||||
^ ^ _K_ ^ ^ _f_: surround it with box
|
^ ^ _K_ ^ ^ _f_: surround it with box
|
||||||
_H_ ^ ^ _L_
|
_H_ ^ ^ _L_
|
||||||
^ ^ _J_ ^ ^ _<Esc>_
|
^ ^ _J_ ^ ^ _<Esc>_
|
||||||
]]
|
]] ,
|
||||||
|
|
||||||
hydra({
|
|
||||||
name = "Draw Diagram",
|
|
||||||
hint = hint,
|
|
||||||
config = {
|
config = {
|
||||||
color = "pink",
|
color = "pink",
|
||||||
invoke_on_body = true,
|
invoke_on_body = true,
|
||||||
@ -140,7 +139,7 @@ hydra({
|
|||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
mode = "n",
|
mode = "n",
|
||||||
body = "<leader>D",
|
body = "<leader>hd",
|
||||||
heads = {
|
heads = {
|
||||||
{ "H", "<C-v>h:VBox<CR>" },
|
{ "H", "<C-v>h:VBox<CR>" },
|
||||||
{ "J", "<C-v>j:VBox<CR>" },
|
{ "J", "<C-v>j:VBox<CR>" },
|
||||||
@ -150,3 +149,125 @@ hydra({
|
|||||||
{ "<Esc>", nil, { exit = true } },
|
{ "<Esc>", nil, { exit = true } },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
hydra({
|
||||||
|
name = "Options",
|
||||||
|
hint = [[
|
||||||
|
^ ^ Options
|
||||||
|
^
|
||||||
|
_v_ %{ve} virtual edit
|
||||||
|
_i_ %{list} invisible characters
|
||||||
|
_s_ %{spell} spell
|
||||||
|
_w_ %{wrap} wrap
|
||||||
|
_c_ %{cul} cursor line
|
||||||
|
_n_ %{nu} number
|
||||||
|
_r_ %{rnu} relative number
|
||||||
|
^
|
||||||
|
^^^^ _<Esc>_
|
||||||
|
]] ,
|
||||||
|
config = {
|
||||||
|
color = "amaranth",
|
||||||
|
invoke_on_body = true,
|
||||||
|
hint = {
|
||||||
|
border = "rounded",
|
||||||
|
position = "middle",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
mode = { "n", "x" },
|
||||||
|
body = "<leader>ho",
|
||||||
|
heads = {
|
||||||
|
{
|
||||||
|
"n",
|
||||||
|
function()
|
||||||
|
if vim.o.number == true then
|
||||||
|
vim.o.number = false
|
||||||
|
else
|
||||||
|
vim.o.number = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "number" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"r",
|
||||||
|
function()
|
||||||
|
if vim.o.relativenumber == true then
|
||||||
|
vim.o.relativenumber = false
|
||||||
|
else
|
||||||
|
vim.o.number = true
|
||||||
|
vim.o.relativenumber = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "relativenumber" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"v",
|
||||||
|
function()
|
||||||
|
if vim.o.virtualedit == "all" then
|
||||||
|
vim.o.virtualedit = "block"
|
||||||
|
else
|
||||||
|
vim.o.virtualedit = "all"
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "virtualedit" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"i",
|
||||||
|
function()
|
||||||
|
if vim.o.list == true then
|
||||||
|
vim.o.list = false
|
||||||
|
else
|
||||||
|
vim.o.list = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "show invisible" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"s",
|
||||||
|
function()
|
||||||
|
if vim.o.spell == true then
|
||||||
|
vim.o.spell = false
|
||||||
|
else
|
||||||
|
vim.o.spell = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "spell" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"w",
|
||||||
|
function()
|
||||||
|
if vim.o.wrap ~= true then
|
||||||
|
vim.o.wrap = true
|
||||||
|
-- Dealing with word wrap:
|
||||||
|
-- If cursor is inside very long line in the file than wraps
|
||||||
|
-- around several rows on the screen, then 'j' key moves you to
|
||||||
|
-- the next line in the file, but not to the next row on the
|
||||||
|
-- screen under your previous position as in other editors. These
|
||||||
|
-- bindings fixes this.
|
||||||
|
vim.keymap.set("n", "k", function()
|
||||||
|
return vim.v.count > 0 and "k" or "gk"
|
||||||
|
end, { expr = true, desc = "k or gk" })
|
||||||
|
vim.keymap.set("n", "j", function()
|
||||||
|
return vim.v.count > 0 and "j" or "gj"
|
||||||
|
end, { expr = true, desc = "j or gj" })
|
||||||
|
else
|
||||||
|
vim.o.wrap = false
|
||||||
|
vim.keymap.del("n", "k")
|
||||||
|
vim.keymap.del("n", "j")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "wrap" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"c",
|
||||||
|
function()
|
||||||
|
if vim.o.cursorline == true then
|
||||||
|
vim.o.cursorline = false
|
||||||
|
else
|
||||||
|
vim.o.cursorline = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ desc = "cursor line" },
|
||||||
|
},
|
||||||
|
{ "<Esc>", nil, { exit = true } },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user