" vim-plug plugin manager if filereadable(expand("~/.vim/autoload/plug.vim")) || filereadable(expand("~/.config/nvim/autoload/plug.vim")) || filereadable(expand("~\vimfiles\autoload\plug.vim")) || filereadable(expand("~/.local/share/nvim/site/autoload/plug.vim")) call plug#begin('~/.vim/plugged') Plug 'benekastah/neomake' Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' Plug 'junegunn/vim-easy-align' Plug 'Shougo/deoplete.nvim' Plug 'vim-scripts/gitignore.vim' Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } Plug 'Xuyuanp/nerdtree-git-plugin' " Plug 'majutsushi/tagbar' " Plug 'vim-scripts/taglist.vim' Plug 'Townk/vim-autoclose' Plug 'tpope/vim-fugitive' Plug 'airblade/vim-gitgutter' """ Markdown editing Plug 'godlygeek/tabular' Plug 'plasticboy/vim-markdown' """ Themes Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'rakr/vim-one' " Plug 'morhetz/gruvbox' """ Languages Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } Plug 'vim-latex/vim-latex' " Plug 'dag/vim-fish' " Plug 'KabbAmine/gulp-vim' " Plug 'kovisoft/slimv' " Plug 'vim-php/vim-phpunit' " Plug 'StanAngeloff/php.vim' call plug#end() else echom "Didn't find Plug" endif set nocompatible filetype indent plugin on set wildmenu set showcmd set hlsearch set ignorecase set smartcase set backspace=indent,eol,start set autoindent set nostartofline set ruler set laststatus=2 set confirm set mouse=a set cmdheight=2 set number set pastetoggle=<F11> set softtabstop=4 set shiftwidth=4 set expandtab set autoread let mapleader = "," let g:mapleader = "," nmap <leader>w :w!<cr> " Visual set so=7 set wildignore=*.o,*~,*.pyc,*.jar set hid set whichwrap+=<,>,h,l set incsearch set lazyredraw set magic set showmatch set mat=2 set noerrorbells set novisualbell set t_vb= set tm=500 " Color syntax on " colorscheme gruvbox colorscheme one set background=light set termguicolors set cursorline if has("gui_running") set guioptions-=T set guioptions+=e set t_Co=256 set guitablabel=%M\ %t if has("gui_gtk2") set guifont=Hermit\ 10 endif endif set t_Co=256 set encoding=utf-8 set ffs=unix,dos,mac " set textwidth=80 " set colorcolumn=+1 hi ColorColumn guibg=#2d2d2d ctermbg=238 " Files, Backups and undo set nobackup set nowb set noswapfile set smarttab set tabstop=4 set ai set si set wrap map j gj map k gk map <space> / map <c-space> ? " Smart way to move between windows map <C-j> <C-W>j map <C-k> <C-W>k map <C-h> <C-W>h map <C-l> <C-W>lmap <leader>tn :tabnew<cr> map <leader>to :tabonly<cr> map <leader>tc :tabclose<cr> map <leader>tm :tabmove " Opens a new tab with the current buffer's path " Super useful when editing files in the same directory map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/ " " " Switch CWD to the directory of the open buffer map <leader>cd :cd %:p:h<cr>:pwd<cr> " map <leader>W :w " " " Specify the behavior when switching between buffers try set switchbuf=useopen,usetab,newtab set stal=2 catch endtry " " Return to last edit position when opening files (You want this!) autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif "Remember info about open buffers on close set viminfo^=% map 0 ^ " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac nmap <M-j> mz:m+<cr>`z nmap <M-k> mz:m-2<cr>`z vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z " " Delete trailing white space on save, useful for Python and " CoffeeScript ;) func! DeleteTrailingWS() exe "normal mz" %s/\s\+$//ge exe "normal `z" endfunc autocmd BufWrite *.py :call DeleteTrailingWS() autocmd BufWrite *.coffee :call DeleteTrailingWS() " Neomake lint autocmd! BufWritePost,BufEnter * Neomake map <leader>ss :setlocal spell!<cr> " Shortcuts using <leader> map <leader>sn ]s map <leader>sp [s map <leader>sa zg map <leader>s? z= "Remove the Windows ^M - when the encodings gets messed up noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm " Quickly open a buffer for scripbble map <leader>q :e ~/buffer<cr> " Toggle paste mode on and off map <leader>pp :setlocal paste!<cr> map <C-n> :NERDTreeToggle<CR> " My Changes inoremap jk <ESC> set listchars=tab:>-,trail:- set list set clipboard+=unnamedplus " Plugin settings " airline let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 " let g:airline_theme='base16_gruvbox_dark_hard' let g:airline_theme='one' " deoplete let g:deoplete#enable_at_startup = 1 let g:deoplete#sources#clang#libclang_path='/usr/lib/llvm-3.6/lib/libclang.so.1' let g:deoplete#sources#clang#clang_header='/usr/lib/llvm-3.6/lib/clang/3.6.2/include/' set grepprg=grep\ -nH\ $* " latexsuite let g:tex_flavor='latex' let g:tex_fold_enabled=1 let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode $*' " slimv swank server let g:slimv_swank_cmd = '! xterm -e sbcl --load /usr/share/common-lisp/source/slime/start-swank.lisp &' " Filetype specific settings autocmd Filetype html setlocal ts=2 sts=2 sw=2 autocmd Filetype javascript setlocal ts=2 sts=2 sw=2 autocmd Filetype coffee setlocal ts=2 sts=2 sw=2 autocmd Filetype dart setlocal ts=2 sts=2 sw=2 " Syntax highlighting for HtMd (Hypertext Markdown) au BufRead,BufNewFile *.htmd set filetype=html