Skip to content

Instantly share code, notes, and snippets.

@RupGautam
Created December 2, 2015 02:16
Show Gist options
  • Select an option

  • Save RupGautam/bea54435f79d02b4aec7 to your computer and use it in GitHub Desktop.

Select an option

Save RupGautam/bea54435f79d02b4aec7 to your computer and use it in GitHub Desktop.
# Add `~/bin` to the `$PATH`
export PATH="$HOME/bin:$PATH";
export VAGRANT_HOME="/Volumes/Software/Vagrant"
# Load the shell dotfiles, and then some:
# * ~/.path can be used to extend `$PATH`.
# * ~/.extra can be used for other settings you don’t want to commit.
for file in ~/.{path,bash_prompt,exports,aliases,functions,extra}; do
[ -r "$file" ] && [ -f "$file" ] && source "$file";
done;
unset file;
# Case-insensitive globbing (used in pathname expansion)
shopt -s nocaseglob;
# Append to the Bash history file, rather than overwriting it
shopt -s histappend;
# Autocorrect typos in path names when using `cd`
shopt -s cdspell;
# Enable some Bash 4 features when possible:
# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`
# * Recursive globbing, e.g. `echo **/*.txt`
for option in autocd globstar; do
shopt -s "$option" 2> /dev/null;
done;
# Add tab completion for many Bash commands
if which brew > /dev/null && [ -f "$(brew --prefix)/share/bash-completion/bash_completion" ]; then
source "$(brew --prefix)/share/bash-completion/bash_completion";
elif [ -f /etc/bash_completion ]; then
source /etc/bash_completion;
fi;
# Enable tab completion for `g` by marking it as an alias for `git`
if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then
complete -o default -o nospace -F _git g;
fi;
# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards
[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2- | tr ' ' '\n')" scp sftp ssh;
# Add tab completion for `defaults read|write NSGlobalDomain`
# You could just use `-g` instead, but I like being explicit
complete -W "NSGlobalDomain" defaults;
# Add `killall` tab completion for common apps
complete -o "nospace" -W "Contacts Calendar Dock Finder Mail Safari iTunes SystemUIServer Terminal Twitter" killall;
source /Users/RupGautam/.rack/bash_autocomplete
[ -n "$PS1" ] && source ~/.bash_profile;
include ~/.nano/apacheconf.nanorc
include ~/.nano/asciidoc.nanorc
include ~/.nano/asm.nanorc
include ~/.nano/awk.nanorc
include ~/.nano/c.nanorc
include ~/.nano/cmake.nanorc
include ~/.nano/coffeescript.nanorc
include ~/.nano/colortest.nanorc
include ~/.nano/conf.nanorc
include ~/.nano/csharp.nanorc
include ~/.nano/css.nanorc
include ~/.nano/cython.nanorc
include ~/.nano/dot.nanorc
include ~/.nano/email.nanorc
include ~/.nano/Dockerfile.nanorc
include ~/.nano/fish.nanorc
include ~/.nano/fortran.nanorc
include ~/.nano/gentoo.nanorc
include ~/.nano/git.nanorc
include ~/.nano/gitcommit.nanorc
include ~/.nano/glsl.nanorc
include ~/.nano/go.nanorc
include ~/.nano/groff.nanorc
include ~/.nano/haml.nanorc
include ~/.nano/html.nanorc
include ~/.nano/ini.nanorc
include ~/.nano/inputrc.nanorc
include ~/.nano/java.nanorc
include ~/.nano/javascript.nanorc
include ~/.nano/js.nanorc
include ~/.nano/json.nanorc
include ~/.nano/keymap.nanorc
include ~/.nano/kickstart.nanorc
include ~/.nano/ledger.nanorc
include ~/.nano/lisp.nanorc
include ~/.nano/lua.nanorc
include ~/.nano/makefile.nanorc
include ~/.nano/man.nanorc
include ~/.nano/markdown.nanorc
include ~/.nano/mpdconf.nanorc
include ~/.nano/mutt.nanorc
include ~/.nano/nanorc.nanorc
include ~/.nano/nginx.nanorc
include ~/.nano/patch.nanorc
include ~/.nano/peg.nanorc
include ~/.nano/perl.nanorc
include ~/.nano/php.nanorc
include ~/.nano/pkg-config.nanorc
include ~/.nano/pkgbuild.nanorc
include ~/.nano/po.nanorc
include ~/.nano/pov.nanorc
include ~/.nano/privoxy.nanorc
include ~/.nano/python.nanorc
include ~/.nano/reST.nanorc
include ~/.nano/rpmspec.nanorc
include ~/.nano/ruby.nanorc
include ~/.nano/scala.nanorc
include ~/.nano/sed.nanorc
include ~/.nano/sh.nanorc
include ~/.nano/sls.nanorc
include ~/.nano/sql.nanorc
include ~/.nano/systemd.nanorc
include ~/.nano/tcl.nanorc
include ~/.nano/tex.nanorc
include ~/.nano/vala.nanorc
include ~/.nano/vi.nanorc
include ~/.nano/xml.nanorc
include ~/.nano/xresources.nanorc
include ~/.nano/yaml.nanorc
include ~/.nano/yum.nanorc
include ~/.nano/zsh.nanorc
" Use the Solarized Dark theme
set background=dark
colorscheme solarized
let g:solarized_termtrans=1
" 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
" 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment