set backspace=indent,eol,start set foldmethod=marker set history=50 set hlsearch set ignorecase set incsearch set laststatus=2 set nobackup set nomodeline set ruler set showcmd set smartcase set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc set wildmenu " scroll before reaching the first / final line set scrolloff=3 set sidescrolloff=15 set sidescroll=1 " disable bell set noerrorbells visualbell t_vb= " indentation_RIP "set shiftwidth=3 tabstop=3 noexpandtab " indentation_OK set tabstop=3 softtabstop=4 shiftwidth=4 smarttab expandtab set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] " termcap fixes set t_Co=256 set t_ut= set termencoding=utf-8 set encoding=utf-8 set fillchars+=vert:│ " maps map noremap "enable cursorline on demand nnoremap c :set cursorline! "clear search highlight nnoremap / :nohls "make wrapped lines navigation easier noremap j (v:count == 0 ? 'gj' : 'j') noremap k (v:count == 0 ? 'gk' : 'k') "home / end nnoremap H ^ nnoremap L $ "copy to / paste from clipboard vmap y "+y vmap d "+d nmap p "+p nmap P "+P vmap p "+p vmap P "+P "move macro somewhere I won't accidentally use it nnoremap Q q nnoremap q "quit / save nmap qq :q nmap qf :q! nmap qa :qa nmap qw :wq nmap w :w " still have to deal with old vim versions :< if v:version >= 700 if v:version >= 703 set colorcolumn=80 set relativenumber nnoremap r :setlocal relativenumber! endif if v:version >= 800 set breakindent endif set helplang=en set list set number set listchars=tab:\|_,nbsp:x,trail:* nnoremap n :setlocal number! nnoremap l :setlocal list! " enable case indentation let g:sh_indent_case_labels=1 " plugins if filereadable(expand("$HOME/.vim/plugged/vim-plug/plug.vim")) set noshowmode source ~/.vim/plugged/vim-plug/plug.vim silent!call plug#begin('~/.vim/plugged') "plugin manager Plug 'junegunn/vim-plug' " general plugins Plug 'Lokaltog/vim-easymotion' "easy motion Plug 'directionalWindowResizer' "resize windows with simple hotkeys Plug 'jeetsukumaran/vim-buffergator' "buffer management Plug 'junegunn/vim-easy-align' "aligning Plug 'mhinz/vim-signify' "version control system gutter info Plug 'nvie/vim-togglemouse' "hotkey to toggle mouse Plug 'vim-airline/vim-airline' "airline Plug 'vim-airline/vim-airline-themes' "themes for airline Plug 'wincent/command-t' "fuzzy file search Plug 'tpope/vim-fugitive' "moar git awesomeness " python, uncomment when needed "Plug 'neomake/neomake' "linter "Plug 'davidhalter/jedi-vim' "python support "Plug 'ervandew/supertab' "TAB autocompletion " colorschemes Plug 'lifepillar/vim-solarized8' "Plug 'jonathanfilip/vim-lucius' " some good true color themes "Plug 'cocopon/iceberg.vim' "Plug 'KeitaNakamura/neodark.vim' "Plug 'chriskempson/base16-vim' " syntax highlight plugins Plug 'neilhwatson/vim_cf3' call plug#end() " easymotion options let g:EasyMotion_do_mapping=0 let g:EasyMotion_smartcase=1 nmap f (easymotion-s) map j (easymotion-j) map k (easymotion-k) " airline options let g:airline_symbols={} let g:airline_symbols.whitespace='!' let g:airline_powerline_fonts=1 let g:airline_exclude_preview=1 let g:airline_extensions=['hunks'] let g:airline_section_z='%3p%% %{g:airline_symbols.linenr}%4l:%3v' " buffergator options map :BuffergatorToggle " signify options let g:signify_vcs_list=[ 'svn', 'git', 'fossil' ] let g:signify_sign_change='~' " vim-togglemouse options nmap m " easy-align options xmap a (EasyAlign) nmap a (EasyAlign) " neomake nmap i :Neomake let g:neomake_error_sign={ \ 'text': 'e>', \ 'texthl': 'ErrorMsg', \ } let g:neomake_warning_sign={ \ 'text': 'w>', \ 'texthl': 'WarningMsg', \ } let g:neomake_info_sign={ \ 'text': 'i>', \ 'texthl': 'InfoMsg', \ } endif " gvim and colorschemes related stuff if has("gui_running") set guioptions=aegimLl set mouse=a set guifont=Fantasque\ Sans\ Mono\ 11 set novb set guicursor=a:block "block cursor by default set guicursor+=i:ver1-Cursor/lCursor "i-beam for insert mode set guicursor+=r:hor1-Cursor/lCursor "underline for replace set guicursor+=a:blinkon0 "and none of them should blink set guiheadroom=0 colorscheme solarized8_light map map! " if true color support and I want to use it: "elseif (has("nvim") || v:version >= 800) && $TERM != 'screen' " " fix tmux and st " set t_8f=[38;2;%lu;%lu;%lum " set t_8b=[48;2;%lu;%lu;%lum " set termguicolors " set mouse=a " let g:airline_theme='neodark' " colorscheme iceberg else if $TERM != 'screen' set mouse=a else set mouse= endif colorscheme solarized8_light endif else colorscheme default endif syntax on filetype plugin on