several improvements
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
local custom_group = vim.api.nvim_create_augroup('custom', { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
group = custom_group,
|
||||
pattern = '*',
|
||||
callback = function()
|
||||
vim.highlight.on_yank({
|
||||
higroup = 'Visual',
|
||||
timeout = 100,
|
||||
})
|
||||
end,
|
||||
desc = 'Highlight on yank',
|
||||
})
|
||||
|
||||
-- Remove items from quickfix list.
|
||||
-- `dd` to delete in Normal
|
||||
-- `d` to delete Visual selection
|
||||
local function delete_qf_items()
|
||||
local mode = vim.api.nvim_get_mode()['mode']
|
||||
|
||||
local start_idx
|
||||
local count
|
||||
|
||||
if mode == 'n' then
|
||||
-- Normal mode
|
||||
start_idx = vim.fn.line('.')
|
||||
count = vim.v.count > 0 and vim.v.count or 1
|
||||
else
|
||||
-- Visual mode
|
||||
local v_start_idx = vim.fn.line('v')
|
||||
local v_end_idx = vim.fn.line('.')
|
||||
|
||||
start_idx = math.min(v_start_idx, v_end_idx)
|
||||
count = math.abs(v_end_idx - v_start_idx) + 1
|
||||
|
||||
-- Go back to normal
|
||||
vim.api.nvim_feedkeys(
|
||||
vim.api.nvim_replace_termcodes(
|
||||
'<esc>', -- what to escape
|
||||
true, -- Vim leftovers
|
||||
false, -- Also replace `<lt>`?
|
||||
true -- Replace keycodes (like `<esc>`)?
|
||||
),
|
||||
'x', -- Mode flag
|
||||
false -- Should be false, since we already `nvim_replace_termcodes()`
|
||||
)
|
||||
end
|
||||
|
||||
local qflist = vim.fn.getqflist()
|
||||
|
||||
for _ = 1, count, 1 do
|
||||
table.remove(qflist, start_idx)
|
||||
end
|
||||
|
||||
vim.fn.setqflist(qflist, 'r')
|
||||
vim.fn.cursor(start_idx, 1)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
group = custom_group,
|
||||
pattern = 'qf',
|
||||
callback = function()
|
||||
-- Do not show quickfix in buffer lists.
|
||||
vim.api.nvim_buf_set_option(0, 'buflisted', false)
|
||||
|
||||
-- Escape closes quickfix window.
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<ESC>',
|
||||
'<CMD>cclose<CR>',
|
||||
{ buffer = true, remap = false, silent = true }
|
||||
)
|
||||
|
||||
-- `dd` deletes an item from the list.
|
||||
vim.keymap.set('n', 'dd', delete_qf_items, { buffer = true })
|
||||
vim.keymap.set('x', 'd', delete_qf_items, { buffer = true })
|
||||
end,
|
||||
desc = 'Quickfix tweaks',
|
||||
})
|
||||
@@ -1,3 +1,4 @@
|
||||
require("nami.lazy")
|
||||
require("nami.remap")
|
||||
require("nami.autocmd")
|
||||
require("nami.set")
|
||||
|
||||
+10
-4
@@ -38,18 +38,23 @@ local plugins = {
|
||||
dependencies = { "nvim-lua/plenary.nvim" }
|
||||
},
|
||||
"mbbill/undotree",
|
||||
{
|
||||
"tpope/vim-fugitive",
|
||||
lazy = true
|
||||
},
|
||||
{
|
||||
"subnut/nvim-ghost.nvim",
|
||||
-- "unblevable/quick-scope",
|
||||
lazy = true
|
||||
},
|
||||
{
|
||||
"andweeb/presence.nvim",
|
||||
lazy = true
|
||||
},
|
||||
"numToStr/Comment.nvim",
|
||||
-- "echasnovski/mini.align",
|
||||
{
|
||||
'stevearc/oil.nvim',
|
||||
-- Optional dependencies
|
||||
dependencies = { { "nvim-mini/mini.icons", opts = {} } },
|
||||
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons
|
||||
-- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations.
|
||||
lazy = false,
|
||||
},
|
||||
{
|
||||
@@ -76,6 +81,7 @@ local plugins = {
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
lazy = true
|
||||
},
|
||||
{
|
||||
"goolord/alpha-nvim",
|
||||
|
||||
+4
-1
@@ -24,7 +24,8 @@ vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- greatest remap ever
|
||||
vim.keymap.set("x", "<leader>p", "\"_dP")
|
||||
vim.keymap.set("x", "<leader>P", "\"_dP")
|
||||
vim.keymap.set("x", "<leader>p", "\"_dp")
|
||||
|
||||
-- next greatest remap ever : asbjornHaland
|
||||
-- to void register (system)
|
||||
@@ -106,3 +107,5 @@ end
|
||||
-- the QF list
|
||||
vim.keymap.set("n", "dd", del_qf_item, { silent = true, buffer = true, desc = "Remove entry from QF" })
|
||||
vim.keymap.set("v", "D", del_qf_item, { silent = true, buffer = true, desc = "Remove entry from QF" })
|
||||
|
||||
vim.keymap.set("n", "<C-q>", "<cmd>copen<CR>");
|
||||
|
||||
Reference in New Issue
Block a user