Better tab-completion in Windows consoles

The ConEmu’s disclaimer sais: ‘ConEmu is not a shell, so it does not provide “shell features” like tab-completion, command history and others.’

That means user have to ‘upgrade’ the shell itself to improve its behavior.

Note. If you are pasting in the command line prompt a text containing some Tab characters (ASCII \x09), you may observe weird result of tab-completion in your prompt, like in the issue 225.

If you are using cmd.exe as shell you may try clink for bash style completion and advanced cmd prompt. ConEmu provides an option to autoload clink in cmd tabs.

  • Download latest clink or build it yourself from sources.
  • Unpack files (without subfolder) into %ConEmuBaseDir%\clink (this folder already created by ConEmu installer and contains Readme.txt).
    • Please note, clink archive contains subfolder. Files clink_dll_x86.dll, clink_dll_x64.dll (and others, with subfolders may be) must be located in %ConEmuBaseDir%\clink.
  • Turn on checkbox ‘Use Clink in prompt’ on ‘Features’ page, save settings and restart ConEmu’s tab.
  • Well, now bash style completion will be available in cmd.exe new session.

Note. Clink will be called in shell prompt (cmd) if ConEmuHk.dll or ConEmuHk64.dll is loaded into shell process. This will be done for ‘root’ processes (that you specify when creating console) or when ‘Inject ConEmuHk’ option is checked on ‘Features’ page. Checked option ‘Inject ConEmuHk’ is required, if you start second-level cmd from root process, e.g. cmd /c cmd /k .... Actually, it’s not recommended to uncheck ‘Inject ConEmuHk’ at all.

Note. If you do not want to store clink in the ConEmu’s subfolder, you may install it standalone using clink_setup.exe. Actually, option ‘Use Clink in prompt’ is not required, if clink was set up using its installer.

Please refer to https://github.com/mridgers/clink for further information and bugreports.

PowerShell.exe

There are two nice PowerShell extensions to make its prompt more friendly:

zsh.exe

Perhaps zsh tab-complition is good enough, but lately I’ve found the openshift extension. You may try it.