When comparing Vim vs ConEmu, the Slant community recommends ConEmu for most people. In the question“What are the best power user tools for Windows?” ConEmu is ranked 9th while Vim is ranked 32nd. The most important reason people chose ConEmu is:
ConEmu allows running CMD, PowerShell, Cygwin, PuTTY, TCC/LE, etc.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Lightweight and fast
When compared to modern graphical editors like Atom and Brackets (which have underlying HTML5 engines, browsers, Node, etc.), Vim uses a sliver of the system's memory and it loads instantly, all the while delivering the same features. Vim is also faster than Emacs.
Pro Free and open-source software
Vim is open-source, GPL-compatible charityware.
Pro Works in terminal over SSH
Unlike other editors such as Sublime Text, Vim is a command line editor and hence can be used in remote development environments like Chromebooks via SSH.
Pro Extremely portable
Vi/vim exists on almost all Unix-like platforms. It's the de-facto Unix editor and is easily installed on Windows. All you need to make it work is a text-based connection, so it works well for remote machines with slow connections, or when you're too lazy to set up a VNC/Remote Desktop connection.
Pro Keyboard-based, mouse-free interface, and trackpad support
There's no need to reach for the mouse or the Ctrl/Alt buttons again. Everything is a mere key press or two away with almost 200 functions specifically for text editing. Vim does support the mouse, but it's designed so you don't have to use it for greater efficiency.
Versions of Vim, like gVim or MacVim, still allow you to use the mouse and familiar platform shortcuts. That can help ease the learning curve and you'll probably find you won't want to (or need to) use the mouse after a while.
Pro Great productivity
Vim's keyset is mainly restricted to the alphanumeric keys and the escape key. This is an enduring relic of its teletype heritage, but has the effect of making my ost of Vim's functionality accessible without frequent awkward finger reaches.
Pro Macros increase productivity
Many text editors have programmable macros, but since Vim is keyboard-based, your programmed macros are usually far more predictable and easier to understand.
Pro Excellent performance
As it loads the whole file into RAM, replacing all string occurrences in 100 MB+ files is quick and easy. Every other editor has sort of died during that. It is extremely fast even for cold start. Vim is light-weight and very compact. In terminal, it only uses a small amount of memory and anytime you invoke Vim, it's extremely fast. It's immediate, so much so you can't even notice any time lag.
Pro Tons of plugins/add-ons
This makes Vim the definitive resource for every environment (Ruby/Rails, Python, C, etc.), or simply just provides more information in your view.
Pro Everything is mnemonic
No need to memorize different key combinations for things like deleting the text inside of a block or deleting the text inside of a pair of quotes. It's just a series of actions, or nouns and verbs, or however you prefer to think about it. If you want to delete, you select "d"; if you want it to happen inside something, you select "i"; and if you want the surrounding double-quotes, just select ". But if you were changing the text, or copying it, or anything else, you'd still use the same "i" and ". This makes it very easy to remember a large number of different extremely useful commands, without the effort it takes to remember all of the Emacs "magic incantations", for example.
Pro Vimtutor
Vimtutor is an excellent interactive tutorial for people with no prior experience of Vim. It takes about 30 minutes to complete.
Pro Usable from a Terminal or with a GUI (GVim, MacVim)
If you happen to be logged into SSH, you can use Vim in a terminal. It can also run with a GUI too.
Pro Has been supported for a long time
And will be supported for many years to come.
Pro Once learned, it's very hard to forget
Vim's somewhat steep learning curve is more than made up for once you've mastered a few basic concepts and learned the tricks that allow you to program faster with fewer cut/paste mistakes.
Pro Can never outgrow it
The fact that very few, if any, people claim to be a "Vim Master" is a testament to the breadth and depth of Vim. There is always something new to learn - a new, perhaps more efficient, way to use it. This prevents Vim from ever feeling stale. It's always fresh.
Pro Flexible feature-set
Vim allows users to include many features found in IDEs and competing editors, but does not force them all on the user. This not only helps keep it lighter in weight than a lot of other options, but it also helps ensure that some unused features will not get in the way.
Pro Has multiple distinct editing modes
Interaction with Vim is centered around several "modes", where purpose and keybindings differ in each.
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.
Those are the major modes, and several more exist depending on what one defines as a "mode" in Vim.
Pro By default in Linux
All Linux distributions out there will have Vim built into them, which is highly convenient!
Pro Vim encourages discipline
If you use Vim long enough, it will rewire your brain to be more efficient.
Pro Useful undo features
Vim does not only offer unlimited undo levels, later releases support an undo tree. It eventually gives the editor VCS-like features. You can undo the current file to any point in the past, even if a change was already undone again. Another neat feature is persistent undo, which enables to undo changes after the file was closed and reopened again.
Pro Donations and support to Vim.org helps children in Uganda through ICCF Holland
Pro Built-in package management
Starting with Vim 8, a package manager has been built into Vim. The package manager helps keep track of installed plugins, their versions and also only loads the needed plugins on startup depending on the file type.
Pro If you can use Vim you can also use vi
Pro Works on Android
Pro Productivity enhancing modal paradigm
As with all vi-like editors, Vim provides a modal paradigm for text editing and processing that provides a rich syntax and semantic model for composing succinct, powerful commands. While this requires some initial investment in learning how it works in order to take full advantage of its capabilities, it rewards the user well in the long run. This modal interface paradigm also lends itself surprisingly well to many other types of applications that can be controlled by vi-like keybindings, such as browsers, image viewers, media players, network clients (for email and other communication media), and window managers. Even shells (including zsh, tcsh, mksh, and bash, among others) come with vi-like keybinding features that can greatly enhance user comfort and efficiency when the user is familiar with the vi modal editing paradigm.
Pro Asynchronous I/O support
Since Vim 8, Vim can exchange characters with background processes asynchronously. This avoids the problem of the text editor getting stuck when a plugin that had to communicate with a server was running. Now plugins can send and receive data from external scripts without forcing Vim to freeze.
Pro Can set up keymapping
Pro Multiple clipboards
It is called "registers".
Pro Status Booster
Using vim not just increase your productivity, but helps you flex.
Pro Can be used with any shell
ConEmu allows running CMD, PowerShell, Cygwin, PuTTY, TCC/LE, etc.
Pro Highly customizable
You can configure a plethora of settings, including shortcuts and aesthetics (background image, transparency, colors, and fonts) per software.
Pro Explorer integration
ConEmu integrates well with Explorer.
Pro Highly configurable hotkeys
Hotkeys allow the user to easily trigger an action and can be configured to their liking.
Pro Tab support
ConEmu allows the user to create tabs (Win+W by default) for separate instances of the terminal window, allowing them to have both multiple shells and multiple instances of the same shell open. The user can also set up a startup directory for each tab and run each tab as a specific user or rights.
Pro Run DOS applications with DosBox
If you have both ConEmu and DosBox installed, you can run DOS applications (and games) within a 64-bit OS environment.
Pro Integrates with FarManager
ConEmu was originally designed as an updated front-end specifically for the FarManager, which means it has increased functionality.
Pro Progress Bar integration
ConEmu permits the user to check up on the progress of an operation with a quick glance at the taskbar, without needing to bring the app to the foreground.
Pro Useful status bar details
Not only does the status bar show detailed information out-of-the-box, it can be configured for your specific needs.
Pro Free and open source
ConEmu is licensed under New BSD which is a class of very simple and liberal software licenses.
Pro Dynamically resize the window
You can change the width and height of the console window without having to reset your session.
Pro Run simple GUI apps within a ConEmu tab
With -new_console and -cur_console switches you can run simple GUI apps in a ConEmu tab (or split).
Pro Transparent, Quake-style mode
You can set up ConEmu as a transparent, Quake-style console by following these instructions.
Pro Supports borderless mode
To put ConEmu in borderless mode:
Set Main -> Appearance -> Frame Width to 0
Pro Supports Jump Lists
ConEmu allows pinning commands to Jump Lists (available in Windows 7 & 8; accessed by right-clicking the application in the taskbar), giving you quick access to common tasks and configurations.
Pro Search in console input/output history
ConEmu supports searching in all text that has been printed or entered in the console history.
Pro Actively developed
ConEmu is under active development. Updates roll out almost daily with bugfixes and new features.
Pro Box selection
ConEmu offers multiple, configurable ways of interacting with text, including an ability to select text in a rectangular way.
Pro Built-in screenshot tool
The screenshot tool allows the user to capture their computer desktop or anything shown on their computer screen in a static image file.
Pro Auto discovers your shells
Zero config gets you all your installed shells.
Pro Closest replacement for iTerm2 users
Supports many of the features that iTerm users have become accustom to (like multiple tabs, highlighting, configurable scroll bars, decent support for themed color pallets to support basic/solarized/etc.).
Pro Works well with Vim/Neovim on Windows
There were issues before that forced me to use graphical versions of Vim/Neovim, but latest versions of Conemu + Neovim, seem to be working much better on Windows now.
Pro Works well with WSL/Tmux/Neovim/SSH
There were issues before in the WSL usage scenario that forced me to use an X gui terminal using X forwarding, but now Conemu is working great, and is the only terminal I use from Windows/WSL.
Cons
Con High effort to customize
A lot of time and effort is put in to make it specific to your needs.
Con Difficult learning curve
You'll spend a lot of time learning all the commands and modes supported in Vim. You'll then spend more time tuning settings to your needs. Although once it's tuned to your needs, you can take your .vimrc
to any machine you need and have the same experience across all your computers.
Con Difficult to copy, paste, and delete
Con Poor support for external tooling
Many plugins depend on optional Python and Lua features, which may or may not be included in whatever binaries are available for your system. And without platform-specific hacks, it is difficult for plugins to operate in the background or use external tooling.
Con Poor feature discoverability
Though basic features like syntax checking, autocompletion, and file management are all available out of the box or with minimal configuration, this is not obvious to new users, who might get intimidated or assume they need to install complex plugins just so they can have this functionality. Other features new users might expect to find embedded in Vim, such as debugging, instead follow a UNIX-style model where they are called as external programs, the output of which might then be parsed by Vim so it can display results. Users not familiar with this paradigm will likely fault Vim for lacking those features as well.
Con No smooth scrolling
Even with the GUI version, the lines jiggle line-by-line. If you are used to smooth scrolling, this is very annoying, especially when working with larger files.
Con Doesn't play nice with the system cut/paste mechanisms
This can be worked around somewhat if you disable mouse for insert mode. You can then right-click your terminal and use paste like you would anywhere else in a terminal.
But it still doesn't feel right when the rest of your system uses Ctrl-C/Ctrl-V, and you have a system clipboard manager, and so forth.
Con Outdated UI
Con Requires Brain Mode Switching
When editing in vim, you have you use the vim keys; when editing in every other window on your PC, or in Word or Excel or other application, you need to use the standard system key combinations. Learning the vim combinations can actually make you SLOWER at everything else.
Con Slow when opening files with very long lines
A lot of very long lines can make Vim take up to a minute to open files, where a few other editors take only seconds to load the same file.
Con Consume brain energy for editing that should be used for logic
Text editing in vim is awesome, but it requires thinking about combination of commands. In other editors, you don't have to think about how to delete this part of code. You just think about how to implement a feature, what is a good design for this code. Even after you get used to using vim, it still requires your brain for editing.
Con Foreign keyboards have a hard time on Vim out of the box
A lot of frequently-used keybinds are way harder to access on foreign keyboards because they use different layouts.
For example, Germans use the QWERTZ layout, while French use the AZERTY.
Con Unintuitive mode switching
Con Extensibility isn't that great
While it has gotten better and some projects are slowly starting to build proper extension support, it still can't and by design never will achieve the extensibility of another editor like emacs.
Con Works poorly out of the box with right-to-left
Con Default look is somewhat unpleasant
In order to get a more pleasant look and feel, you may need to customize ConEmu yourself.
Con Layering of features per tab works with limited functionality
Can't do all of this, but it can theme colors per terminal:
Tab 1: I want it transparent, with a fixed background, with a certain color scheme, running powershell
Tab 2: Similar thing, but different bg, theme, and running posh as admin
Tab 3: Similar thing, but different bg, theme, and running cygwin
Con Bad scrolling support
The mouse wheel scroll doesn't transfer to terminal applications by default. It moves to the blank space instead of scrolling actual text content. This is especially true for ConEmu where there doesn't seem to be a way to make it work better.
Con It is slow
If you have a console process that outputs a lot, ConEmu will be the slowest option. Everything else will be faster. Even Terminus, which is, common, a packed web browser app. In my tests if ConEmu takes one unit of time, Terminus and Windows Terminal will be 0.6, FluentTerminal 0.35, Alacritty 0.3.
Con Poor performance with WSL
Con Screen scrapes from real console
ConEmu always runs the standard Windows console - ‘real console’, but it is hidden most of time.
This adds overhead, introduces another layer of complexity, and frequently creates irritating strange glitches (lost keys, messed up spacing) for heavy users.
Con Only simple, black and white emoji
It's not much, but is sad we can't get colored emojis. May change soon, I'm working on a PR.
Con No remote connections
A terminal emulator should emulate a terminal, i.e. a local input/output device to a remote computer. ConEmu can only run local processes in a window (albeit nicer than the local command shell window).