My config files for vim
, zsh
, pentadactyl
, git
and other shell tools. I don't expect them to
be of much use to anyone except myself, however there are some scripts, snippets and utilities that
might be useful and I'll try to list them below.
- Files are organized into separate folders, each representing a stand-alone component. Each component can define special installation rules in its own Rakefile, as well as add new rake tasks
- Support for ERB templates instead of plain files
- Support for joining files from different parts, depending on the current system and installation
type: e.g.
*.local.darwin
for local OS X specific options and*.remote.linux
for remote Linux installation - Support for partial installation
- Rake and fabric tasks to automate local and remote environment setup
- New color scheme:
prefect.vim
- Some snippets for
UltiSnips
: python, puppet, SQL and more - Extended javascript completion with support for jQuery and underscore.js
- Custom prompt with current mercurial/git branch name and status flags
- New completion function for
curl
- Wrapper function
t
for taskwarrior
git l
andgit gl
show git log in custom one-line formatgit dfm
shows diff using Mac OS X FileMerge
- New color scheme:
light.penta
- New plugins to send current URL and selection to Delibar, Twitterrific or The Hit List
- New color scheme:
Prime.itermcolors
rake python:install_pip_tools
install python packages frompython/requirements.txt
rake vim:macvim
build MacVim with current python versionfab install_remote_dotfiles
build dotfiles and copy them to remote machinefab upload_ssh_key
append~/.ssh/id_rsa.pub
to remoteauthorized_keys
Clone the repository to any folder:
git clone git://github.com/allait/dotfiles ~/Dotfiles
cd ~/Dotfiles
Launch automatic installation (ruby
and rake
are required for this step):
rake install
This will backup all existing files from ~/
to ~/.backup
and replace them with symlinks to files
inside your local repository clone, pull all external plugins and render *.erb
templates for
config files, requiring personal information.
Load existing component Rakefiles, using component name as surrounding rake namespace.
Run git pull
, initialize and update git submodules. For each component:
- Invoke
<component>:install
task (defined astask :install
in<component>/Rakefile
) if present
Or, if <component>:install
is not defined:
- Render all
*.erb
templates - Concatenate each file with
*.local
and*.local.<current-system>
if any. Current system is determined usinguname -s
result, converted to lowercase. - Symlink/copy files from
<component>/name
to~/.name
You can change installation process with ENV
variables, either setting them before invoking rake install
, or passing key=value
pairs as rake arguments. The following ENV
variables can be used:
HOME=/path/ rake install
install to/path/
instead of user home directoryrake install skip=pull
skipgit pull
and git submodule update during installationrake install components=vim,git,web
installs only selected componentsrake install remote=linux
performs installation appending*.remote.linux
files instead of*.local.<system>
Each component can customize its installation process by defining :install
and :uninstall
rake
tasks in its own Rakefile. If present, these tasks will be invoked during installation instead of
the default process.
To uninstall and restore files from ~/.backup
run rake uninstall
from repository folder.
These should work on Mac OS X 10.6 - 10.7. Most of the scripts should work on Linux systems as is, but I've stopped purposefully making them compatible some time ago. Since there are differences in BSD and Linux coreutils, some of the zsh functions and plugins aren't expected to work properly.