My minimal setup for a new server: tmux, Vim and RubyGems config.
curl -fsSL "https://gist.github.com/mislav/5706063/raw/install.sh" | bash -e
PS1='\[\033[31m\]\w\[\033[0m\] $ ' | |
export EDITOR=vim | |
alias st='git status -sb' |
gem: --no-ri --no-rdoc |
curl -fsSL \ | |
"https://gist.github.com/mislav/5706063/raw/gemrc" -o ~/.gemrc \ | |
"https://gist.github.com/mislav/5706063/raw/vimrc" -o ~/.vimrc \ | |
"https://gist.github.com/mislav/5706063/raw/ssh_rc.sh" -o ~/.ssh/rc \ | |
"https://gist.github.com/mislav/5706063/raw/tmux.conf" -o ~/.tmux.conf | |
curl -fsSL "https://gist.github.com/mislav/5706063/raw/bashrc" >> ~/.bashrc | |
chmod +x ~/.ssh/rc |
#!/bin/sh | |
if [ -S "$SSH_AUTH_SOCK" ]; then | |
# This gets executed by sshd on every client login, symlinking the forwarded | |
# agent socket into a predictable location to be picked up by tmux. | |
ln -sf "$SSH_AUTH_SOCK" "/tmp/ssh-auth-${USER}.sock" | |
fi |
## Optional: Ctrl-a as prefix instead of Ctrl-b | |
## I'm keeping C-b because my desktop tmux is set to C-a already | |
# set -g prefix C-a | |
# unbind C-b | |
# bind C-a send-prefix | |
# Faster escape sequences (default is 500ms). | |
# This helps when exiting insert mode in Vim: http://superuser.com/a/252717/65504 | |
set -s escape-time 50 | |
# start numbering windows from 1 instead of zero | |
set -g base-index 1 | |
# syntax highlighting in Vim | |
set -g default-terminal "screen-256color" | |
# status bar contents | |
set -g status-left-length 15 | |
# remove SSH_AUTH_SOCK from the default list of variables to be auto-updated | |
set -g update-environment "DISPLAY SSH_ASKPASS SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" | |
# set it to the symlink set by ~/.ssh/rc | |
setenv -g SSH_AUTH_SOCK /tmp/ssh-auth-$USER.sock |
set nocompatible " choose no compatibility with legacy vi | |
syntax enable | |
set encoding=utf-8 | |
filetype plugin indent on " load file type plugins + indentation | |
"" Tweaks | |
set hidden " allow backgrounding buffers without writing them | |
set nonumber " line numbers aren't needed | |
set scrolloff=3 " have some context around the current line always on screen | |
set history=200 " remember more Ex commands | |
set synmaxcol=800 " don't try to highlight long lines | |
" Time out on key codes but not mappings. Makes terminal Vim work sanely | |
set notimeout | |
set ttimeout | |
set ttimeoutlen=100 | |
"" Whitespace | |
set nowrap " don't wrap lines | |
set tabstop=2 shiftwidth=2 " a tab is two spaces (or set this to 4) | |
set expandtab " use spaces, not tabs (optional) | |
set backspace=indent,eol,start " backspace through everything in insert mode | |
"" Searching | |
set hlsearch " highlight matches | |
set incsearch " incremental searching | |
set ignorecase " searches are case insensitive... | |
set smartcase " ... unless they contain at least one capital letter | |
set gdefault " replace all matches per line (instead of just first) | |
"" Have Vim able to edit crontab files again | |
set backupskip=/tmp/*,/private/tmp/*" | |
"" Status line | |
set showcmd " display incomplete commands | |
if has("statusline") && !&cp | |
set laststatus=2 " always show the status bar | |
set statusline=%f\ %m\ %r " filename, modified, readonly | |
set statusline+=\ %l/%L[%p%%] " current line/total lines | |
set statusline+=\ %v[0x%B] " current column [hex char] | |
endif |