Repository containing all the automations required to setup my development machine in just a few seconds after a fresh install.
Files on this repository are the important configurations that I'm using all the day and I don't want to lose. Feel free to use them and provide me any trick if you think that it could make me life easier. 😬
Among these files you will find highly opinionated configurations for:
- Bash
- bspwm
- Git
- Gitignore
- mutt
- screen
- Tmux
- Vim/Nvim
- Zsh
You can install all the configurations at one once using:
git clone https://github.com/frandieguez/.dotfiles.git ~/.dotfiles;
cd ~/.dotfiles;
./install.sh
and your are done.
This is the recommended way if you know what are you doing :) If you don't want to do this, continue reading... 😬
Clone the repo and link the files that you want in your $HOME path.
Example:
cd $HOME;ln -s .dots/vimrc .vimrc
🐌 Shell
-
In order to make as much configurations available for all shells I have all the common aliases, functions and general configurations available at
src/config/shell
. -
Tons Shell aliases and scripts:
b
forbundle
.g
with no arguments isgit status
and with arguments acts likegit
.git-churn
to show churn for the files changed in the branch.migrate
forrake db:migrate && rake db:rollback && rake db:migrate
.mcd
to make a directory and change into it.replace foo bar **/*.rb
to find and replace within a given list of files.tat
to attach to tmux session named the same as the current directory.v
for$VISUAL
.
💾 zsh + zimfw
- Specific configurations available at
src/zsh/
- Use ohmyzsh for plugin management
- Enabled vi mode
- Plugins installed for technologies that I use
🖊️ vim configuration:
- Use vim-plug to manage plugins.
- Ctrl-P for fuzzy file/buffer/tag finding.
- Run many kinds of tests from vim
- Set
<leader>
to a single space. - Syntax highlighting for CoffeeScript, Textile, Cucumber, Haml, Markdown, and HTML.
- Use Ag instead of Grep when available.
- Map
<leader>ct
to re-index Exuberant Ctags. - Use vim-mkdir for automatically creating non-existing directories before writing the buffer.
✉️ tmux configuration:
- Improve color resolution.
- Set prefix to
Ctrl+a
- Use custom colorscheme for status bar.
🐙 git configuration:
- Adds a
create-branch
alias to create feature branches. - Adds a
delete-branch
alias to delete feature branches. - Adds a
merge-branch
alias to merge feature branches into master. - Adds an
up
alias to fetch and rebaseorigin/master
into the feature branch. Usegit up -i
for interactive rebases. - Adds
post-{checkout,commit,merge}
hooks to re-index your ctags. - Adds
pre-commit
andprepare-commit-msg
stubs that delegate to your local config.
📋 Languages: I try to simplify configuration for languages that I use:
- PHP configurations:
- Composer in $PATH
- node configurations:
- nvm
- yarn
- npm
- Golang configurations:
- goenv
- gopath
- Ruby configuration:
- Add trusted binstubs to the
PATH
. - Load rbenv into the shell, adding shims onto our
PATH
.
- Add trusted binstubs to the
The idea of this repo is to add new settings to it during my own setup process and allow you to contribute to it 🙂
It would be awesome to learn from your experience automating the setup of your environment. So please, feel free to send me your tips and tricks via Twitter (@frandieguez), or opening an issue.
The MIT License (MIT). Please see License for more information.
dotfiles is copyright © 2016-2019 Fran Dieguez. It is free software, and may be redistributed under the terms specified in the [LICENSE
] file.
dotfiles is maintained by Fran Dieguez, ported to use 🌚 dotly