From 88d6f34751e04423126f6f33c00fef0236bf1362 Mon Sep 17 00:00:00 2001 From: Ivar Fatland Date: Fri, 3 Oct 2025 22:00:42 +0200 Subject: [PATCH] make jump to first/last qflist item work as it should --- nvim/.config/nvim/init.lua | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index b8059d1..506eb73 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -28,8 +28,6 @@ vim.cmd [[ nnoremap ,cc :cclose nnoremap ,cq :call setqflist([]):cclose nnoremap ,ct :call setqflist([{'filename': expand('%'), 'lnum': line('.'), 'col': col('.'), 'text': 'TODO'}], 'a') - nnoremap ,cf :cfirst - nnoremap ,cl :clast nnoremap :cnextzz nnoremap :cpreviouszz nnoremap ,cu :colder @@ -71,6 +69,30 @@ vim.cmd [[ set wildignore=*.o,*.obj,.git/**,tags,*.pyc ]] +vim.keymap.set('n', ',cf', function() + local qf = vim.fn.getqflist() + for i, item in ipairs(qf) do + if item.valid == 1 then + vim.cmd('cc '..i) + return + end + end + print('no jumpable items') +end) + +vim.keymap.set('n', ',cl', function() + local qf = vim.fn.getqflist() + for i = #qf, 1, -1 do + local item = qf[i] + if item.valid == 1 then + vim.cmd('cc '..i) + return + end + end + print('no jumpable items') +end) + + vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile'