From f5905bf8e90f6726bfc096ec7d195d584db69c41 Mon Sep 17 00:00:00 2001
From: tavo-wasd <gustavo@gustavocalvo.xyz>
Date: Fri, 24 May 2024 23:46:30 -0600
Subject: [PATCH] gruvbox-material

---
 vim/after/plugin/searchhi.vim   |  2 ++
 vim/after/plugin/terminalbg.vim |  2 +-
 vim/vimrc                       | 49 +++++++++++++++++++++++++--------
 3 files changed, 40 insertions(+), 13 deletions(-)
 create mode 100644 vim/after/plugin/searchhi.vim

diff --git a/vim/after/plugin/searchhi.vim b/vim/after/plugin/searchhi.vim
new file mode 100644
index 0000000..9c1dae0
--- /dev/null
+++ b/vim/after/plugin/searchhi.vim
@@ -0,0 +1,2 @@
+highlight Search guibg=#3c3836 gui=bold
+
diff --git a/vim/after/plugin/terminalbg.vim b/vim/after/plugin/terminalbg.vim
index e7941fb..a8dec21 100644
--- a/vim/after/plugin/terminalbg.vim
+++ b/vim/after/plugin/terminalbg.vim
@@ -1 +1 @@
-highlight Normal ctermbg=NONE
+highlight Normal ctermbg=NONE guibg=NONE
diff --git a/vim/vimrc b/vim/vimrc
index 57eb3bf..bd2ed05 100644
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -10,6 +10,7 @@ set viewdir=~/.config/vim/view/
 set undodir=~/.config/vim/undo//,.
 
 " Preferences
+let mapleader = "\<Space>"
 set list listchars=tab:⎸\ ,trail:~
 set clipboard=unnamedplus
 set shellcmdflag=-c
@@ -55,16 +56,40 @@ noremap <A-j> 5<C-w>-
 noremap <A-k> 5<C-w>+
 noremap <A-l> 5<C-w>>
 noremap H :nohl<CR>
-noremap <Space> za
-noremap N /@@@<CR>
+noremap <leader><Space> za
 
+" QuickFix
 autocmd QuickFixCmdPost [^l]* nested cwindow
 autocmd QuickFixCmdPost    l* nested lwindow
-noremap <leader>m :make<CR><CR>
-noremap <F9> :make<CR><CR>
-noremap <leader>p :cp<CR>
-noremap <leader>n :cn<CR>
-noremap n :cn<CR>
+autocmd QuickFixCmdPost     * if &ft ==# 'qf' | wincmd J | endif
+
+function! WrapQuickfixNext()
+    try
+        execute 'cnext'
+    catch /^Vim\%((\a\+)\)\=:E553/
+        cfirst
+    endtry
+endfunction
+function! WrapQuickfixPrev()
+    try
+        execute 'cprevious'
+    catch /^Vim\%((\a\+)\)\=:E553/
+        clast
+    endtry
+endfunction
+
+nnoremap <silent> <Leader>n :call WrapQuickfixNext()<CR>
+nnoremap <silent> <Leader>p :call WrapQuickfixPrev()<CR>
+nnoremap <leader>m :make<CR><CR>
+nnoremap <F9> :make<CR><CR>
+
+function! SetMakeprg()
+    if filereadable('Makefile')
+        set makeprg=make
+    else
+    endif
+endfunction
+autocmd VimEnter * call SetMakeprg()
 
 " c/c++
 autocmd FileType c :compiler gcc | setlocal makeprg=gcc\ -Wall\ -c\ %
@@ -132,14 +157,14 @@ Plug 'Yggdroot/indentLine'
 Plug 'preservim/nerdtree'
 Plug 'ibhagwan/fzf-lua'
 Plug 'preservim/tagbar'
-Plug 'morhetz/gruvbox'
+" Plug 'morhetz/gruvbox'
+Plug 'sainnhe/gruvbox-material'
 call plug#end()
 
-" Gruvbox
-let g:gruvbox_contrast_dark='hard'
-let g:gruvbox_italic=1
+" gruvbox-material
 set background=dark
-colorscheme gruvbox
+let g:gruvbox_material_background = 'hard'
+colorscheme gruvbox-material
 
 " AutoComplPop
 inoremap <expr> <Tab> pumvisible() ? "<C-y>" : "<Tab>"