DEV Community

Choices for a console in Windows

Katie Nelson on December 07, 2019

I've spent a little bit of time lately looking into different consoles to use in Windows 10. The built-in cmd console is what I've used the most in...
Collapse
 
mburszley profile image
Maximilian Burszley • Edited

There is an explicit difference between the ISE console and PowerShell's console application, btw.

You call it newer, but conemu has been around for over a decade (as long as powershell).

My personal preference is Windows Terminal - it keeps getting better with each release, but I'm sad about PSReadline bugs with its VTY emulator. At work, I'm not so fortunate to be on the latest Win10 build, so I use conemu there (the quake keybind feature is neat for productivity).

Collapse
 
katnel20 profile image
Katie Nelson

Thanks. I've tried both PowerShell consoles and use the ISE for debugging scripts.
Newer means "new to me". (I've been around less than 2 decades myself) 😏

Collapse
 
mburszley profile image
Maximilian Burszley • Edited

It also gets confusing when talking about consoles vs terminals vs shells vs emulators, the list goes on, especially on Windows. In the brief experiments I've had on Linux, I really enjoyed using zsh, but powershell has the most "natural" learning experience to me (and is cross-platform with PowerShell Core and next year, PowerShell 7 and beyond).

On the vein of bash v. powershell, I ran across this article that kind of melds the two by making those Linux commands natively available through a powershell cmdlet-like experience:

devblogs.microsoft.com/commandline...

Collapse
 
aimerib profile image
Aimeri Baddouh • Edited

An interesting setup I've been looking into trying recently was something I've seen Scott Hanselman champion:

Using the Windows Terminal with WSL2 (so you get an actual linux shell from inside the ubuntu distro), and connecting VS Code to the same WSL2 instance, so the terminal in VS Code is also the terminal in the WSL.

It might seem like a really contrived example, and completely over the top depending on your needs, but worth checking out if you start getting into the windows/*nix compatibility issues, if you're doing some cross platform development, or if you are trying to program in a language that has better support in Linux-land.

Here's the link to the video if this setup piqued your interest:
youtube.com/watch?v=A0eqZujVfYU

Collapse
 
katnel20 profile image
Katie Nelson

Okay. So for that it looks like I have to install WSL, and Ubuntu, and then install WSL2, and then run out of VS Code.

Seems like a lot of work that's going to take some time.
Something to think about when I have some idle time (which are few and far between these days).

Thanks for the reply Aimeri and the video link.

Collapse
 
aimerib profile image
Aimeri Baddouh • Edited

Yup, that is pretty much the gist of it. Unfortunately this isn't a trivial setup, as you've said.

I used Cmder a lot coupled with the git bash shell for windows, and that setup was pretty solid too.
The cool thing about this is that any one developer's terminal and console setup will be completely different from one to another. My current setup on a mac is using zsh for the terminal shell, iterm2 for terminal, and I use applescript to actually configure pane splitting in iterm2, because I'm basically replicating what I used to have with Cmder when I was on windows.

It would be really interesting if you wrote another post a few months from now to describe all the combinations you tried and which ones you decided to stick with, and why. It's always nice to see what other people are doing. @aspittel had a really cool post where the community was sharing their own setup. Might be a cool place to get some more ideas as well:
dev.to/aspittel/what-does-your-ter...

Thread Thread
 
katnel20 profile image
Katie Nelson

I'll take a look at that post and make a mental note to do a follow up.

Another addition will be that PowerShell 7 is due to release soon. For those of us on Windows, that will be something else to learn if you do a lot of scripting in that environment.

Now that I think about it, if I wait too long to do the follow up, the whole console world could change!

Collapse
 
mzahraei profile image
Ardalan

I just use Console to run scripts I don't like and write a code directly on Console but VSC is one of the best powerful editor.

Collapse
 
katnel20 profile image
Katie Nelson

Are you referring to the Visual Studio terminal window?

Collapse
 
mzahraei profile image
Ardalan • Edited

Yes actually, because I will be able to decide about different editor types in one editor when I want to write python I choose easy python interpreter about other languages worked too just change terminal.

thepracticaldev.s3.amazonaws.com/i...

Thread Thread
 
katnel20 profile image
Katie Nelson

Yup, I see that (picture helped quite a bit)
Looks like the proper solution while coding in VS Code.

Thread Thread
 
mzahraei profile image
Ardalan

Yes it's proper solution.👌🏻😄

Collapse
 
stewartritchie profile image
Stewart Ritchie

I have used Cmder a lot recently and generally I like it, with one or two exceptions:

  • The under-the-hood tools it uses can be really slow on Windows, e.g. switching branches on a large git repo takes a number of seconds (but is instant in normal command-line).
  • Some of the tools (e.g. Bash) are not feature equivalent with the regular Linux tools.

The thing I have found recently is, that working more closely with with developers who use MacOS has given me a better appreciation for CLI tools and a good shell.

And so, I am currently running WSL with Ubuntu18.04, and using Cmder to launch native bash.

It wasn't massively hard to set up.

If I was to make a prediction, I would say that we will see a convergence of development around Linux (whether or not you work on Windows) - it's driven by cloud platforms and containerisation, so being competent with Bash will be a valuable skill.

Collapse
 
katnel20 profile image
Katie Nelson • Edited

I have done some bash work before but nothing extensive. I’m try to do some things in Lua right now. I’ll let you know how things turn out.

Collapse
 
joerter profile image
John Oerter

Cmder is the best terminal emulator on Windows I've used by far. I haven't had a chance to use Windows Terminal yet, but hopefully soon.

Collapse
 
katnel20 profile image
Katie Nelson

Thanks John. I was using it today and still exploring all of it's features. There seems to be a lot there. Are you proficient in lua?

Collapse
 
joerter profile image
John Oerter

I am not, and I actually didn't even know it had that feature until I read your post! I use it for WSL and Git Bash and haven't explored it's other features.

Thread Thread
 
katnel20 profile image
Katie Nelson

Yeah, I haven't gotten to the WSL or bash windows yet. For bash, it tells me that it can't find the path to git-for-windows even though I have it installed. For WSL, it tells me to install Ubuntu-on-Windows.

I guess I have to do more setup work.
For now, I'm using the bash window that installs with git.

Thread Thread
 
joerter profile image
John Oerter

Ugh, yeah the setup can be a pain sometimes. I'm a Linux fan, but have to use Windows for work so I was so excited when WSL came out. It's been great

Collapse
 
daletman profile image
daletman

I’ve heard Hyper is a good one. Never tried it because I’m on Mac and there’s iTerm 2 which is just awesome especially combined with oh-my-zsh and a custom theme 😊

Collapse
 
moopet profile image
Ben Sinclair

My experience of Hyper was that it was about an order of magnitude slower than iTerm2. That was about a year ago and it might have improved, but I think it's likely to be just as slow.
When I say slow, I mean that doing something like an ls -R, you can watch the screen updates ripple down as it moves one line up at a time.

Collapse
 
mareksamec profile image
mareksamec • Edited

Hyper looks fancy, but the performance is quite bad, especially on the corporate machines with firewalls, proxies and other limitations users have by default. I can recommend Babun, it is upgraded Cygwin terminal with some nice out of the box features (zsh, oh-my-zsh, python, pre-configured .zshrc and .bashrc etc.). However oit can also be quite slow, especially in the corp environment where you have many limitations and sometimes you cannot even get admin rights. So far my best experience was with Cmder + Chocolatey package manager + some extra downloaded GNU utilities like curl, xmllint, windows version of vim and other things.

Collapse
 
sirpeach profile image
SirPeach

just use the GitBash

Collapse
 
katnel20 profile image
Katie Nelson

That’s what I’m doing right now.

Collapse
 
sirpeach profile image
SirPeach

good choice
now enjoy and use golang for everything in your life

Collapse
 
fultonbrowne profile image
Fulton Browne

I would try using WSL, its fantastic.

Collapse
 
moopet profile image
Ben Sinclair

It's really quite buggy. And so slooooow. I know it's a "preview", but people have been knocking out terminal emulators for years which work way better than the MS attempt.

It is, still the best you're going to get on Windows I think. I've tried a few, and they all fall down at something or break with Windows updates from time to time.

Collapse
 
katnel20 profile image
Katie Nelson

Looks like that means loading a Linux distro. Which one do you use?

Collapse
 
fultonbrowne profile image
Fulton Browne

Ubuntu, so I can use apt and snap package managers.

Collapse
 
hermanrios7 profile image
Herman Rios

I'm a newbie when it comes to software. I've always been into hardware. I just recently started to open up my cmd. I'm looking forward to collaborate with you and everyone else.

Collapse
 
katnel20 profile image
Katie Nelson

Welcome Herman. The cmd window is a good place to start. But after a while you might be looking for it to do more.

Collapse
 
visualmov profile image
Ryan

Back when Windows was my primary OS, I used cmder a lot. Definitely recommend.

Collapse
 
katnel20 profile image
Katie Nelson

Thanks Ryan. The prompt looks weird with that lambda symbol on it’s own line. I already wrote a short lua script to change that. Looks like I’ll be experimenting some more with Cmder.