** DEPRECATION NOTICE: smart-shell is now part of my homedir repo. **
This repository contains a set of opinionated configurations to improve the bash experience. I use bash a lot in my day to day job and outside it. One thing I frequently struggle with is when I have to work on another machine, e.g. a server on the cloud, and then I lose all of the configurations I have on my local machine. This problem becomes particularly bothering for me since I have to frequently create new machines on the cloud, making it difficult to apply the new configurations over and over. Furthermore, I might discover a new nice configuration I want to apply, but then I have to apply it on all machines. As such, I decided to push all the common configurations to GitHubs
- Z shell: Install oh-my-zsh for improved experience.
 - Bash: Install oh-my-bash for improved experience.
 - Increase command history to a million so you don't lose any command from your history.
 - Some useful aliases.
 - A colored version of 
catusing vimcat. Just typevimcat <filename>to display file with highlighting. - A random password generator. Try it by calling: 
newpass. - Install fzf for fuzzy finding:
- Use Ctrl-T to search for files in the current hierarchy.
 - Use Ctrl-F to search the content of files in the current hierarchy.
 - Use Ctrl-R to search command history using fuzzy funder.
 
 
- A list of predefined configurations to improve the Vim experience, for example:
- Enable auto indentation
 - Use spaces for indentation instead of tabs.
 - Increase command history to a million so you don't lose any command from your history.
 - Enable incremental search.
 - Enable ruler on the bottom
 - Show relative line numbers for easier navigation
 - Enable incremental search
 - ... and many other you can see in the [vimrc.vim] file.
 
 - Automatically install vim-plug to make it easier to install Vim plugins.
 - Install the following Vim plugins:
 
smart-shell can be installed with the following command:
wget -qO- https://raw.githubusercontent.com/rafidka/smart-shell/master/install.sh | sh
This will do the following:
- Clone the repository under 
~/smart-shell. - Update 
.zshrcand.bash_profilefiles to source~/smart-shell/activate.sh. This file, on the other hand, ensures that the repository is up-to-date and then source the~/smart-shell/smart-shell.{bash|zsh}file. - Update 
.vimrcto source~/smart-shell/vimrc.vim. - Upon execution, 
smart-shell.{bash|zsh}will also install the necessary plugins. 
It is also worth mentioning that depending on whether you are running bash in
interactive or non-interactive mode, either .bashrc or .bash_profile will
be loaded. It is possible to put all your configuration in .bashrc and then
in .bash_profile you simply source .bashrc like:
[ -f ~/.bashrc ] && . ~/.bashrc