I’ve started to look after good console under Windows after I’ve tried console on MacOS and Linux (Ubuntu).

2015-08-30_15-34-36

Step by step

This page has form of blog post, if you are looking for more step by step tutorial, please visit:  https://trzeci.eu/my-setup-for-conemu-and-clink/

History

Powershell is pretty nice, but it doesn’t provide good UX.

Ideally I would use Cygwin in day by day work, but it has some drawbacks:

  • Paths are unix style and local storage starts
    /cygdrive/[drive letter]/

    What is annoying

  • It’s hard to force system to use it as a default console

From the positive site I can say that whole tool set is available there: ls, ps, scp, ssh …

ConEmu

(homepage)

This small program can:

  • Force system to use this emulator as a default console
  • Provides good UX
  • Good set of customizable settings
  • Portable
  • It’s fast
  • Good system integration : Context Menu, Task Menu

One of good “all-in-one” pack with conemu is cmder but recently there is almost no movement in GitHub Project. It was a little annoying when one of update in ConEmu changed behaviour of booting application and it created a bug in cmder: #599 Hence I decided to go away from it and use pure ConEmu.

Conemu does it’s job well. It emulates console.  But, there is a way to improve how console works.

clink

clink

(homepage)

This small program is able to improve base UX of traditional console by add new shortcuts to operate on commands. It also provides a way to extend base functionality by lua scripts. Thus we can decorate entry point in console, add command completion and so on.

Install clink in conemu is trivial. All what is required is:

  • Download ZIP file form page GitHub Releases
  • Unpack it in folder:
    [ConEmuPath]/clink
  • Enable it in ConEmu2015-08-30_15-14-20

After first run it will create setting file within “profile” folder of clink

profile.lua

When I’ve checked internals of cmder I found really well written script cmder.lua. This script is responsible for:

  • Decorate main prompt
  • Add Git and HG repository status
  • Load other modules

I’ve changed it a little bit Clink-Profile and now it supports:

  • Selective turn on/off submodules
  • Disable status checking for Mercurial (it’s slow)
  • Changed a little bit entry point style.

This script should be placed directly into “profile” folder of clink. Therefore clink will load this file, and it will hook it into console.

Now my console looks like:

2015-08-30_15-28-08

clink-components

(GitHub repository)

This will provide additional set of auto completion for: npm, git, chocolatey, cordova etc. Originally installation folder should be placed directly inside “profile” folder of clink. But if profile.lua is installed properly, it is possible to move it to:

clink/profile/clink-completions

All components will be added to clink as a charm

Useful tools

Console is not only one tool that makes work smooth

FAR

(homepage)

2015-08-30_15-34-36

This is the best file manager what has been made for console.  And what is equal important it has good integration with ConEmu.

GOW/MSYS

(GOW GitHub repo) / (MSYS homepage)

Subset of unix commands like: ls, ps etc.

Alias

(GitHub repo)

This small script allows to make persistent aliases for Windows. Unlike doskey way it could be used also outside console.

 
14 Kudos
Don't
move!