" set non-compatible set nocompatible " set syntax highlighting syntax on " Enable netrw filetype plugin on " start pathogen call pathogen#infect() call pathogen#helptags() " Set auto read so a file is updated if externally changed set autoread " Turn on mouse Interaction set mouse=a " Set default split to be right or bottom set splitright set splitbelow " Tell vim it's a fast terminal set ttyfast " set relative ruler with current line as real line number set relativenumber set number " search in sub folders set path+=** " Display matching files when tab completing set wildmenu " set tabwidth set autoindent set smartindent set shiftwidth=4 set tabstop=4 " Add invisivle character reperesentation set list listchars=tab:»\ ,trail:\␣,eol:↩ " make search highlight as you type set incsearch " Make search case insensitive unless I type a capital letter set ignorecase smartcase set backspace=indent,eol,start " Show commands as you type them set showcmd " Move lines up/down using arrow keys nmap ddp nmap ddkP let g:cssColorVimDoNotMessMyUpdatetime = 1 " Airline set laststatus=2 let g:airline_powerline_fonts = 1 let g:airline_theme='dark' " Make vim default to the plus register (system clipboard) when yanking etc. "set clipboard=unnamedplus " Shows the command I am typing. I really wish this could be in airline but don't think it can set showcmd " Disable Scroll wheel :map :map " Make Ctrl C and Ctrl V work on system buffer nnoremap "+y vnoremap "+y "nnoremap "+p "nnoremap "+P inoremap "+pa nnoremap :tabnew nnoremap :tabnext nnoremap :tabprevious " map gV to select previously pasted nnoremap gV "`[".getregtype(v:register)[0]."`]" " Set :w!! to save with sudo cmap w!! w !sudo tee % "Run current line as command nnoremap Q !!$SHELL " Do Shebang line inoremap :sil exe ".!which " s/^/#!/ filetype detectYpDi " DO bullet points inoremap :exe "norm Ypf lDB\"A fun! Start() " Don't run if: we have commandline arguments, we don't have an empty " buffer, if we've not invoked as vim or gvim, or if we'e start in insert mode if argc() || line2byte('$') != -1 || v:progname !~? '^[-gmnq]\=vim\=x\=\%[\.exe]$' || &insertmode return endif " Start a new buffer ... enew " ... and set some options for it setlocal \ bufhidden=wipe \ buftype=nofile \ nobuflisted \ nocursorcolumn \ nocursorline \ nolist \ nonumber \ noswapfile \ norelativenumber " Now we can just write to the buffer, whatever you want. call append('$', "") for line in split(system('fortune -a | cowsay'), '\n') call append('$', ' ' . l:line) endfor " No modifications to this buffer setlocal nomodifiable nomodified " When we go to insert mode start a new buffer, and start insert nnoremap e :enew nnoremap i :enew startinsert nnoremap o :enew startinsert endfun " Run after "doing all the startup stuff" " autocmd VimEnter * call Start() " Folding nnoremap :tabn nnoremap :tabn nnoremap :tabn nnoremap :tabn nnoremap :tabn au FileType html,css,less,javascript,php setl foldmethod=indent foldenable "set es6 files to javascript augroup filetypedetect autocmd BufNew,BufNewFile,BufRead *.es6 :setfiletype javascript augroup END