Clink
詳細情報
タイトル | Clink |
---|---|
URL | https://github.com/chrisant996/clink |
バージョン | ver 1.7.21 |
更新日 | 2025/07/14 |
追加日 | 2024/04/05 |
種別 | フリーソフト |
説明 | cmd.exeの機能を拡張することができるユーティリティ。 |
レビュー
ClinkはWindowsのネイティブシェルであるcmd.exeに、保管、履歴、行編集機能などを追加するユーティリティ。
これらの機能はLinuxディストリビューションの標準シェル「Bash」でも使われているGNU Readlinによって提供されている。
以下のような機能を持つ:
- 自動サジェスチョン: 履歴、ファイル、補完に基づき、入力中にサジェスチョンを表示する。
- 補完: Tab または Ctrl-Space して単語を補完できる。
- 永続的な履歴: セッション間で永続的な履歴を保存。
- スクリプト可能なプロンプト: Lua スクリプトでプロンプトを動的にカスタマイズできる。
- 入力行の色付け: 入力は文脈依存の補完スクリプトによって色付けされる。
- コマンドライン編集の改善: 新しい入力編集コマンドと設定可能なキーバインディングでコマンドラインを強化。
スクリーンショット
更新グラフ
バージョン履歴
v1.7.21
- Fixed TAB expansion of
foo ~
when there is no argmatcher forfoo
. - Fixed #772; uninstall fails to uninstall autorun if the logged on user is not an administrator.
- Fixed #773; unexpected completion behavior after a doskey alias command.
v1.7.20
- Fixed #763; transient prompt has blank line after it if the input line is the width of the terminal (regression introduced in v1.7.0).
- Fixed #765; inside a batch script,
setlocal
interferes with injecting Clink (regression introduced in v1.1.1).
v1.7.19
- Fixed some unnecessary work that was performed when starting the Lua engine (a tiny performance boost).
- Fixed
os.getcwd()
when the LongPathsEnabled regkey is set. - Fixed the application manifest for the
clink_*.exe
programs to mark them as longPathAware (this doesn't affect CMD; while Clink is injected in CMD, then CMD's manifest is what controls long path awareness). - Fixed the
oncommand
event when usingclink-popup-history
to select and execute a command from history. - Fixed #756; Clink could potentially think it wasn't elevated when running as
LOCAL_SYSTEM
or the builtinAdministrator
account. - Fixed #758; avoid crashing in a pathological case where something else abuses CMD by injecting background threa
v1.7.18
v1.7.18
- Fixed #752;
clink config theme use {name}
reports an error (regression introduced in v1.7.17).
v1.7.17
- Added "4-bit Enhanced Defaults.clinktheme" color theme which approximates the "Enhanced Defaults" colors using only 4-bit terminal colors.
- Added a
clink config theme save -d
flag to save a color theme with placeholders for color settings whose current value matches its default value. Loading a color theme saved this way resets those colors to whatever default values are defined at the moment the file is loaded. - Changed the default behavior for throttling Lua coroutines. By default there is no throttling anymore. The new
lua.throttle_interval
setting can be used to enable throttling of Lua coroutines if they cause
v1.7.17
- Added "4-bit Enhanced Defaults.clinktheme" color theme which approximates the "Enhanced Defaults" colors using only 4-bit terminal colors.
- Added a
clink config theme save -d
flag to save a color theme with placeholders for color settings whose current value matches its default value. Loading a color theme saved this way resets those colors to whatever default values are defined at the moment the file is loaded. - Changed the default behavior for throttling Lua coroutines. By default there is no throttling anymore. The new
lua.throttle_interval
setting can be used to enable throttling of Lua coroutines if they cause responsiveness issues. Prior to this, the throttling interval had been hard-coded to 5 seconds, but now it's configurable and is 0 by default (no throttling). - Changed
rl.getpromptinfo()
v1.7.16
- Fixed potential crash after pressing Home and then deleting the first word in the input line (regression introduced in v1.7.15).
v1.7.15
- Fixed the sequence of characters
clink echo
reports for Ctrl-Bkspc. - Fixed an issue where the
match.expand_abbrev
setting could accidentally move the cursor position when trying to completex:\does_not_exist
. - Fixed input line coloring to refresh the display if
clink.argmatcher()
registers a new argmatcher in response to an event such asclink.oncommand
. - Fixed extra prompt(s) that could printed if a
luafunc:
command usedrl_buffer:beginoutput()
and thenrl.invokecommand()
to invoke anotherluafunc:
command that did the same, nesting multiple times. - Fixed negative numeric arguments with
rl_buffer:getargument()
andrl_buffer:setargument()
. - Fixed potential heap
v1.7.14
- Added a new
clink.scroll_offset
setting which controls how many lines to show above or below the selected item in popup lists or theclink-select-complete
command (default is 3). - Changed
clink set name
to include the default value of the named setting. - The Antares clinkprompt now allows configuring the characters for showing the previous command's exit code (refer to the Antares.clinkprompt file for details).
- The
clink-diagnostics
andclink-diagnostics-output
bindable commands also show the current *.clinkprompt custom prompt file, if any. - Fixed a problem where Esc could leak or corrupt history undo lists when used after searching history (the problem existed since v0.1 in 2012).
- Fixed the
clink-show-help
command to s
v1.7.13
- Added an error message when
clink set
fails to write theclink_settings
file (e.g. no permission or the file is marked read-only). - Added logging when
clink inject
is slow. - Added keyboard info in
clink echo --verbose
. - Condensed the logging during
clink inject
, but if an error occurs while hooking system APIs then it automatically emits verbose logging instead of condensed logging. - Fixed the maximum vertical scroll position limiter to include the input hint row when using the legacy Windows conhost.
- Fixed #732; Executable Completion does not recognize
.LNK
files.
v1.7.12
- Fixed what
io.popenyield()
returns upon failure; previously it accidentally only returned nil, and now upon failure it returns the usual values (nil, error message, error code). - Fixed #727; custom prompts can crash Clink when
cd
into a path that exceeds MAX_PATH length.
v1.7.11
- Changed the
clink-diagnostics-output
bindable command to include a list of the current Clink settings. - Changed logged error codes to include the corresponding message text for the error code.
- Fixed input hints in chained argmatchers (it could sometimes show a hint from the preceding word by mistake).
- Fixed height of scrollbars in popup lists and in the
select-complete
command (they were half as tall as they should have been).