137 lines
3.4 KiB
VimL
137 lines
3.4 KiB
VimL
" 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 = "\<Space>"
|
|
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 <F5> :setlocal spell! spelllang=en<CR>
|
|
noremap <F6> :setlocal spell! spelllang=es<CR>
|
|
noremap <F8> :TagbarToggle<CR>
|
|
noremap <C-e> !!$SHELL<CR>
|
|
noremap <tab> :bn<CR>
|
|
noremap <C-c> :bd<CR>
|
|
noremap <C-s> :w<CR>
|
|
noremap <A-h> 5<C-w><
|
|
noremap <A-j> 5<C-w>-
|
|
noremap <A-k> 5<C-w>+
|
|
noremap <A-l> 5<C-w>>
|
|
noremap H :nohl<CR>
|
|
noremap <leader><Space> 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 <silent> <Leader>n :call WrapQuickfixNext()<CR>
|
|
nnoremap <silent> <Leader>p :call WrapQuickfixPrev()<CR>
|
|
nnoremap <leader>m :make<CR><CR>
|
|
nnoremap <F9> :make<CR><CR>
|
|
|
|
" 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 <buffer> <silent> <F9> :!zathura --fork %:r.pdf<CR> & disown
|
|
autocmd FileType troff noremap <buffer> <C-s> :w<CR> :!grofftex %<CR><CR>
|
|
|
|
" Python
|
|
autocmd FileType python noremap <buffer> <F9> :!python %<CR>
|
|
|
|
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 \<C-l>"
|
|
execute "normal \<C-l>"
|
|
execute "normal \<C-l>"
|
|
execute "normal \<C-l>"
|
|
|
|
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 <buffer> stopinsert!
|
|
silent au BufWinEnter,WinEnter <buffer> startinsert!
|
|
execute "tnoremap <buffer> <C-h> <C-\\><C-n><C-w><C-h>"
|
|
execute "tnoremap <buffer> <C-t> <C-\\><C-n>:q<CR>"
|
|
execute "tnoremap <buffer> <C-\\><C-\\> <C-\\><C-n>"
|
|
execute "IndentLinesDisable"
|
|
|
|
startinsert!
|
|
endif
|
|
endfunction
|
|
nnoremap <C-t> :call OpenTerminal()<CR>
|