" ----------------------- settings ---------------------------------- set autoindent set autowrite " automatically write files when changing set background=dark set backspace=indent,eol,start set belloff=all set colorcolumn=80 set expandtab " replace tabs with spaces automatically set exrc set foldmethod=manual set hidden set history=100 " command history set icon set incsearch set nobackup set nocompatible set nofixendofline set nohlsearch set noswapfile "set nowrap set number set relativenumber set ruler " turns on col and row in lower right " used with `set ruler` set ruf=%30(%=%#LineNr#%.50F\ [%{strlen(&ft)?&ft:'none'}]\ %l:%c\ %p%%%) set scrolloff=8 set shiftwidth=2 set showmode " show command and insert mode set signcolumn=no set smartindent set smarttab set softtabstop=2 set tabstop=2 set termguicolors set textwidth=72 " Used with line wrapping set ttyfast " faster scrolling set undodir=~/.vim/undodir set undofile set viminfo='20,<1000,s1000 " prevents truncated yanks, deletes, etc. set wildmenu set wrap syntax enable filetype plugin on " sense the filesystem let mapleader = " " " ----------------------- plugins ---------------------------------- " Install vim-plug if not found if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim endif " Run PlugInstall if there are missing plugins autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)')) \| PlugInstall --sync | source $MYVIMRC \| endif call plug#begin('~/.vim/plugged') Plug 'junegunn/fzf' Plug 'vim-pandoc/vim-pandoc' Plug 'rwxrob/vim-pandoc-syntax-simple' Plug 'morhetz/gruvbox' call plug#end() colorscheme gruvbox " highlight Normal guibg=none " ----------------------- utilities ---------------------------------- " fuzzy finder let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6 } } " opens fuzzy finder under the current directory nmap ff :call fzf#run(fzf#wrap({ 'source': 'find "$PWD" -type f' })) " opens fuzzy finder for files under a git version control nmap fg :call fzf#run(fzf#wrap({ 'source': 'git ls-files' })) fun! TrimWhiteSpace() let l:save = winsaveview() keeppatterns %s/\s\+$//e call winrestview(l:save) endfun augroup MICHAEL autocmd! autocmd BufWritePre * :call TrimWhiteSpace() autocmd Filetype yaml setlocal ts=2 sts=2 sw=2 expandtab autocmd Filetype markdown setlocal tw=79 fo+=t autocmd Filetype pandoc setlocal tw=79 fo+=t " format json when writing a buffer. autocmd BufWritePre *.json :silent %!jq augroup END