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.darwinfor local OS X specific options and*.remote.linuxfor 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
tfor taskwarrior
git landgit glshow git log in custom one-line formatgit dfmshows 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_toolsinstall python packages frompython/requirements.txtrake vim:macvimbuild MacVim with current python versionfab install_remote_dotfilesbuild dotfiles and copy them to remote machinefab upload_ssh_keyappend~/.ssh/id_rsa.pubto 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>:installtask (defined astask :installin<component>/Rakefile) if present
Or, if <component>:install is not defined:
- Render all
*.erbtemplates - Concatenate each file with
*.localand*.local.<current-system>if any. Current system is determined usinguname -sresult, converted to lowercase. - Symlink/copy files from
<component>/nameto~/.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 installinstall to/path/instead of user home directoryrake install skip=pullskipgit pulland git submodule update during installationrake install components=vim,git,webinstalls only selected componentsrake install remote=linuxperforms installation appending*.remote.linuxfiles 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.