My dotfiles are stored in a bare Git repository. I used to store and manage my dotfiles using a non-bare repository and symlinks but recently changed to a Git bare repository because it was simpler and easier to maintain and share. If you want to see the benefits of using a Git bare repository for storing dotfiles, watch this excellent YouTube video by Derek Taylor.
I added a simple alias that turns pull
into pull --rebase
in order to preserve history. I also added pushf
which is short for push --force-with-lease
.
I don't like the default command prefix of Ctrl-b
because it forces me to use two hands or an awkward and inefficient stretch of my left hand to hit both keys. Instead, I changed it to Ctrl-a
, which is much more efficient.
I use oh-my-zsh
to configure my shell. I have also added an alias to make it easier to use a bare Git repo to store my dotfiles. And I have added some pyenv
configuration. I use a combination of the agnoster
theme, iterm2.
Vim out-of-the-box is just not helpful for editing and reading code. I have added some simple configuration, notably line numbers and turning tabs into spaces.
NOTE: The .vimrc includes configurations for Vundle. Please install Vundle before using this configuration.
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
To have both pyenv
and conda
, I ensure that conda
is not automatically activated. When I need to use conda
, I just use conda activate
.
I use starship to customize my prompt.
I installed Homebrew right away to manage packages for MacOS. I installed the following packages:
brew install pyenv tmux nvm screen docker anaconda starship \
zsh-autosuggestions zsh-completions zsh-syntax-highlighting \
jq openjdk
brew cask install iterm2 \
sublime-text visual-studio-code google-chrome
If the oh-my-zsh
framework throws an error message [oh-my-zsh] plugin 'zsh-syntax-highlighting' not found
for plugins zsh-autosuggestions zsh-completions zsh-syntax-highlighting
, ensure that those plugins are saved to your custom plugin folder. For details, see this post.
- Python versions are managed by
pyenv
- Node versions are managed by
nvm