Bash's powerful command line editing in cmd.exe
GPL-3.0 License
Published by chrisant996 over 3 years ago
lua.debug
setting is enabled.Published by chrisant996 over 3 years ago
clink.print()
function which behaves like print()
but with support for ANSI escape codes (and terminal emulation), and also a NONL
special argument that suppresses the usual newline at the end of the output.terminal.raw_esc
setting controls how Esc input works.esc_clears_line
setting.Published by chrisant996 over 3 years ago
git status
) and refresh the prompt when finished.
clink.promptcoroutine()
function to allow a prompt filter to do some work in the background.io.popenyield()
function to allow a coroutine to yield until the command's complete output is ready.prompt.async
setting that can disable asynchronous prompt filtering if preferred.clink inject
.clink autorun
(per #122).clink
and history
aliases getting lost after exiting a nested Clink instance.onfiltermatches()
receives one fewer matches than it should.Published by chrisant996 over 3 years ago
...\
or .../
to change directories (path separator after several dots)./dirname/
to change directories (forward slashes when a directory is the only thing in the input line).cd
command.Published by chrisant996 over 3 years ago
clink.slash_translation()
had been removed (regression introduced in v1.0.0).
match.translate_slashes
setting controls the default behavior for slash translation for completion matches.clink.translateslashes()
API can override slash translation for completion matches (and clink.slash_translation()
is supported for backward compatibility).Published by chrisant996 over 3 years ago
~\
can change the working directory to the ~
directory...
completion is different from bash.Published by chrisant996 over 3 years ago
os.expandenv()
function to expand environment variables in a string.console.cellcount()
function to count the cells a string will use when displayed.console.plaintext()
function to remove ANSI escape codes from a string.%=clink.bin%
that points to the Clink binaries directory. This can be particularly useful for a portable installation of Clink so that scripts can find the Clink binaries directory and construct relative paths to other nearby files.--help
texts.history.sticky_search
with anchored history search.clink inject --profile
to use correct log file name while initially injecting.Published by chrisant996 over 3 years ago
word_classifications:classifyword()
and word_classifications:applycolor()
to allow only applying color where another color hasn't yet been applied.add-history
command to not add blank lines to history.rl.setmatches()
(regression introduced in v1.1.26).clink set
and any color setting name (regression introduced in v1.2).clink history --session
.cmd.ctrld_exits
is disabled; it didn't exit, but it did still discard the input line and start a new prompt.--bare
option (regression introduced in v1.2.3).Published by chrisant996 over 3 years ago
history.sticky_search
setting: when enabled, reusing a history line does not add the reused line to the end of the history, and it leaves the history search position on the reused line so next/prev history can continue from there (e.g. replaying commands via Up several times then Enter, Down, Enter, etc).clink inject
fails.--unique
flag for use with clink history compact --unique
to remove duplicate entries from the history list.clink-popup-complete
command now matches wildcards.clink-popup-history
to set the history search position like other history search commands do, so that it plays well with the history.sticky_search
setting.Published by chrisant996 over 3 years ago
clink set
with v0.4.9. Old setting names and values are not documented, but are automatically mapped to the appropriate new setting(s). This was done so that suggestions in old web sites and posts can usually continue to work, to reduce confusion and support burden.Published by chrisant996 over 3 years ago
This is the first official release from the chrisant996/fork of Clink.
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 until April 2 without needing to be updated, the version number will be updated and it will become an official release version.
clink.getansihost()
function to get Clink's best guess who will process ANSI escape codes (can be useful for avoiding 256 bit and 24 bit color codes, for example).set /p VAR=""
shows the normal command prompt text instead of empty prompt text.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 until April 2 without needing to be updated, the version number will be updated and it will become an official release version.
old-menu-complete
, which is the most similar to CMD's standard Tab behavior.search-ignore-case
config variable to be on by default.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.
rl.setvariable()
to temporarily override the value of a Readline config variable.~
), in addition to tilde followed by a path separator (~\etc
).history.save
to False also disables interactive history in subsequent sessions.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.getsession()
.%CLINK_NOAUTORUN%
which overrides automatic inject when Clink is installed for autorun.clink-popup-history
and similar commands not working with ConEmu and Cmder (regression introduced in v1.1.25).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 history --diag
flag that prints diagnostic information while performing history operations.clink history
when printing the full list of history items.clink history compact
so it actually performs compaction.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 history --bare
flag to omit history item numbers.io.popenrw()
is like io.popen()
, but returns both a read file handle and a write file handle (see documentation for important usage warning).os.createtmpfile()
creates a unique named temporary file, with control over the prefix and suffix and path.os.getfullpathname()
to get the full path name for a file.os.getlongpathname()
to get the long path name for a file.os.getshortpathname()
to get the 8.3 short path name (if available) for a file.lua.strict
setting that can be disabled to revert back to loose argument validation.clink history compact
so that it forces compaction as intended.clink set
so that filename completion works in string settings.rl.invokecommand()
.luafunc:
key bindings, in case the Lua functions spawn a process that alters the console mode without restoring it.