Skip to content

Instantly share code, notes, and snippets.

@jcdarwin
Created May 14, 2016 05:21
Show Gist options
  • Select an option

  • Save jcdarwin/f6a38d04497a6e861510bb8e5c4ed8a9 to your computer and use it in GitHub Desktop.

Select an option

Save jcdarwin/f6a38d04497a6e861510bb8e5c4ed8a9 to your computer and use it in GitHub Desktop.

Revisions

  1. jcdarwin created this gist May 14, 2016.
    137 changes: 137 additions & 0 deletions .vim
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,137 @@
    " Use Vundle for plugin management
    " https://github.com/VundleVim/Vundle.vim
    filetype off " required
    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    " alternatively, pass a path where Vundle should install plugins
    "call vundle#begin('~/some/path/here')

    " let Vundle manage Vundle, required
    Plugin 'VundleVim/Vundle.vim'

    Plugin 'rizzatti/dash.vim'

    " All of your Plugins must be added before the following line
    call vundle#end() " required
    filetype plugin indent on " required
    " To ignore plugin indent changes, instead use:
    "filetype plugin on
    "
    " Brief help
    " :PluginList - lists configured plugins
    " :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
    " :PluginSearch foo - searches for foo; append `!` to refresh local cache
    " :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
    "
    " see :h vundle for more details or wiki for FAQ
    " Put your non-Plugin stuff after this line

    " Use the Solarized Dark theme
    set background=dark
    colorscheme solarized

    " Make Vim more useful
    set nocompatible
    " Use the OS clipboard by default (on versions compiled with `+clipboard`)
    set clipboard=unnamed
    " Enhance command-line completion
    set wildmenu
    " Allow cursor keys in insert mode
    set esckeys
    " Allow backspace in insert mode
    set backspace=indent,eol,start
    " Optimize for fast terminal connections
    set ttyfast
    " Add the g flag to search/replace by default
    set gdefault
    " Use UTF-8 without BOM
    set encoding=utf-8 nobomb
    " Change mapleader
    let mapleader=","
    " Don’t add empty newlines at the end of files
    set binary
    set noeol
    " Centralize backups, swapfiles and undo history
    set backupdir=~/.vim/backups
    set directory=~/.vim/swaps
    if exists("&undodir")
    set undodir=~/.vim/undo
    endif

    " Don’t create backups when editing files in certain directories
    set backupskip=/tmp/*,/private/tmp/*

    " Respect modeline in files
    set modeline
    set modelines=4
    " Enable per-directory .vimrc files and disable unsafe commands in them
    set exrc
    set secure
    " Enable line numbers
    set number
    " Enable syntax highlighting
    syntax on
    " Highlight current line
    set cursorline
    " Make tabs as wide as two spaces
    set tabstop=2
    " Show “invisible” characters
    set lcs=tab:▸\ ,trail:·,eol:¬,nbsp:_
    set list
    " Highlight searches
    set hlsearch
    " Ignore case of searches
    set ignorecase
    " Highlight dynamically as pattern is typed
    set incsearch
    " Always show status line
    set laststatus=2
    " Enable mouse in all modes
    set mouse=a
    " Disable error bells
    set noerrorbells
    " Don’t reset cursor to start of line when moving around.
    set nostartofline
    " Show the cursor position
    set ruler
    " Don’t show the intro message when starting Vim
    set shortmess=atI
    " Show the current mode
    set showmode
    " Show the filename in the window titlebar
    set title
    " Show the (partial) command as it’s being typed
    set showcmd
    " Use relative line numbers
    if exists("&relativenumber")
    set relativenumber
    au BufReadPost * set relativenumber
    endif
    " Start scrolling three lines before the horizontal window border
    set scrolloff=3

    " Use fzf: https://github.com/junegunn/fzf
    set rtp+=~/.fzf

    " Strip trailing whitespace (,ss)
    function! StripWhitespace()
    let save_cursor = getpos(".")
    let old_query = getreg('/')
    :%s/\s\+$//e
    call setpos('.', save_cursor)
    call setreg('/', old_query)
    endfunction
    noremap <leader>ss :call StripWhitespace()<CR>
    " Save a file as root (,W)
    noremap <leader>W :w !sudo tee % > /dev/null<CR>
    " Automatic commands
    if has("autocmd")
    " Enable file type detection
    filetype on
    " Treat .json files as .js
    autocmd BufNewFile,BufRead *.json setfiletype json syntax=javascript
    " Treat .md files as Markdown
    autocmd BufNewFile,BufRead *.md setlocal filetype=markdown
    endif