diff options
-rw-r--r-- | .tmux.conf | 18 | ||||
-rw-r--r-- | .vimrc | 51 | ||||
-rw-r--r-- | .zshrc | 108 |
3 files changed, 48 insertions, 129 deletions
diff --git a/.tmux.conf b/.tmux.conf index 4d322c9f..bc0a0102 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,57 +1,39 @@ -# Use the same prefix as screen, press a again to pass through unbind C-b set -g prefix C-a bind a send-prefix -# Prevent escape key delay set -g escape-time 0 -# Enable colors set -g default-terminal 'screen-256color' -# Start windows at 1 rather than 0 set -g base-index 1 -# Status line on top set -g status-position top -# Create new windows in same directory bind t new-window -c '#{pane_current_path}' - -# Move windows around by swapping bind . command-prompt "swap-window -t '%%'" -# Split windows like vim, in same directory bind s split-window -v -c '#{pane_current_path}' bind v split-window -h -c '#{pane_current_path}' -# Move between panes like vim bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R -# Move panes sort of like vim bind L swap-pane -D bind H swap-pane -U -# Resize panes like vim bind -r < resize-pane -L 1 bind -r > resize-pane -R 1 bind -r - resize-pane -D 1 bind -r + resize-pane -U 1 -# Vi-style controls for copy mode setw -g mode-keys vi - -# Copy and Paste like vim bind -t vi-copy v begin-selection bind -t vi-copy C-v rectangle-toggle bind -t vi-copy y copy-selection bind p paste-buffer -# Switch panes like C-w C-w in vim bind C-a last-pane - -# Balance vertical panes bind = select-layout even-horizontal diff --git a/.vimrc b/.vimrc index 1a266c74..1e1175c4 100644 --- a/.vimrc +++ b/.vimrc @@ -1,62 +1,29 @@ set nocompatible - -" Backspace past beginning of line in insert mode. -set backspace=indent,eol,start - -" Allow switching buffers without saving. set hidden +set ttimeoutlen=0 +set shortmess=atI +set visualbell t_vb= +set backspace=indent,eol,start +set wildmenu wildmode=list:longest -" Show cursor position and incomplete commands, always show status line. -set ruler showcmd laststatus=2 - -" Always show one extra line at the top or bottom of the window. -set scrolloff=1 - -" Search incrementally with smart case sensitivity, highlight all matches. set incsearch ignorecase smartcase hlsearch - -" Automatic indentation and adjust with tab and backspace. set autoindent smartindent smarttab +set tabstop=4 expandtab shiftwidth=2 shiftround -" Show line numbers, highlight current line and fixed columns. -set number cursorline colorcolumn=80,100 - -" Set window title. set title - -" Shorten messages and disable intro screen -set shortmess=atI - -" Disable audible bell. -set visualbell t_vb= - -" Prevent delay when returning to norml mode in terminal vim. -set ttimeoutlen=0 - -" Show hard tabs and trailing whitespace +set ruler showcmd laststatus=2 +set scrolloff=1 +set number cursorline colorcolumn=80,100 set list listchars=tab:»·,trail:· - -" Show hard tabs as 4 side, use 2 space indentation rounded to multiples. -set tabstop=4 expandtab shiftwidth=2 shiftround - -" Syntax highlighting, filetype indentation rules. syntax on filetype plugin indent on -" Show tab-complete suggestions and complete longest substring. -set wildmenu wildmode=list:longest - -" Swap , and \ for leader. noremap \ , let mapleader = ',' - -" Clear search results. nmap <leader>n :nohlsearch<CR> -" Set GUI font and disable GUI features. set guifont=ProFont:h11 guioptions=c -" Configure gruvbox colorscheme. set background=dark let g:gruvbox_termcolors = 16 let g:gruvbox_italic = 0 diff --git a/.zshrc b/.zshrc index e30f41ee..d07db0d3 100644 --- a/.zshrc +++ b/.zshrc @@ -1,29 +1,54 @@ -# Save 5000 lines of history, writing after each command, ignoring duplicates. +unsetopt beep +setopt nomatch interactive_comments + HISTFILE=~/.history HISTSIZE=SAVEHIST=5000 setopt inc_append_history hist_ignore_dups -# Error if glob does not match. -setopt nomatch - -# Allow comments in interactive shell. -setopt interactive_comments - -# No. -unsetopt beep - -# Vim line editing, eliminate escape key delay. bindkey -v KEYTIMEOUT=1 -# Initialize completion and colors. autoload -Uz compinit && compinit autoload colors && colors -# Color prompt magenta over SSH. +PATH=$PATH:~/.bin +export EDITOR=vim +export CLICOLOR=1 # color ls output on OS X + +[[ "$OSTYPE" =~ 'darwin' ]] && alias osx=true || alias osx=false +osx || alias ls='ls --color' +osx || alias grep='grep --color' +osx && alias rm='rm -v' || alias rm='rm -vI' +osx && alias gvim=mvim || alias gvim='gvim 2> /dev/null' + +tn() { [ -n "$1" ] && tmux new -s "$1" || tmux new } +ta() { [ -n "$1" ] && tmux attach -t "$1" || tmux attach } + +alias ga='git add' +alias gb='git branch' +alias gc='git commit' +alias gca='git commit --amend' +alias gcl='git clone' +alias gco='git checkout' +alias gd='git diff' +alias gl='git log --graph --pretty=log' +alias gm='git merge' +alias gmv='git mv' +alias gp='git push' +alias gr='git rebase' +alias grc='git rebase --continue' +alias grs='git rebase --skip' +alias gra='git rebase --abort' +alias grm='git rm' +alias gs='git status -sb' +alias gsh='git show' +alias gst='git stash' +alias gt='git tag' +alias gu='git pull' +alias gf='git fetch' + [[ -n "$SSH_CLIENT" ]] && _prompt_ssh_color="$fg[magenta]" -# Color prompt yellow in vi normal mode. function zle-line-init zle-keymap-select { _prompt_vi_color= [[ "$KEYMAP" == "vicmd" ]] && _prompt_vi_color="$fg[yellow]" @@ -32,7 +57,6 @@ function zle-line-init zle-keymap-select { zle -N zle-line-init zle -N zle-keymap-select -# Show git branch or commit in right prompt. _prompt_git_branch() { [[ -f .git/HEAD ]] || return 0 local head @@ -47,16 +71,12 @@ _prompt_git_branch() { esac } -# Single colored character prompt, directory and git branch in right prompt. setopt prompt_subst PROMPT='%{%(?.$fg[green]$_prompt_ssh_color.$fg[red])$_prompt_vi_color%}»%{$reset_color%} ' RPROMPT='%{$fg[blue]%}%-50<…<%~%{$fg[yellow]%}$(_prompt_git_branch)%{$reset_color%}' -# Print a newline before every prompt after the first one. _newline_precmd() { _newline_precmd() { echo } } -# Set title to directory name at prompt, prefixed with hostname over SSH. Add -# current command to title while running. _title() { [[ "$TERM" =~ 'xterm' ]] && print -Pn "\e]0;$@\a" } @@ -69,55 +89,6 @@ typeset -ga precmd_functions preexec_functions+=(_title_preexec) precmd_functions+=(_newline_precmd _title_precmd) -# General environment setup. -PATH=$PATH:~/.bin -export EDITOR=vim -export CLICOLOR=1 # color ls output on OS X - -# Detect OS X for conditional aliases. -[[ "$OSTYPE" =~ 'darwin' ]] && alias osx=true || alias osx=false - -# Color output on Linux. -osx || alias ls='ls --color' -osx || alias grep='grep --color' - -# Verbose output from rm with confirmation on Linux. -osx || alias rm='rm -vI' -osx && alias rm='rm -v' - -# Suppress output from Linux gvim, alias gvim to MacVim. -osx || alias gvim='gvim 2> /dev/null' -osx && alias gvim=mvim - -tn() { [ -n "$1" ] && tmux new -s "$1" || tmux new } -ta() { [ -n "$1" ] && tmux attach -t "$1" || tmux attach } - -alias g=git -alias ga='git add' -alias gb='git branch' -alias gc='git commit' -alias gca='git commit --amend' -alias gcl='git clone' -alias gco='git checkout' -alias gd='git diff' -alias gl='git log --graph --pretty=log' -alias gm='git merge' -alias gmv='git mv' -alias gp='git push' -alias gr='git rebase' -alias grc='git rebase --continue' -alias grs='git rebase --skip' -alias gra='git rebase --abort' -alias grm='git rm' -alias gs='git status -sb' -alias gsh='git show' -alias gst='git stash' -alias gt='git tag' -alias gu='git pull' -alias gf='git fetch' - -alias hu=heroku - [[ -f ~/.nvm/nvm.sh ]] && source ~/.nvm/nvm.sh if [[ -d /usr/local/share/chruby ]]; then @@ -125,5 +96,4 @@ if [[ -d /usr/local/share/chruby ]]; then chruby ruby fi -# Prevent red first prompt. true |