Improve your command-line experience with ConEmu

Improve your command-line experience with ConEmu

Over the last decade, almost all software has made huge leaps in usability. Browsers have gotten tabs, you can do everything off-line and interfaces are slicker than ever. And then there’s the windows command-prompt. Nothing has changed over the last decade or longer. It still has the same issues it had years ago: copy-pasting is a hassle, it doesn’t properly resize, in short everything is cumbersome if you work on the command-line under Windows.

Not knowing better, for years I coped with this inconvenience and always dreaded it whenever I had to open a prompt (which is quite often since I’m a developer). I didn’t really look for an alternative, because I just thought that was the way it was. Until I found out about ConEmu. After using it for a quite a while, I fell in love with the command-prompt again.

Here are some of the main features:

  • Decent window resizing
  • Full customizable color and font settings
  • Tabs
  • User friendly text selection and** copy-paste**
  • Jumplists and Progress bars (Windows 7+)
  • Customizable tasks

Although this list alone should have convinced youc already, I want to highlight a few items and show you how useful they can be.

Customizable tasks

When you open a new tab in ConEmu, the standard prompt you get is just the cmd.exe-prompt and it starts up in the ConEmu installation folder. This is really annoying if you always have to be in the same folder and have to navigate every time. That’s where tasks come in. A task is basically a shortcut to a list of commands that start up a process in a new tab. It allows you to add a few common tabs that you want to be able to open quickly.
I made an animated gif (don’t you love animated GIFs?) to show how easy it is to create a task to automatically open the prompt in a certain directory:

[![add_task](/content/images/2013/10/add_task_thumb1.gif "add_task")](/content/images/2013/10/add_task1.gif)
Of course, you could add whatever task you want. I have for example **PowerShell** there, a few of the root directories for some projects and the** Visual Studio Command prompt**. Once you have created a task, you can quickly open a new tab for one of these tasks, as shown in the image below:
[![open_task](/content/images/2013/10/open_task_thumb1.jpg "open_task")](/content/images/2013/10/open_task1.jpg)
## Jump Lists

Once you have some common tasks configured, you can activate JumpLists. You can enable this under Settings > Main > Task Bar by clicking the checkbox “Add ConEmu tasks to taskbar”.

When you do this and pin ConEmu to your taskbar (which you should), you can right click on it and immediately open the environment you want:

[![jumplist](/content/images/2013/10/jumplist_thumb1.jpg "jumplist")](/content/images/2013/10/jumplist1.jpg)
If you also enable the checkbox for “Add command from history”, the JumpListwill also contain your **recently executed commands**, which is super-handy.

Color settings

To some, this feature may seem a bit trivial, but for me it’s really nice that I can personalize the look and feel of the command prompt. Personally I don’t like the standard black and white look and I much prefer the PowerShell colors. ConEmu let’s you adjust basically every color you want, so it’s easy enough to just change it to whatever you want. (note: the standard command-line let’s you do this as well, but ConEmu has a bit more options and you can even make the background semi-transparent so you can still see what’s going on in the background).


ConEmu is free, open-source software and can be downloaded from the ConEmu project page on google code.

ConEmu has tons of other features (a lot which I probably haven’t even discovered) but even with just these features the user experience is a lot better than with the native command-prompt. In the Java and *nix world the command-line is used a lot more.
I hope that with this gem, .NET developers will find their way (back) to the command-line as well.

Note: I have no affiliation whatsoever with the creators/maintainers of this project. These are purely my opinions and my experience.

Kenneth Truyers
View Comments
Next Post

Introduction to Domain Driven Design, CQRS and Event Sourcing

Previous Post

Rapid agile testing: pair testing