When comparing MacVim vs zsh, the Slant community recommends MacVim for most people. In the question“What are the best power user tools for macOS?” MacVim is ranked 24th while zsh is ranked 53rd. The most important reason people chose MacVim is:
Every plugin available for Vim is available for MacVim too.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Lots of plugins
Every plugin available for Vim is available for MacVim too.
Pro Extremely customizable
MacVim is Vim, meaning it has all of Vim's customizability and power.
Pro OS X input methods
MacVim supports OSX's native shortcuts making the adoption of Vim easier.
Pro Extensive community support
MacVim, like Vim itself has a large community backing it.
Pro Automatic font substitution
In cases of a selected font missing certain characters, MacVim will find a font that has that character.
Pro Vimtutor teaches the basics of Vim in 30 minutes
Vimtutor is an excellent interactive tutorial for people with no prior experience of Vim. It's bundled with Vim and takes about 30 minutes to complete.
Pro Everything is a mnemonic
Vim associates keys with words. For example, d
is for "delete" and w
is for "word". To perform an action you string together letters. Thus, to delete a word, press dw.
This way it's possible to abstract a large amount of functionality that Vim provides in an intuitive way.
Pro Enables effective keyboard-driven editing due to its modal nature
Interaction with Vim is centered around several modes. Each mode has a different purpose and switching between them changes behaviour and keybindings. There are 12 modes in total (six basic modes and six variations on basic modes) and four of them are used commonly.
Insert mode is for entering text. This mode most resembles traditional text entry in most editors.
Normal mode (the default) is entered by hitting ESC and converts all keybindings to center around movement within the file, search, pane selection, etc.
Command mode is entered by hitting ":" in Normal mode and allows you to execute Vim commands and scripts similar in fashion to a shell.
Visual mode is for selecting lines, blocks, and characters of code.
Modes allow separating concerns between various tasks and reusing keys for different kinds of functionality. As a result, the workflow becomes more efficient.
Pro Multi-byte support
Permits writing characters that don't fit in one byte, most notably logograms (for writing in languages such as Japanese, Chinese, and Korean) and Unicode characters.
Pro Interactive autocompletion
When you start typing a command, you can press the tab key and it will complete the command you started typing. If there are multiple potential commands, you can choose which one to run by simply pressing tab again. Case-insensitive by default, too.
Pro Powerful community-driven tools via oh-my-zsh
Oh-my-zsh is a community-driven framework, which helps users with their zsh configuration and plugins. 400 plugins, 200+ themes and auto-updates to always be up to date.
Pro Autocomplete for options
Zsh intelligently determines if you are trying to complete a file path or an option, and pressing tab after typing -
will reliably bring up a list of options.
Pro Good bash compatibility
Things you've learned using bash will largely apply to zsh. Scripts written in bash will run with little to no modification.
Pro Safer variable behaviour
Unlike Bash, zsh does not split unquoted variables by default, making it less error-prone.
Pro Recursive globbing
ls **/*.log
for example is supported by ZSH.
Pro Great install procedure
Zsh will take you through a procedure which is roughly 30 minutes in length before during install. Through this procedure it asks you to set different options and customize the shell the way you want it to. Most of these settings are also found in other shells, but to customize them you have to go dig configuration files while zsh allows you to do it in the beginning.
Pro Shared histories
If you spend a lot of time in the terminal, most likely you will have several terminal windows open. Zsh has great support for command line histories. The history is unique and shared through all the different instances.
Pro Smart escaping
Zsh can determine the context of the command you're typing in and determine if it should escape characters if you're typing in a URI.
Pro Pipe output to a temporary file:
Some programs don't support loading from stdin, but ZSH can store outputs to a temporary file, example: unzip =(curl http://example.com/someZipFile.zip)
Pro Faster spelling correction
Zsh' s correct (or correctall) is vastly superior to Bash's attempt at spelling correction.
Cons
Con Slow when opening files with very long lines
A lot of very long lines can make MacVim take up to a minute to open, where a few other editors take only a few seconds to load the same file.
Con Only available on macOS
A decent text editor is available on all major platforms (macOS, Linux, Windows).
Con Difficult learning curve
MacVim after all is still Vim, and with that comes the complexity that Vim brings and the difficult learning curve that needs to be overcome.
Con Not fully compatible with bash
There is a small chance you may have a bash script that doesn't work in zsh, although this is very very rare and most developers will never run into any issues.
Con Requires a lot of configuration to be used fully
Zsh requires a lot of tinkering with configuration files and downloading plugins in order to be able to do tasks which other shells may be able to do out of the box.
Con Defaults are unfriendly for a long-time bash user
Expect to find a configuration you like (or use the configuration utility) to set reasonable preferences. Default zsh interaction is different enough to make you stutter through what used to be familiar workflows.