______________ < cam carter's > < dotfiles > -------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || # another dotfile repo? yes
What the heck is this?
Disclaimer: these dotfiles are constantly changing, because I can never make up my mind on how things should work
This repo contains dotfile configurations. It also contains a deployment script to install Vim, zsh, and tmux, if you do not have them already. The included software and there configuration files are meant to be a lightweight toolkit usable on any UNIX-based machine, hopefully.
- A ton of vim plugins (and some zsh) all in one place, curated and customized for (my) your enjoyment!
- A simple deployment scipt that (should work) works on every system!
- Custom functions and aliases that will make (my) your life easier!
Don't be afraid! Fork this repository!
To install and deploy, copy and paste the following commands into your terminal:
cd ~ git clone https://github.com/cam-carter/dotfiles cd dotfiles ./deploy
Requires Vim version 8 and for macOS users, Homebrew
Everything should work with Neovim (which I will be transitioning to in the coming months), if you switch over all the config files
Keeping things up to date.
You don't have to worry about updating these configuration files every time the master branch is changed. The following few lines of code, found in
~/dotfiles/zsh/lib/zshrc-manager.sh, updates the main git repository and the included submodules whenever a new terminal is launched:
echo "Updating configuration..." (cd $HOME/dotfiles && git pull && git submodule update --init --recursive) source $HOME/dotfiles/zsh/zshrc.sh
Your grandpa's text editor! Vim has been in active development since 1979 with the release of vi in 2BSD. It is open-source and highly configurable... what's not to love?
The configuration files included in this repo provide some improved key-bindingsand also a bundle of plugins useful for editing with Vim. Vim is a very difficult program to learn and get used to, but once you are able to conquer the steep learning curve, the power you command is incomparable (except for maybe Emacs).
All Vim plugins in this package are managed by pathogen.vim.
To add new plugins to Vim you can either place them inside
~/.vim/bundle or you can add them as a submodule under
~/dotfiles/vim/.vim/bundle. For example, to install fugitive.vim (which is included with these dotfiles), run the following commands:
cd ~/dotfiles/vim/.vim/bundle git submodule add https://github.com/tpope/vim-fugitive
The plugins are currently sourced using a symbolic link between
- fugitive.vim - a Git wrapper so awesome, it should be illegal
- vim-gitgutter - a vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks
- vim-indent-guides - true Sublime Text style multiple selections for vim
- rails.vim - Ruby on Rails power tools
- UtliSnips - the ultimate snippet solution for vim
- vim-snippets - snippets files for various programming languages
- surround.vim - quoting/parenthesizing made simple
- vim-flake8 - Flake8 plugin for vim
- vim-colors-solarized - precision colorscheme for vim text editor
- vim-autoclose - inserts matching delimeters
- vim-airline - lean & mean status/tabline for vim that's light as air
- vim-airline-themes - a collection of themes for vim-airline
- undotree - the ultimate undo history visualizer for vim
- tabular - vim script for text filtering and alignment
- syntastic - syntax checking hacks for vim
- SimpylFold - no-bs python code folding for vim
- NERDTree - a tree explorer plugin for vim
- nerdtree-git-plugin - a plugin for NERDTree showing git status
- NERDCommenter- vim plugin for improved commenting functionality
- goyo.vim - distraction-free writing in vim
- limelight.vim - hyperfocus-writing in vim
- indentpython.vim - an alternative indentation script for python
- ctrlp.vim - Fuzzy file, buffer, mru, tag, etc finder
Zsh (Z shell) is a Unix shell that can be used as a powerful command interpreter for shell scripting. The first version of Zsh was written by Paul Falstad in 1990.
Attached with these dotfiles include an assortment of Zsh plugins, managed with Oh My Zsh!, and custom aliases and functions.
Aliases & Functions
||Works like the default
||This function changes to the parent directory
||This function changes to the user's home directory
||This function lists the contents of the working directory
||This function clears the current terminal window
||While inside a git repository, this function will add all changes to be committed, commit the changes, using the buffer as the commit message, and then push the changes upstream
||If the buffer is empty, the enter key lists the contents of the current directory
tmux is a terminal multiplexer, allowing a user to access multiple terminal sessions inside a single terminal window or a remote terminal session. It is extremely useful for handling multiple running terminal sessions.