" bootstrap vim-plug automagically if empty(glob('~/.local/share/nvim/site/autoload/plug.vim')) silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync|source $MYVIMRC endif call plug#begin('~/.local/share/nvim/plugged') " Colorschemes Plug 'morhetz/gruvbox' " Nifty stuff Plug 'scrooloose/nerdcommenter' Plug 'tpope/vim-surround' Plug 'jamessan/vim-gnupg' Plug 'lambdalisue/suda.vim' Plug 'junegunn/vim-easy-align' " Some config/whitespace automation Plug 'dpc/vim-smarttabs' Plug 'tpope/vim-sleuth' " Interface Plug 'ntpeters/vim-better-whitespace' Plug 'majutsushi/tagbar' Plug 'Yggdroot/indentLine' Plug 'kien/ctrlp.vim' Plug 'junegunn/goyo.vim', {'on': 'Goyo'} Plug 'mbbill/undotree', {'on': 'UndotreeToggle'} Plug 'tpope/vim-vinegar' " Git Plug 'tpope/vim-fugitive' Plug 'airblade/vim-gitgutter' " Checking, linting, building etc. Plug 'neomake/neomake' Plug 'ycm-core/YouCompleteMe', {'for': ['python', 'c', 'cpp']} "Better syntax Plug 'lervag/vimtex', {'for': 'tex'} Plug 'vivien/vim-linux-coding-style' Plug 'NLKNguyen/c-syntax.vim' Plug 'hdima/python-syntax' Plug 'rust-lang/rust.vim', {'for': 'rust'} Plug 'dag/vim-fish', {'for': 'fish'} Plug 'tpope/vim-markdown', {'for': 'markdown'} Plug 'LnL7/vim-nix', {'for': 'nix'} Plug 'chikamichi/mediawiki.vim' call plug#end() "" TeX and co stuff " disable TeX commands concealing let g:tex_conceal = '' " space is our leader! let mapleader = "\" let maplocalleader = "\\" " theme if $COLORTERM == 'truecolor' || $COLORTERM == '24bit' set termguicolors endif " all my terminals can handle italic set t_ZH= set t_ZR= " colorscheme let g:gruvbox_italic='1' let g:gruvbox_contrast_dark ='hard' set background=dark colorscheme gruvbox " set line numbering set number " add 80th column hightlight set colorcolumn=80 " use arrows for visual line navigation imap gk imap gj nmap gk nmap gj vmap gk vmap gj " Set place for backups set nobackup " Swap for slacks set noswapfile " Tagbar nmap :TagbarToggle " autosmartident set ai set si " Expand tabs to spaces set tabstop=4 set shiftwidth=4 set softtabstop=4 set noexpandtab " show indentation set list " Enlarge your Undo! set history=999 set undolevels=999 " Copying and pasting " Copy to clipboard vnoremap y "+y nnoremap Y "+yg_ nnoremap y "+y nnoremap yy "+yy " Paste from clipboard nnoremap p "+p nnoremap P "+P vnoremap p "+p vnoremap P "+P " Easier buffer switching nnoremap b :CtrlPBuffer " Update more often set updatetime=107 " Activate linux coding style helper only in certain dirs let g:linuxsty_patterns = ["/usr/src", "/linux", "~/git/linux", "~/devel/linux"] " markdown let g:markdown_syntax_conceal = 0 let g:markdown_fenced_languages = ['html', 'python'] " disable modelines set nomodeline " neomake on read and write call neomake#configure#automake('rw') " easy align nmap a (EasyAlign) xmap a (EasyAlign) " change tab completion to more bash-like set wildmode=longest:full,list:full " I cannot spell set spelllang=en,ru,de nnoremap :set spell! inoremap :set spell! set spellsuggest+=10 " Toggle UndoTree nnoremap u :UndotreeToggle " U is quite useless nnoremap U :echo "NOPE!" " Statusline function! s:statusline_builder() let l:buffer = "[%n]%<%f%m%r " let l:filetype = "%{len(&filetype) ? '['.&filetype.'] ' : ' '}" let l:git = "%{exists('g:loaded_fugitive') ? fugitive#statusline() : ''}" let l:coordinate = ' %-12(%l:%c%V%)' let l:position = ' %P' let l:sep = '%=' let l:fileenc = "%{strlen(&fenc) ? &fenc : 'none'}" let l:filefmt = "%{&ff}" return l:buffer.l:filetype.l:git.l:sep.l:coordinate.'['.l:fileenc.':'.l:filefmt.']'.l:position endfunction " set statusline let &statusline = s:statusline_builder()