From 150492bcb2d72ef19dd976f07f0c88788674ad5b Mon Sep 17 00:00:00 2001 From: tavo Date: Wed, 18 Dec 2024 14:06:36 -0600 Subject: [PATCH] modular custom vim --- .gitignore | 1 + X11/.gitignore | 1 + X11/xinitrc | 9 +- {vim => cvim}/.gitignore | 0 {vim => cvim}/after/ftplugin/c.vim | 0 {vim => cvim}/after/ftplugin/cpp.vim | 0 {vim => cvim}/after/ftplugin/css.vim | 0 {vim => cvim}/after/ftplugin/go.vim | 0 {vim => cvim}/after/ftplugin/html.vim | 0 {vim => cvim}/after/plugin/nohiquickfix.vim | 0 {vim => cvim}/after/plugin/searchhi.vim | 0 {vim => cvim}/after/plugin/terminalbg.vim | 0 {vim => cvim}/backup/.gitignore | 0 {vim => cvim}/plugged/.gitignore | 0 {vim => cvim}/spell/.gitignore | 0 {vim => cvim}/swap/.gitignore | 0 {vim => cvim}/undo/.gitignore | 0 {vim => cvim}/view/.gitignore | 0 cvim/vimrc | 213 ++++++++++++++++++++ vim/vimrc | 76 ------- 20 files changed, 221 insertions(+), 79 deletions(-) create mode 100644 X11/.gitignore rename {vim => cvim}/.gitignore (100%) rename {vim => cvim}/after/ftplugin/c.vim (100%) rename {vim => cvim}/after/ftplugin/cpp.vim (100%) rename {vim => cvim}/after/ftplugin/css.vim (100%) rename {vim => cvim}/after/ftplugin/go.vim (100%) rename {vim => cvim}/after/ftplugin/html.vim (100%) rename {vim => cvim}/after/plugin/nohiquickfix.vim (100%) rename {vim => cvim}/after/plugin/searchhi.vim (100%) rename {vim => cvim}/after/plugin/terminalbg.vim (100%) rename {vim => cvim}/backup/.gitignore (100%) rename {vim => cvim}/plugged/.gitignore (100%) rename {vim => cvim}/spell/.gitignore (100%) rename {vim => cvim}/swap/.gitignore (100%) rename {vim => cvim}/undo/.gitignore (100%) rename {vim => cvim}/view/.gitignore (100%) create mode 100644 cvim/vimrc diff --git a/.gitignore b/.gitignore index 5a5d18a..b3c3cde 100644 --- a/.gitignore +++ b/.gitignore @@ -252,3 +252,4 @@ ParaView/ VirtualBox/ knfsshare lazygit/ +glow/ diff --git a/X11/.gitignore b/X11/.gitignore new file mode 100644 index 0000000..ae70e85 --- /dev/null +++ b/X11/.gitignore @@ -0,0 +1 @@ +xinitrc.* diff --git a/X11/xinitrc b/X11/xinitrc index 7924307..57bd6fd 100644 --- a/X11/xinitrc +++ b/X11/xinitrc @@ -26,11 +26,14 @@ dwmblocks & clipmenud & dunst & picom --experimental-backends --animation-for-open-window=zoom & -clear & -#xrandr --output DVI-D-0 --right-of HDMI-0 -hsetroot -cover /home/tavo/Pictures/Backgrounds/default.jpg & emacs --daemon & dropbox & +clear & + +# Multiple displays, add this into xinitrc.displays: +# xrandr --output DVI-D-0 --right-of HDMI-0 +[ -f "$HOME/.config/X11/xinitrc.displays" ] && . /home/tavo/.config/X11/xinitrc.displays +hsetroot -cover "$HOME/Pictures/Backgrounds/default.jpg" & sleep 0.2 while true; do diff --git a/vim/.gitignore b/cvim/.gitignore similarity index 100% rename from vim/.gitignore rename to cvim/.gitignore diff --git a/vim/after/ftplugin/c.vim b/cvim/after/ftplugin/c.vim similarity index 100% rename from vim/after/ftplugin/c.vim rename to cvim/after/ftplugin/c.vim diff --git a/vim/after/ftplugin/cpp.vim b/cvim/after/ftplugin/cpp.vim similarity index 100% rename from vim/after/ftplugin/cpp.vim rename to cvim/after/ftplugin/cpp.vim diff --git a/vim/after/ftplugin/css.vim b/cvim/after/ftplugin/css.vim similarity index 100% rename from vim/after/ftplugin/css.vim rename to cvim/after/ftplugin/css.vim diff --git a/vim/after/ftplugin/go.vim b/cvim/after/ftplugin/go.vim similarity index 100% rename from vim/after/ftplugin/go.vim rename to cvim/after/ftplugin/go.vim diff --git a/vim/after/ftplugin/html.vim b/cvim/after/ftplugin/html.vim similarity index 100% rename from vim/after/ftplugin/html.vim rename to cvim/after/ftplugin/html.vim diff --git a/vim/after/plugin/nohiquickfix.vim b/cvim/after/plugin/nohiquickfix.vim similarity index 100% rename from vim/after/plugin/nohiquickfix.vim rename to cvim/after/plugin/nohiquickfix.vim diff --git a/vim/after/plugin/searchhi.vim b/cvim/after/plugin/searchhi.vim similarity index 100% rename from vim/after/plugin/searchhi.vim rename to cvim/after/plugin/searchhi.vim diff --git a/vim/after/plugin/terminalbg.vim b/cvim/after/plugin/terminalbg.vim similarity index 100% rename from vim/after/plugin/terminalbg.vim rename to cvim/after/plugin/terminalbg.vim diff --git a/vim/backup/.gitignore b/cvim/backup/.gitignore similarity index 100% rename from vim/backup/.gitignore rename to cvim/backup/.gitignore diff --git a/vim/plugged/.gitignore b/cvim/plugged/.gitignore similarity index 100% rename from vim/plugged/.gitignore rename to cvim/plugged/.gitignore diff --git a/vim/spell/.gitignore b/cvim/spell/.gitignore similarity index 100% rename from vim/spell/.gitignore rename to cvim/spell/.gitignore diff --git a/vim/swap/.gitignore b/cvim/swap/.gitignore similarity index 100% rename from vim/swap/.gitignore rename to cvim/swap/.gitignore diff --git a/vim/undo/.gitignore b/cvim/undo/.gitignore similarity index 100% rename from vim/undo/.gitignore rename to cvim/undo/.gitignore diff --git a/vim/view/.gitignore b/cvim/view/.gitignore similarity index 100% rename from vim/view/.gitignore rename to cvim/view/.gitignore diff --git a/cvim/vimrc b/cvim/vimrc new file mode 100644 index 0000000..92f792a --- /dev/null +++ b/cvim/vimrc @@ -0,0 +1,213 @@ +" XDG Specifications +let rtp=&runtimepath +set runtimepath=~/.config/cvim +let &runtimepath.=','.rtp.',~/.config/cvim/after' +set directory=~/.config/cvim/swap//,.,~/tmp,/var/tmp,/tmp +set backupdir=~/.config/cvim/backup//,.,~/tmp,~/ +set spellfile=~/.config/cvim/spell/en.utf-8.add +set viminfo+=n~/.config/cvim/viminfo +set viewdir=~/.config/cvim/view/ +set undodir=~/.config/cvim/undo//,. + +" Preferences +let mapleader = "\" +set list listchars=tab:⎸\ ,trail:~ +set clipboard=unnamedplus +set gp=git\ grep\ -n +set shellcmdflag=-c +set encoding=utf-8 +set relativenumber +filetype plugin on +set shiftwidth=4 +set nocompatible +set cursorline +set ignorecase +set smartcase +set expandtab +set autoread +set wildmenu +set hlsearch +set swapfile +set undofile +set mouse=a +set showcmd +set number +syntax on + +if (empty($TMUX) && getenv('TERM_PROGRAM') != 'Apple_Terminal') + if (has("nvim")) + let $NVIM_TUI_ENABLE_TRUE_COLOR=1 + endif + if (has("termguicolors")) + set termguicolors + endif +endif + +" Keybinds +noremap :setlocal spell! spelllang=en +noremap :setlocal spell! spelllang=es +noremap :TagbarToggle +noremap !!$SHELL +noremap :bn +noremap :bd +noremap :w +noremap 5< +noremap 5- +noremap 5+ +noremap 5> +noremap H :nohl +noremap za + +autocmd BufWinLeave *.* mkview + +" QuickFix +autocmd QuickFixCmdPost [^l]* nested cwindow +autocmd QuickFixCmdPost l* nested lwindow +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 n :call WrapQuickfixNext() +nnoremap p :call WrapQuickfixPrev() +nnoremap m :make +nnoremap :make + +" c/c++ +autocmd FileType c :compiler gcc | setlocal makeprg=gcc\ -Wall\ -c\ % +autocmd FileType cpp :compiler gcc | setlocal makeprg=g++\ -Wall\ -c\ % + +" groff +autocmd FileType troff noremap :!zathura --fork %:r.pdf & disown +autocmd FileType troff noremap :w :!grofftex % + +" Python +autocmd FileType python noremap :!python % + +function! SetMakeprg() + if filereadable('Makefile') + set makeprg=make + else + endif +endfunction +autocmd VimEnter * call SetMakeprg() + +" Functions + +"Open a shell on a vertical split +set splitright +function OpenTerminal() + execute "normal \" + execute "normal \" + execute "normal \" + execute "normal \" + + let bufNum = bufnr("%") + let bufType = getbufvar(bufNum, "&buftype", "not found") + + if bufType == "terminal" + execute "q" + else + execute "bot sp term://bash" + execute "resize -8" + execute "set nonu" + execute "set nornu" + silent au BufLeave stopinsert! + silent au BufWinEnter,WinEnter startinsert! + execute "tnoremap " + execute "tnoremap :q" + execute "tnoremap " + execute "IndentLinesDisable" + + startinsert! + endif +endfunction +nnoremap :call OpenTerminal() + +" Plugins +if empty(glob('~/.config/cvim/autoload/plug.vim')) + silent !curl -fLo ~/.config/cvim/autoload/plug.vim --create-dirs + \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + autocmd VimEnter * PlugInstall --sync | source '~/.config/cvim/vimrc' +endif + +call plug#begin() +Plug 'vim-airline/vim-airline-themes' +Plug 'norcalli/nvim-colorizer.lua' +Plug 'vim-scripts/AutoComplPop' +Plug 'vim-airline/vim-airline' +Plug 'ryanoasis/vim-devicons' +Plug 'airblade/vim-gitgutter' +Plug 'rhysd/vim-clang-format' +Plug 'jiangmiao/auto-pairs' +Plug 'tpope/vim-commentary' +Plug 'Yggdroot/indentLine' +Plug 'preservim/nerdtree' +Plug 'godlygeek/tabular' +Plug 'Gavinok/vim-troff' +Plug 'ibhagwan/fzf-lua' +Plug 'preservim/tagbar' +" Plug 'morhetz/gruvbox' +Plug 'sainnhe/gruvbox-material' +Plug 'jceb/vim-orgmode' +Plug 'mikelue/vim-maven-plugin' +call plug#end() + +" gruvbox-material +set background=dark +let g:gruvbox_material_background = 'hard' +colorscheme gruvbox-material + +" AutoComplPop +inoremap pumvisible() ? "" : "" +set completeopt=menuone,longest +set complete+=kspell + +" Airline +let g:airline#extensions#tabline#buffer_min_count = 1 +let g:airline#extensions#tabline#enabled = 1 +let g:airline_powerline_fonts = 1 +set ttimeout ttimeoutlen=0 +set laststatus=2 +set noshowmode + +" NERDTree +nnoremap :NERDTreeToggle + +" IndentLine +let g:indentLine_enabled = 1 +let g:indentLine_char = '⎸' + +" fzf-lua +noremap :FzfLua git_branches +noremap :FzfLua git_commits +noremap :FzfLua git_status +noremap :FzfLua files +noremap gb :FzfLua git_branches +noremap gs :FzfLua git_status +noremap gf :FzfLua files + +" git-gutter +highlight GitGutterChange guifg=#7daea3 ctermfg=3 +highlight GitGutterDelete guifg=#ea6962 ctermfg=1 +highlight GitGutterAdd guifg=#a9b665 ctermfg=2 +highlight SignColumn guibg=NONE ctermbg=NONE +let g:gitgutter_set_sign_backgrounds = 1 +noremap gd :GitGutterToggle +set signcolumn=yes +set updatetime=100 + +" vim-clang-format +let g:clang_format#code_style = 'llvm' diff --git a/vim/vimrc b/vim/vimrc index 86b70bb..b21751d 100644 --- a/vim/vimrc +++ b/vim/vimrc @@ -135,79 +135,3 @@ function OpenTerminal() endif endfunction nnoremap :call OpenTerminal() - -" Plugins -if empty(glob('~/.config/vim/autoload/plug.vim')) - silent !curl -fLo ~/.config/vim/autoload/plug.vim --create-dirs - \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - autocmd VimEnter * PlugInstall --sync | source '~/.config/vim/vimrc' -endif - -call plug#begin() -Plug 'vim-airline/vim-airline-themes' -Plug 'norcalli/nvim-colorizer.lua' -Plug 'vim-scripts/AutoComplPop' -Plug 'vim-airline/vim-airline' -Plug 'ryanoasis/vim-devicons' -Plug 'airblade/vim-gitgutter' -Plug 'rhysd/vim-clang-format' -Plug 'jiangmiao/auto-pairs' -Plug 'tpope/vim-commentary' -Plug 'Yggdroot/indentLine' -Plug 'preservim/nerdtree' -Plug 'godlygeek/tabular' -Plug 'Gavinok/vim-troff' -Plug 'ibhagwan/fzf-lua' -Plug 'preservim/tagbar' -" Plug 'morhetz/gruvbox' -Plug 'sainnhe/gruvbox-material' -Plug 'jceb/vim-orgmode' -Plug 'mikelue/vim-maven-plugin' -call plug#end() - -" gruvbox-material -set background=dark -let g:gruvbox_material_background = 'hard' -colorscheme gruvbox-material - -" AutoComplPop -inoremap pumvisible() ? "" : "" -set completeopt=menuone,longest -set complete+=kspell - -" Airline -let g:airline#extensions#tabline#buffer_min_count = 1 -let g:airline#extensions#tabline#enabled = 1 -let g:airline_powerline_fonts = 1 -set ttimeout ttimeoutlen=0 -set laststatus=2 -set noshowmode - -" NERDTree -nnoremap :NERDTreeToggle - -" IndentLine -let g:indentLine_enabled = 1 -let g:indentLine_char = '⎸' - -" fzf-lua -noremap :FzfLua git_branches -noremap :FzfLua git_commits -noremap :FzfLua git_status -noremap :FzfLua files -noremap gb :FzfLua git_branches -noremap gs :FzfLua git_status -noremap gf :FzfLua files - -" git-gutter -highlight GitGutterChange guifg=#7daea3 ctermfg=3 -highlight GitGutterDelete guifg=#ea6962 ctermfg=1 -highlight GitGutterAdd guifg=#a9b665 ctermfg=2 -highlight SignColumn guibg=NONE ctermbg=NONE -let g:gitgutter_set_sign_backgrounds = 1 -noremap gd :GitGutterToggle -set signcolumn=yes -set updatetime=100 - -" vim-clang-format -let g:clang_format#code_style = 'llvm'