dotar/README.md

4.7 KiB

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 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)

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

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.

TODO

I started migrating to tpope's pathogen, but only a few plugins are currently under vim/bundles.

For more tips and tricks

Follow my blog: http://yanpritzker.com