Bash's powerful command line editing in cmd.exe
GPL-3.0 License
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
terminal.adjust_cursor_style
setting as a workaround to avoid interfering with the Windows 10 Cursor Shape console setting. There are several trade-offs, though.rl_buffer:refreshline()
function to redraw the input line, e.g. in case something has written over it.os.getpid()
function to get the process ID, intended mainly to help salt unique resource names.clink.onfiltermatches()
so scripts can register a callback function to run after Clink generates matches and before it displays them.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
NOTE: The key sequences for the new Ctrl+Alt+Shift+Letter keys might change slightly in v1.1.41.
clink-complete-numbers
commands that do completion for numbers from the console screen, bound to Ctrl+Alt+N by default.rl.getlastcommand()
function that returns the name of the last command invoked by key bindings.rl.setmatches()
when the input line is not empty and clink.colorize_input
is enabled.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
terminal.differentiate_keys
setting that when enabled allows binding Ctrl + H or I or M or [ separately from Backspace, Tab, Return, or Escape.terminal.modify_other_keys
setting and made it always enabled.terminal.use_altgr_substitute
to be disabled by default so that Ctrl+Alt key bindings can work by default on keyboards with AltGr.clink echo
so it's directly usable in the inputrc files.terminal.use_altgr_substitute
to only affect AltGr substitute key combinations (it had always broken the RightAlt key in general on other keyboard layouts).clink echo
.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
clink.paste_crlf
modes: ampersand
replaces newlines with ampersands, and crlf
pastes newlines as-is and executes any commands ending in a newline.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
mark-directories
inputrc variable is off
(regression introduced in v1.1.1-alpha).Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
terminal.emulation
setting, the behavior is slightly different. When emulate
Clink processes the escape codes. When native
with ConEmu (and Clink) the escape codes are passed to ConEmu, except that Clink processes the environment variable codes in prompt strings. When native
with other terminals, Clink preprocesses the title and environment variable escape codes in prompt strings, but passes the escape codes to the terminal outside of prompt strings.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
If this release candidate survives for 1 week without needing to be updated, the version number will be updated and it will become an official release version.
So, moving forward, releases will include the installer as well.
Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
clink installscripts
and clink uninstallscripts
to make it easy for package managers like Scoop to install/uninstall script packages for use with Clink. The installed script paths are stored in the registry for the current user.bold
vs bright
colors to more accurately follow generally accepted ANSI escape code conventions:
dim
to nobold
for clarity (though dim
is still recognized for backward compatibility).bold
adds intensity to a non-intense color (e.g. cyan
which is 36).nobold
removes intensity added by bold
(e.g. 1;36
becomes 36
), but does not remove intensity from an explicit intense color (such as bright cyan
which is 96
).--file=
flags in argmatchers.clink --profile
flag (regression introduced in v1.1.10).clink info
to accurately report the script dirs (it didn't account for the clink.path
setting correctly).Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
log.rl_terminal
setting to debug.log_terminal
; it has already been repeatedly very useful in multiple was since it was added, so it stays.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
color.argmatcher
setting which, when set, is used to color a command name if it has an associated argmatcher (this supersedes color.cmd
, color.doskey
, and color.input
). By default it's not set.log.rl_terminal
setting which logs all terminal input and output for Readline (this setting may be renamed or removed in the future).Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
(v1.1.25 almost managed to survive a week without fixes! Clink is very close to an official release. Alas, an important issue was found. But that enabled another feature to make it in: the ability for a "luafunc:" key binding to invoke other Readline commands, and to override match completions.)
rl.invokecommand()
which can invoke a Readline command from inside a "luafunc:" key binding.rl.setmatches()
which can override match completions from inside a "luafunc:" key binding.clink-show-help
(Alt+H).Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
(Yes, it's been hovering in release candidates for a while. That's because bugs keep being found that are important enough to fix before an official release. The goal is for this to be a quality-driven release, more than a date-driven release.)
clink-find-conhost
command that, when in a default (conhost) console window, is equivalent to picking "Find..." from the system menu.clink-mark-conhost
command that, when in a default (conhost) console window, is equivalent to picking "Mark" from the system menu.clink-copy-word
now copies the current word by default, but copies the nth word if a numeric argument is entered (see "Readline Arguments" in the Readline manual).operate-and-get-next
; also fixes brief flicker of incorrect coloring whenever the input line is modified.Published by chrisant996 over 3 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
(Yes, it's been hovering in release candidates for a while. That's because bugs keep being found that are important enough to fix before an official release. The goal is for this to be a quality-driven release, more than a date-driven release.)
auto
for terminal.emulation
now uses native VT support on Windows 10 build 15063 and higher, unless the HKCU\Console\ForceV2 regkey is 0."dir\"fi
to complete to "dir\file"
. CMD simply strips quotes during completion, and now Clink behaves similarly.line:getword()
and line:getendword()
now strip quotes from the word. This should generally automagically make existing match generators work even with embedded quotes, but there's a chance that some match generator might need to be updated. This seems like a reasonable compromise, given the general benefit purchased by this breaking change.os:globdirs()
and os:globfile()
strip quotes from the globpattern in order to behave more like CMD. Embedded quotes are nonsensical and the intended interpretation is clear, so the APIs now help out with that.-x:"foo"
as a flag if -x:
is a flag.-flag:
. Instead it always uses file completion. A custom generator can be used to override that behavior.Published by chrisant996 almost 4 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
Published by chrisant996 almost 4 years ago
This is a release candidate build.
This release candidate build seems to be working very well for me, even when copied into an existing Cmder\vendor\clink directory. Be sure to make a backup copy of your Cmder installation before copying Clink into an existing Cmder installation!
menu-complete-wraparound
(on by default) that controls whether completion commands wrap around when cycling past an end (affects popup windows as well).clink-show-help
(Alt+H) so it's able to list C-@
bindings.