Bash's powerful command line editing in cmd.exe
GPL-3.0 License
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!
clink.oninject()
so scripts can register a callback function to run when Clink is injected into CMD.console.linehascolor()
function that returns whether the specified line contains any of the specified colors.console.findprevline()
and console.findnextline()
functions that can search backwards or forwards for text and/or colors in the screen buffer. Regular expressions may be used.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!
rl_buffer
type that gets passed to the Lua function.console
Lua APIs intended mainly for use by Lua function key bindings (e.g. console.scroll()
).string.equalsi()
function that performs a case insensitive UTF8 comparison of two strings.string.matchlen()
function that compares two UTF8 strings and returns how many characters match at the beginning, or -1 if the entire strings match. It respects the match.ignore_case
and match.ignore_accents
settings.path.toparent()
function that adjust the input string by moving up one directory level.clink.onendedit()
so scripts can register a callback function to run when editing finishes (e.g. Enter is pressed). If desired, the function can even change the input text. This is very powerful, and should be used carefully.os.getbatterystatus()
to return a table with the battery status details, rather than four separate return values.doskey.enhanced
setting to not expand doskey aliases when preceded by a space. However, a doskey alias after a &
or |
command separator needs to be preceded by two spaces to avoid expanding it. That's so alias & alias
expands both, and alias & alias
expands neither; while the rules are more complicated to explain, they make more sense visually.clink info
, and ignoring clink.lua files in all other script directories.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!
clink set clink.colorize_input false
.menu-complete
gets stuck...
in subdirectory of root doesn't work.clink set
match completions for color settings.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!
os.getbatterystatus()
function that gets battery status information much faster than launching wmic
.cd /d
.Published by chrisant996 almost 4 years ago
This is a release candidate build; an official release build is likely to arrive before Jan 1.
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!
match.ignore_accent
setting (enabled by default) that ignores Latin alphabet diacriticals when completing matches (e.g. ä
matches a
, ı
matches i
, ł
matches l
, etc)...
and -
.\win_ foo
(cursor at _
) would become \Windows\\_ foo
.quoted-insert
command to insert just \x1b
when ESC is pressed.Published by chrisant996 almost 4 years ago
This is a release candidate build; an official release build is likely to arrive before Jan 1.
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!
terminal.emulation
to native
(which isn't supported on some older Windows OS versions)...
or -
, and also now doskey macros that resolve to ..
or -
or a directory name will work (just like if the macro text had been typed at the Clink prompt).clink.print()
Lua function so it also works during loading scripts and during prompt filtering.\x1b]0;text\x07
). Clink doesn't support that escape code, but at no longer garbles the input text if that escape code is present.Published by chrisant996 almost 4 years ago
This is a release candidate build; an official release build is likely to arrive before Jan 1.
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.prompt
setting for backward compatibility with Clink v0.4.x.Published by chrisant996 almost 4 years ago
This is a release candidate build; an official release build is likely to arrive before Jan 1.
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.arg.register_parser
backward compatibility.Published by chrisant996 almost 4 years ago
This is a release candidate build.
An official release build is likely to arrive before Jan 1.
This is a release candidate build, and 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.ondisplaymatches()
as a replacement for the deprecated clink.match_display_filter
. The new API is able to support popup list windows as well.Published by chrisant996 almost 4 years ago
This is a release candidate build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a release candidate build, and 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.onbeginedit()
so scripts can register a callback function to be called each time the edit prompt is activated.lua.reload_scripts
setting to optionally force reloading Lua scripts each time the edit prompt is activated.color.message
setting for the Readline message area color (e.g. the search prompt message or digit argument prompt message, etc).=
appended to completions after typing set
and then typing a different command.Published by chrisant996 almost 4 years ago
This is a release candidate build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a release candidate build, and 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 v1.1.10 into an existing Cmder installation!
ReadConsoleW
on Windows 7.Published by chrisant996 almost 4 years ago
This is a release candidate build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a release candidate build, and 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 v1.1.9 into an existing Cmder installation!
clink.match_display_filter
. The clink-completions/git.lua script uses it a lot, and that should all be working now.settings.add
adds a color setting when the type is string and the name starts with "color.".settings.get
now has an extra parameter to request the user friendly color name when getting a color setting.clink.version_encoded
variable with the Clink version number as MMmmmpppp (e.g. v1.1.9 is 10010009
) to make it easy for scripts to check for feature availability.clink info
command now shows Lua script paths as well.clink.path
isn't set, then load scripts from the DLL directory and the profile directory).color.input
bleed through to other things (introduced in v1.1.5).origin/master
accidentally didn't match or
or *ma
because of the /
).foo\
vs foo.bar\
when displaying matches or using the menu-complete
family of commands.menu-complete
completes a directory match (regression introduced by wildcard matching in v1.1.5).Published by chrisant996 almost 4 years ago
This is a release candidate build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a release candidate build, and 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 v1.1.8 into an existing Cmder installation!
clink.find_files()
and clink.find_dirs()
.
clink.find_files()
with extra invalid arguments; e.g. clink-completions/modules/matchers.lua).os.globfiles()
and os.globdirs()
functions do, but the old clink.find_files()
and clink.find_dirs()
functions should not).Published by chrisant996 almost 4 years ago
This should be a pretty solid Beta build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a Beta build, and 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 v1.1.7 into an existing Cmder installation!
os.globfiles
and os.globdirs
functions have all the info about each file. Now they can return that info in a table. This frees the match display function from needing to do any further file system IO. The performance boost is noticeable.clink set color.input bright yellow
or clink set color.modmark bright cyan on blue
).Published by chrisant996 almost 4 years ago
This should be a pretty solid Beta build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a Beta build, and 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 v1.1.6 into an existing Cmder installation!
cd
, md
, and rd
command argmatchers.exec.enable
setting ("~\pro" matches "C:\Users\<myusername>\program.exe").Published by chrisant996 almost 4 years ago
This should be a pretty solid Beta build.
An official release build is likely to arrive before Christmas this year.
All of the features planned for the first official release from this fork have been completed, and backward compatibility with v0.4.8 seems to be working well.
This is a Beta build, and 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 v1.1.5 into an existing Cmder installation!
menu-complete
family of commands now support matching ?
and *
wildcards when the match.wild
setting is enabled.colour.input
and colour.modmark
settings for coloring Readline's input line.clink.upper()
Lua function, and both clink.lower()
and clink.upper()
are properly UTF8 aware now.clink-copy-word
command that copies the word at the cursor to the clipboard.clink.promptfilter
setting to control whether to filter the prompt with Lua scripts.terminal.emulate
setting to terminal.emulation
.colour.hidden
setting to not be set by default.terminal.emulation
setting.....
so it works properly again.exec.cwd
Clink setting to default to true, so that the default behavior is consistent with how v0.4.x behaved.Published by chrisant996 almost 4 years ago
Highlights:
:
or =
(e.g. msbuild -maxCpuCount:
).This is a Beta build, and 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 v1.1.4 into an existing Cmder installation!
Published by chrisant996 almost 4 years ago
log.info()
function.clink.version_major
, etc._argmatcher:getwordbreakinfo()
callback; removed _argmatcher:setprefixincluded()
(it was a mess, and it was new to v1.x, so there's no compatibility concern with removing it)._argmatcher:setflagprefix()
; now it happens automagically when using _argmatcher:addflags()
.lua.traceback_on_error
, lua.break_on_error
, and lua.break_on_traceback
settings to make debugging script errors easier.pause()
consistent about pausing in the caller (rather than sometimes inside the pause command itself).set
command in the debugger to behave as documented.Published by chrisant996 almost 4 years ago
This is the second alpha test version of clink from the chrisant996 fork.
I use it full time now. It should work well, with some caveats:
See the CHANGES file for more information about what's in this release.
The documentation is here, and is mostly updated.