I’ve started to look after good console under Windows after I’ve tried console on MacOS and Linux (Ubuntu).
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
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
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 ConEmu
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:
clink-components
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
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
This small script allows to make persistent aliases for Windows. Unlike doskey way it could be used also outside console.
[…] is an extension to https://trzeci.eu/customize-conemu/ but int this case in form of tutorial / guideline that will help me (and maybe you) to mirror this […]
correct the link to https://github.com/trzecieu/clink-profile
you wrote https://github.com/trzcieu/clink-profile
Thanks!
and correct this too https://github.com/trzecieu/alias
All links to github repo are not working as have a typo. Replace URLs with this: https://github.com/trzecieu
Thank you for pointing out! Fixed