> Environment Setup
Before starting the challenge, I wanted to set up a positive development environment to build good coding habits. I set up the following useful tools during this time: zsh, iterm2, vim, and various keyboard shortcuts for the MacOSX.
- Github - Code
iTerm2 is a terminal emulator. It supports features such as split planes, hotkey window, built-in search, terminal shortcuts, etc., and has a lot of support for different shell integration options such as zsh.
I mainly switched to iTerm2 for easier zsh integration, and for the super awesome hotkey window for terminals everywhere.
iTerm2 Split Panes
iTerm2 Hotkey Window
Zsh, or "Z shell" is a unix shell for the command line. Zsh goes hand-in-hand with the community-based, online platform called Oh My Zsh!, which features major extensions such as plug-ins, themes, and customization options for zsh.
Basically I switched from the default bash to iTerm2/zsh to make my terminal look prettier.
Check out my .zshrc here.
Thorough installation instructions that I used to setup my terminal - for MacOS
- iTerm2 + Oh My Zsh + Solarized color scheme + Source Code Pro Powerline + Font Awesome + [Powerlevel10k]
- iTerm2 Shortcuts
- iTerm Color Schemes
- iTerm2 Material Design (material color palette)
- Powerlevel9k (zsh theme that uses powerline fonts)
- Zsh Syntax Highlighting (terminal command highlighting)
- Spectacle (keyboard shortcuts for window resizing)
- htop (interactive process viewer)
- Asciiquarium (because it's cool)
One skill that I have always wanted to learn, and have only had brief exposure to so far, was Vim.
I wanted to get more proficient at using Vim to navigate around the IDE more effectively, and to not have to rely on GUIs all the time. Using vim is especially useful when having to modify remote files.
To add extensions to vim, modify the .vimrc located in the home directory. I added PEP8 linters, 80 character limit rulers, relative numbering, indentation/bracketing rules, file trees, status bar themes, and other useful plugins to my vim setup.
Check out my .vimrc here.
Useful articles that helped me set up my .vimrc:
Introduction to vimrc/plugin setup
- Vim and Python: A Match Made in Heaven (plugins tutorial)
- Ultimate Vim Configurations (interesting vimrc)
- Configure Vim from Scratch (more interesting suggestions)
- My Neovim Configuration (good description/setup)
- Awesome Vim (list of useful plugins)
- Vim Awesome (list of useful plugins)
- 10 Essential Vim Plugins for 2018 (most often used plugins)
- Configuring ESLint and Prettier for Vim (ale and prettier config)
- Asynchronous Lint Engine (ale - github)
- Vim Airline (vim airline - github)
- Vim Airline Screenshots (airline theme downloads)
- Powerline Fonts (installing powerline fonts for airline)
- StackOverflow: How do I configure the Vim airline plugin to look like its own project screenshot? (airline plugin setup)
- StackOverflow: How do I fix the status bar symbols in the Airline plugin? (fixing symbols)
- NerdTree (file system explorer)
- Awesome Vim Color Schemes(color scheme downloads)
- StackOverFlow: How to replace tabs with spaces? (:retab)
- StackOverFlow: Why does vim not highlight leading and trailing spaces? (marking trailing/leading whitespaces)
- Vim Tutor: type "vimtutor" in your terminal
- Vim Adventures
- Vim Cheatsheet
- 101 Beginner's Guide to Vim
Status bar (Vim Airline)