Oh-My-Zsh Plugins

Page content

Just writing to put my thoughts about some ‘Oh-my-zsh’ plugins.
For those that have a ZSH, I recommend getting ‘Oh-My-Zsh’. I am particular about the view of my command line, as everyone is, and this just helps me customize it. See over for how to setup ‘Oh-My-Zsh’. There is a “Powershell” version which I used and also recommend, I actually heard about that one before ‘Oh-My-Zsh’. The Powershell is ‘Oh-My-PSH’, “PSH” being an abbreviation for “PowerShell”. Powershell is typically for Windows systems, though you can get Powershell on Mac, not sure about Linux. Additionally, there is an “Oh-My-Bash” for bash, and I believe one for FSH.
As with any of these, and just like the themes, the plugins may not entirely translate from one to the next or they may not be available at all. For example, there may not be a ‘jira’ plugin for the ‘Oh-my-bash’ but there is one for ‘Oh-my-zsh’.

The warning in the .zshrc file after installing ‘oh-my-zsh’ in the plugins section warns “Add wisely, as too many plugins slow down shell startup”. I have not seen this be an issue personally, but for those that are in a terminal, I feel that we are ALWAYS in a terminal so “shell startup” is not that much of an issue. We do it on boot/reboot, and that’s it because its always up and on. Its not like we are starting it up 100 times a day. Well, maybe some are starting a new session, window, pane multiple times a day. However, I have not seen anything to slow it down yet. Though, I am also a minimalist and I would also heed that warning.

Looking at the list of “plugins” available, I could see how some things can be slowed down. Many of them seem to be ‘shortcuts’. And by ‘shortcuts’, I mean an alias file. So now instead of typing in “ls” you just type “l”. What a time savings. I exaggerate and kid. Personally, I feel that all those aliases are superfluous and not needed. I think you should remember how to do it as intended and then if you want to make your own for your own workflow that is fine. But its still needed to know what you are doing. If you don’t, then don’t touch those aliases yet. Learn the commands, otherwise you could be consistently doing something bad.

For those that run a certain command 1,000 times a day, go for these alias ‘plugins’, however if you are already doing certain commands 1,000 times a day, then you probably already have your own aliases for what you need them for and don’t need a plugin. These do provide some value in showing what other people are doing and giving you some good insight and thoughts.
Another thought that popped in my mind, many people use the up/down arrows when it comes to commands. I typed in command X 3 commands ago, so just use the up arrow and scroll through it so I don’t have to retype it. That is even shorter and easier than a shortcut or alias.

Bottom line, imho, don’t just install a plugin that is a shortcut/alias just because you think you will use it. I struggle with that at times, but usually those are not needed.

Lastly, I mean no disrespect to anyone that uses these and especially no harm to anyone that made them. The people that made them saw a gap in their workflow and needed to fill it and are smart enough to know how to create something to fill that need in their workflow. That is an amazing thing. They should keep up the good work.

Here is a personal breakdown of some of these plugins.

The Good

jira My team uses jira and this helps me look at things in jira when I do need it and I am on the command line. Its not something I use constantly or all the time, as I often go to the website initially, but its great when I am in the flow and I can just go back and forth on the cli.

jsontools
This is great to visualize json in a nice clean way. Even if/when I don’t use curl or something that outputs json to the cli, I can still use this to visualize the json in other ways, and thats why I love it.

git
There is a ton of git plugins, including github, gitfast, gitignore, git-prompt, git-lfs, git-hubflow, git-flow, git-extras, git-flow-avh, git-escape-magic, git-auto-fetch… I have not gone through most of these though.
This is another shortuct / alias plugin though.
What is nice is some additional functions that are put into it. I know I hate on the shortcuts/aliases, but this is possibly worth it for the functions and more advanced shortcuts.

pyenv For those using python, this is a must have. THis helps switch between python environments. You may need 3.8 for one project, but need to support a 2.7 project, while then trying to convert and use the latest python going forward. Get this.

copybuffer / copyfile / copypath
these are great little things to start with. The whole copy/paste with iterm and tmux frustrates me, though I understand because I am in and out of the terminal all the time and I just want to ctrl-c and ctrl-v all day.
……..

wakatime I like to keep track of my time per project. This is a personal thing, not recommended for anyone else, but this helps me see what I am working in and for how long.

zshnotes
I love this, but my problem is my own orginzation with it. I will use it heavily for a few weeks, and then forget about it and then realize i made notes and forget where I put them and don’t think of the notes being in this until a week after that…at which point I resolve to use this more diligently, starting the cycle over again. When I do use it, its great. I almost wish there was some more customization options, but that is a crazy rabbit hole I don’t think should be crossed.

web-search

timer

chucknorris

The Ugly

tmux This is double useless in my opinion. For those that use tmux, you have a hotkey and then press the key you wan to do. In just 3 keys you could do 90% of what tmux can do. Some tmux commands are 4 or 5 keys. Which does include the initial ‘modifier key’. Additionally, there is a built in modifier that will then pull up a command line to execute a tmux action by typing it. So most ‘shortcut’ or ‘alias’ is worthless in my opinion as you can already do everything in fewer keystrokes.

brew This is also a bit useless. Most Homebrew / brew commands are super short. Its just brew .... I am also not doing much more than what 95% of people are doing with install/uninstall/update/upgrade.

screen This was especially worthless if you have tmux imho. It “sets the title and hardstatus of the tab window for screen”. If using tmux there is a default it does for each “window” and “pane” and these can be easily renamed. Otherwise, the terminal title is set to something else. I am so use to not looking at that, and when tmux lets you change things when you have multiple windows open that title bar because useless. Maybe if i saw a better use case in my workflow, but its not really worth it.

rebar More shortcuts and aliases for elixer.

repo More shortcuts and aliases for repo. Not sure if this means with git or svn or something else, looking at the code I don’t see that it must be something else.

golang More shortucts and aliases for go/golang, and in my opinion its just “lazy” stuff. Do you really need a shortcut for go build?

iterm2 I find this to also be worthless if you are using tmux. With tmux, i don’t see or really interact with the iterm2 interface and commands. So what iterm2 has to offer me is nothing, and a shortcut to do one of those things is more useless.

NOTE: Again, this is for the oh-my-zsh plugins, not the actual application. I love the individual applications, but the plugins (for me) just don’t do much of anything. Everyone has a different workflow, and for my workflow they don’t work.
With that said, I will find myself downloading or adding tons of apps and plugins, and then pruning back. Other people I know have gradually gone down this rabbit hoel and workflow and have slowly added and changed things, and as they have done so, some of these plugins are still installed but they haven’t touched in a year. At the time, it worked great for their workflow. The same might be for you as well, but just something to keep in mind to assess and reassess what works and what is being used and not used.