bin | ||
irb | ||
KeyBindings@a62dfd4f8a | ||
vim | ||
.gitignore | ||
.gitmodules | ||
bash_aliases | ||
bash_options | ||
bash_path | ||
bash_profile | ||
git-completion.bash | ||
gitconfig | ||
gitignore_global | ||
inputrc | ||
irbrc | ||
osx | ||
README.md | ||
vimrc | ||
zsh_aliases | ||
zshrc |
Yan's Excellent Dotfiles!
There are two main goals accomplished in my dotfiles to produce insane productivity
- All common bash commands should be two and three character mnemonic aliases
- Most vim tasks, especially those having to do with navigation, should be mapped to a single Capital Letter or two letter mnemonic.
Submodules
This project uses git submodules for some of its plugins. Please run:
git submodule update
To get all the current plugins. Over time, I plan to move all plugins into submodules.
Setup for ZSH
I am now using ZSH as my default shell because of its awesome globbing and autocomplete features, nice colors, etc. This setup assumes you use oh-my-zsh (https://github.com/robbyrussell/oh-my-zsh)
Place this as the last line in your ~/.zshrc created by oh-my-zsh:
source ~/.dotfiles/zshrc
This setup reuses my bash aliases but provides some custom functions.
Setup for Bash
To set these up as your own (careful, don't overwrite your bash_profile unintentionally!):
git clone git://github.com/skwp/dotfiles ~/.dotfiles
ln -s ~/.dotfiles/bash_profile ~/.bash_profile
. ~/.bash_profile
Lots of things I do every day are done with two or three character mnemonic aliases. Please feel free to edit them:
ae # alias edit
ar # alias reload
Setup for Pry
Pry (http://pry.github.com/) offers a much better out of the box IRB experience with colors, tab completion, and lots of other tricks. You should:
gem install pry
gem install awesome_print
ln -s ~/.dotfiles/irb/pryrc ~/.pryrc
ln -s ~/.dotfiles/irb/aprc ~/.aprc
The pryrc included here also offers some nice commands like 'clear', 'sql', and etc Look at the pryrc to see a list of commands or just type 'help' from pry.
Setup for Vim
To use the vim files:
ln -s ~/.dotfiles/vimrc ~/.vimrc
ln -s ~/.dotfiles/vim ~/.vim
The .vimrc is well commented and broken up by settings. I encourage you to take a look and learn some of my handy aliases, or comment them out if you don't like them, or make your own.
These are things I use every day to be insanely productive. Hope you like em.
- F - instantly Find definition of class (must have exuberant ctags installed)
- B - show Buffer explorer
- S - Show buffers in LustyJuggler (use asdfjkl home row keys to then select buffer)
- T - Tag list (list of methods in a class)
- K - git grep for the Kurrent word under the cursor
- O - Open a GitGrep command line with a quote pretyped (close the quote yourself)
- \m - show my Marks (set a mark with mX where X is a letter, navigate to mark using 'X). Uppercase marks to mark files, lowercase marks to use within a file.
- Z - jump back and forth between last two buffers
- Q - Quit a window (normally Ctrl-w,c)
- \Q - Kill a buffer completely (normally :bw)
- Ctrl-j and Ctrl-k to move up and down roughly by functions
- vv and ss - vertical and horizontal split windows by double tapping
- H,L,I,M - to move left, right, up, down between windows
- Ctrl-\ - Show NerdTree (project finder) and expose current file
- cf - Copy Filename of current file into system (not vi) paste buffer
- // - clear the search
- ,, or z,, - use EasyMotion - type that and then type one of the highlighted letters. I'm just exploring this one.
- Apple-k and Apple-K to type underscores and dashes, since they are so common in code but so far away from home row
- yw - remapped to yaw, meaning yanking a word will yank the entire word no matter where your cursor is
- W - write a file (instead of :w, saving you keystrokes for the most common vim operation)
- gcc (comment a line) via tComment, and gcp custom alias to comment a paragraph
- Cc - (Current command) copies the command under your cursor and executes it in vim. Great for testing single line changes to vimrc.
Setup for Git
To use the gitconfig (some of the git bash aliases rely on my git aliases)
ln -s ~/.dotfiles/gitconfig ~/.gitconfig
Read through the gitconfig to find out what's in store.
OSX Hacks
The osx file is a bash script that sets up sensible defaults for devs and power users under osx. Read through it before running it. To use:
./osx
OSX KeyBindings for systemwide text editing
I am also experimenting with Brett Terpstra's OSX KeyBindings (github: ttscoff/KeyBindings) for good text editing features across the entire OS. To install:
git submodule update
mkdir -p ~/Library/KeyBindings
ln -s KeyBindings/DefaultKeyBinding.dict ~/Library/KeyBindings/DefaultKeyBindings.dict
More info: http://brettterpstra.com/keybinding-madness/
other OSX Insane Productivity tools I use
-
NValt - Notational Velocity alternative fork - http://brettterpstra.com/project/nvalt/ Dirt simple note taking, syncs to simplenote, supports all kinds of fun things like @done for todos
-
Safari Snipe extension - find an open tab. Map it to "Ctrl-/" for ultimate vim-style happiness http://safariextensions.tumblr.com/post/3681229291/snipe-03-06-11
Credits
I can't take credit for all of this. The vim files are a combination of work by tpope, scrooloose, and many hours of scouring blogs, vimscripts, and other places for the cream of the crop of vim and bash awesomeness.
COMING SOON
- Full migration to tpope's pathogen for all plugins
- Better isolation of customizations in smaller chunks
- Automatic setup script to symlink all dotfiles, or just some selectively
For more tips and tricks
Follow my blog: http://yanpritzker.com