.dotfiles/.config/vim/vimrc
2021-02-13 23:44:03 +01:00

170 lines
4 KiB
VimL

set runtimepath+=~/.config/vim,~/.config/vim/after
if has('nvim')
" Neovim specific commands
set viminfo+=n~/.cache/nviminfo
else
" Standard vim specific commands
set viminfo+=n~/.cache/viminfo
endif
" Plug plugins using VimPlug
call plug#begin('~/.config/vim/plugged')
Plug 'editorconfig/editorconfig-vim'
Plug 'airblade/vim-gitgutter'
Plug 'samoshkin/vim-mergetool'
Plug 'fidian/hexmode'
Plug 'scrooloose/nerdtree'
Plug 'itchyny/lightline.vim'
Plug 'nanotech/jellybeans.vim'
Plug 'scrooloose/syntastic'
Plug 'sersorrel/vim-lilypond'
Plug 'vim-scripts/DoxygenToolkit.vim'
Plug 'drmikehenry/vim-headerguard'
Plug 'sirtaj/vim-openscad'
Plug 'cespare/vim-toml'
Plug 'posva/vim-vue'
Plug 'lervag/vimtex'
Plug 'fatih/vim-go'
Plug 'machakann/vim-swap'
Plug 'tpope/vim-sleuth'
Plug 'neoclide/coc.nvim', { 'branch': 'release' }
call plug#end()
packadd termdebug
set number relativenumber
set splitbelow splitright
let mapleader = " "
augroup numbertoggle
autocmd!
autocmd WinEnter * set relativenumber
autocmd WinLeave * set norelativenumber
augroup END
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set modeline
set laststatus=2
set encoding=utf-8
set nowrap
set wildmode=longest,list,full
set fillchars+=vert:\
runtime ftplugin/man.vim
set keywordprg=:Man
if has("autocmd")
" Save cursor position. I don't understand this part
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif
au BufNewFile,BufRead neomutt-* setf mail
au FileType yaml setlocal ai tabstop=2 shiftwidth=2 expandtab cuc nu
au FileType lilypond au BufWritePost * !lilypond %
au FileType dot au BufWritePost * !dot -Tpng -O %
endif
map <leader>b :Break<CR>
map <leader>n :NERDTreeToggle<CR>
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:lightline = {
\ 'active': {
\ 'left': [
\ [ 'mode', 'paste' ],
\ [ 'readonly', 'filename', 'modified', 'gitbranch' ]
\ ],
\ 'right': [
\ [ 'bufnum', 'percent', 'lineinfo' ],
\ [ 'fileformat', 'fileencoding', 'filetype', 'synthastic' ],
\ [ 'charvaluehex' ]
\ ]
\ },
\ 'inactive': {
\ 'left': [
\ [ 'filename' ]
\ ],
\ 'right': [
\ [ 'lineinfo' ],
\ [ 'bufnum' ]
\ ]
\ },
\ 'component': {
\ 'charvaluehex': '0x%B',
\ 'bufnum': '%n'
\ },
\ 'component_function': {
\ 'synthastic': 'SyntasticStatuslineFlag',
\ 'gitbranch': 'fugitive#head'
\ },
\ }
if has('termguicolors') && &termguicolors
let g:jellybeans_overrides['background']['guibg'] = 'none'
endif
let g:jellybeans_overrides = {
\ 'Todo': {
\ 'guifg': '303030',
\ 'guibg': 'f0f000',
\ 'ctermfg': 'Black',
\ 'ctermbg': 'Yellow',
\ 'attr': 'bold'
\ },
\ 'Comment': { 'guifg': 'cccccc' },
\ 'LineNr': { 'guifg': 'aaaaaa' },
\ 'background': {
\ 'ctermbg': 'none',
\ '256ctermbg': 'none'
\ },
\ }
colorscheme jellybeans
let g:syntastic_always_populate_loc_list = 0
let g:syntastic_auto_loc_list = 0
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
let g:syntastic_oclint_config_file = '.syntastic_oclint_config'
let g:syntastic_c_config_file = '.syntastic_cc_config'
let g:tex_flavor = 'latex'
let g:vimtex_compiler_latexmk = {
\ 'build_dir': 'latexmk_output'
\}
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
inoremap <silent><expr> <C-space> coc#refresh()
"GoTo code navigation
nmap <leader>g <C-o>
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gt <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
nmap <leader>rn <Plug>(coc-rename)
"show all diagnostics.
nnoremap <silent> <leader>d :<C-u>CocList diagnostics<cr>
"manage extensions.
nnoremap <silent> <leader>e :<C-u>CocList extensions<cr>