" XDG Specifications let rtp=&runtimepath set runtimepath=~/.config/vim let &runtimepath.=','.rtp.',~/.config/vim/after' set directory=~/.config/vim/swap//,.,~/tmp,/var/tmp,/tmp set backupdir=~/.config/vim/backup//,.,~/tmp,~/ set spellfile=~/.config/vim/spell/en.utf-8.add set viminfo+=n~/.config/vim/viminfo set viewdir=~/.config/vim/view/ set undodir=~/.config/vim/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()