Created
August 12, 2014 02:57
-
-
Save jedp/a9950b3fa297906baa1a to your computer and use it in GitHub Desktop.
.vimrc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if version < 704 | |
" if we are somehow running a version lower than 7.4, | |
" something's wrong, so just stop processing this file. | |
finish | |
endif | |
" auto reload vimrc after edit | |
autocmd! bufwritepost .vimrc source % | |
" vi? is it even possible to run original vi anymore? | |
set nocompatible | |
" Fix modelines security vulnerability | |
" http://lists.alioth.debian.org/pipermail/pkg-vim-maintainers/2007-June/004020.html | |
set modelines=0 | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Tabs and indentation. | |
set expandtab | |
set smarttab | |
set shiftwidth=4 | |
set tabstop=4 | |
set softtabstop=4 | |
" Above settings are friendly to Python and C | |
" Javascript tab settings have been added in | |
" ~/.vim/after/ftplugin/javascript.vim | |
syntax enable | |
filetype plugin indent on | |
au BufNewFile,BufRead *.jsm set filetype=JavaScript | |
au BufNewFile,BufRead *.sjs set filetype=JavaScript | |
au BufNewFile,BufRead *.rdf set filetype=XML | |
au BufNewFile,BufRead *.ino set filetype=C++ " arduino sketch | |
set hidden " allow changing buffers without saving | |
set nojoinspaces " don't insert two spaces when joining sentences | |
set scrolloff=3 " keep 3 lines above and below when scrolling | |
set autoindent | |
set showmode | |
set showcmd | |
"set wildmenu | |
"set wildmode=list:longest | |
set visualbell | |
set ttyfast " smoother redraw on newer terminals | |
set laststatus=2 | |
set relativenumber " love relative line numbering | |
set numberwidth=1 " use min spaces for numbers | |
"set undofile | |
"set ruler | |
set list " display unprintable characters | |
set encoding=utf-8 | |
set ignorecase " lowercase = case-insensitive | |
set smartcase " mixed case = case-sensitive | |
set gdefault " make g the default in :%s/foo/bar/ | |
set incsearch " highlight results as you type | |
set showmatch " highlight matching brackets | |
set matchtime=4 " blink matching brackets for 4/10 sec | |
set hlsearch " highlight the last used pattern | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" key mapping | |
let mapleader="," | |
" save a keystroke | |
noremap ; : | |
" searching and regexes | |
nnoremap/ /\v | |
vnoremap/ /\v | |
" clear search | |
nnoremap <leader><space> :noh<cr> | |
" handle long lines | |
" see :help fo-table for soft and hard wrapping | |
set wrap | |
set textwidth=79 | |
set formatoptions=qrn1 | |
set colorcolumn=80 | |
" forgot to open the file with sudo? no probalo | |
cnoremap w!! w !sudo tee % >/dev/null | |
" Justify text center, left, or right | |
noremap <silent> <Leader>jc :center<CR> | |
noremap <silent> <Leader>jl :left<CR> | |
noremap <silent> <Leader>jr :right<CR> | |
au FocusLost * :wa " save file when window focus is lost | |
nnoremap <leader>q gqip " paragraph formatting | |
nnoremap <leader>v V`] " select text just pasted | |
" open and vertical split and switch over to file | |
nnoremap <leader>w <C-w><C-w>l | |
if has("gui_running") | |
set guioptions=egmrt " hide the tool bar in gui vim | |
endif | |
set listchars=tab:▸\ ,extends:>,precedes:< | |
set fo=cq " auto-wrap comments, format comments | |
"set number " line numbering | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Highlight EOL whitespace | |
" See http://vim.wikia.com/wiki/Highlight_unwanted_spaces | |
highlight ExtraWhitespace ctermbg=red guibg=red | |
autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red | |
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/ | |
" The above flashes annoyingly while typing, be calmer in insert mode | |
autocmd InsertLeave * match ExtraWhitespace /\s\+$/ | |
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/ | |
function! s:FixWhitespace(line1,line2) | |
let l:save_cursor = getpos(".") | |
silent! execute ':' . a:line1 . ',' . a:line2 . 's/\s\+$//' | |
call setpos('.', l:save_cursor) | |
endfunction | |
" Run :FixWhitespace to remove end of line white space | |
command! -range=% FixWhitespace call <SID>FixWhitespace(<line1>,<line2>) | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Plugins loaded with pathogen | |
" | |
" YouCompleteMe https://github.com/Valloric/YouCompleteMe.git | |
" Requires git submodules --init --recursive | |
" Then Compile with ./install.sh --clang-completer | |
" jellybean https://github.com/nanotech/jellybeans.vim.git | |
" jshint2 https://github.com/Shutnik/jshint2.vim.git | |
" nerdtree https://github.com/scrooloose/nerdtree.git | |
" powerline https://github.com/Lokaltog/powerline.git | |
" Read https://powerline.readthedocs.org/en/latest/index.html | |
" Note especially instructions regarding "hacked fonts" | |
" syntastic https://github.com/scrooloose/syntastic.git | |
" vim-javascript https://github.com/pangloss/vim-javascript.git | |
execute pathogen#infect() | |
call pathogen#helptags() | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" YouCompleteMe | |
" Default settings seem fine | |
"let g:ycm_key_list_select_completion = ['<TAB>', '<Down>'] | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" jellybeans | |
colorscheme jellybeans | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" NERDTree | |
"autocmd vimenter * NERDTree | |
nnoremap <leader>nt :NERDTree<CR> | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" powerline | |
set rtp+=/Users/jed/.vim/bundle/powerline/powerline/bindings/vim | |
set guifont=Source\ Code\ Pro\ for\ Powerline | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" Syntastic checkers | |
" XXX python is crashing for me | |
" nb - using jshint for js | |
" let g:syntastic_python_checkers | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" jshint2 | |
let jshint2_command = "/Users/jed/code/node_modules/.bin/jshint" | |
let jshint2_read = 1 | |
let jshint2_save = 1 | |
nnoremap <leader>jh :JSHint<CR> | |
nnoremap <leader>jn :lnext<CR> | |
nnoremap <leader>jp :lprevious<CR> | |
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" | |
" vim-javascript | |
" note that early version of vim 7.4 break this plugin | |
let b:javascript_fold = 0 | |
let g:javascript_conceal = 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment