This post describe with rc files are and what they are used for pertaining to the Unix world. Have you seen the files ending with “rc”? (vimrc, screenrc)


As with everything in life, all that we use have a backstory. If you take a look at the Unix section of the wiki page on configuration files, leads to the wiki page on run commands, which is where the rc comes from. Quoting from the run commands page:

In the context of Unix-like systems, the term rc stands for the phrase “run commands”. It is used for any file that contains startup information for a command. It is believed to have originated somewhere in 1965 from a runcom facility from the MIT Compatible Time-Sharing System (CTSS). In a nutshell, these file are like config files(vimrc)/ commands(bashrc) that can be invoked by the program during startup. One place obvious stop for the users to change and edit system config.

Storing RCs

RCs are awesome for numerous reasons as stated above. This post kind of functions as an archive of very basic RCs I use.


Install zsh terminal emulator along with oh_my_zsh. Next install following plugins:

git clone $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone --depth 1 -- $ZSH_CUSTOM/plugins/zsh-autocomplete

Enable them by editing ~/.zshrc:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting fast-syntax-highlighting zsh-autocomplete)
source ~/.zshrc


Writing your own VIMRC is recommended. But as with everyone, when you have too many options, I get nothing working. Hence till date, I have been using:

A great source to learn high level tmux workings: Tmux 101

Works for me, should be good for you. To learn how to write your own .vimrc, I will recommend reading:


For .tmux.conf, I personally recommend using:

I have found this to be much better than the GNU Screen. You might want to understand the options better in case you want it to play well with your .vimrc. In that case, refer to these documents to learn how to write your own config:


# This is Git's per-user configuration file.
# Please adapt and uncomment the following lines:
name = Pranay Garg
email =

	editor = vim

    diff = delta
    log = delta
    reflog = delta
    show = delta

    diffFilter = delta --color-only --features=interactive

    features = side-by-side line-numbers decorations
    syntax-theme = Dracula
    plus-style = syntax "#003800"
    minus-style = syntax "#3f0001"

[delta "decorations"]
    commit-decoration-style = bold yellow box ul
    file-style = bold yellow ul
    file-decoration-style = none
    hunk-header-decoration-style = cyan box ul

[delta "line-numbers"]
    line-numbers-left-style = cyan
    line-numbers-right-style = cyan
    line-numbers-minus-style = 124
    line-numbers-plus-style = 28


Install GEF for that eye candy and quality of life improvement. In addition, add following to your ~/.gdbinit:

define bsave
    shell rm -f .brestore.txt
    set logging file .brestore.txt
    set logging on
    info break
    set logging off
    # Reformat on-the-fly to a valid GDB command file
    shell perl -n -e 'print "break $1\n" if /^\d+.+?(\S+)$/g' .brestore.txt > .brestore.gdb
document bsave
  store actual breakpoints

define brestore
  source .brestore.gdb
document brestore
  restore breakpoints saved by bsave

That’s all for now!