Notes from using ZSH instead of Bash.
Contains:
- Custom rc script that configures custom auto completes
- Alias Script broken out (for custom commands)
- Remind Script (invoke with
r?
or?
orremind
) - EC2 SSH Script (that references $AWS_KEY env variable)
- ZSH Hook to change node version based on
.nvmrc
file when changing directories
TBD:
- [..] Doctor Script (for preparing shell when navigating to projects)
- [..] init and setup scripts (for install steps below)
zsh -c "$(curl -fsSl https://raw.githubusercontent.com/devlinjunker/shell/master/zsh/setup.zsh)"
- Install:
- Oh My ZSH
- [Optional] iTerm?
- [Optional] MacPorts
- [Optional] Chrome (think about switch to FF?)
- Clone this repo
- Add Symbolic Link for all themes to
~/.oh-my-zsh/themes/
- Update theme name in
~/.zshrc
tobira+gitstatus
- Source
zshrc.sym
from this repo in~/.zshrc
(so it is executed on startup)
- ZSH provides autocomplete for git out of the box with
autoload -Uz compinit && compinit
inzshrc.sym
- SSH Autocomplete improved with commands in
zshrc.sym
also (?)
- Community seems to be moving away from Homebrew and towards MacPorts
- https://saagarjha.com/blog/2019/04/26/thoughts-on-macos-package-managers/
- Sets up tools in isolation from system tools
- Any kind of MacOS update that changes library versions will never affect an app installed by MacPorts
- requires sudo for any action that affects all users (most)
- Sets up under /opt (need to add to $PATH)
- More Colors?
- TODO: More notes here
- Sort of based on https://github.com/whatyouhide/dotfiles
- Started on init.sh script
- cleaner
- uses oh-my-zsh: https://github.com/ohmyzsh/ohmyzsh
- Created specific zsh env files
- Split aliases and functions into separate files
- created one that is dependent on osx (osx.zsh)
- Started on interactive prompt for remind (r!) script
- script that reminds us of commands to use
- renamed help file to remind with
r!
script
- ssh autocomplete
- need to add config in
~/.ssh/config
- Need to investigate more
- Can we autocomplete anything in
~/.ssh/known_hosts
? - How does config work? user is automatically used? but how do I reference?
- Can we autocomplete anything in
- need to add config in
- Started on doctor.zsh script
- add symbolic link in scripts directory to doctor.zsh so we have access in the path
- renamed init to setup.sh for once repo downloaded
- installed vscode command line exec, open with:
code <file_path>
.zshenv
is executed on every new shell instance- linked to my
zshenv.sym
file in this directory
- linked to my
- /Users/devlinjunker/.nvm/versions/node/v14.14.0/bin (from Macports I think)
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Library/Apple/usr/bin
- /Users/devlinjunker/Code/shell/zsh/../scripts (Add Custom Scripts from
shell/scripts
) - /opt/local/bin (Added for MacPorts?)
- Themes, Plugins, Framework for Configuring ZSH Shell
- Comes with Default
.zshrc
file- Sets theme + other configurations
- Plus other customer lines to import my things
- Currently:
- Points at custom
zshrc.sym
file in this directory
- Points at custom
- Currently:
- Defines which plugins should be loaded
- Currently:
- git
- Currently:
- set up custom theme
bira+gitstatus
- copied bira from
~/.oh-my-zsh/themes/
tothemes/
directory repo- This is a ruby based theme.. may want to move away from this
- symbolic link in
~/.oh-my-zsh/themes/
to the directory inthemes/
- set theme name in
.zshrc
- use personal
gitstatus
script in prompt - shows user, host and current directory + git status if in directory
- copied bira from
- Advanced Terminal (improved over osx terminal)
- Features: https://iterm2.com/features.html
- TODO: Review these more