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 スクリプトでプロンプトを動的にカスタマイズできる。
  • 入力行の色付け: 入力は文脈依存の補完スクリプトによって色付けされる。
  • コマンドライン編集の改善: 新しい入力編集コマンドと設定可能なキーバインディングでコマンドラインを強化。

スクリーンショット

更新グラフ

Created with Highcharts 5.0.2Total更新回数24/0824/0924/1024/1124/1225/0125/0225/0325/0425/0525/0625/0701234

バージョン履歴

v1.7.21
  • Fixed TAB expansion of foo ~ when there is no argmatcher for foo.
  • 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 using clink-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 builtin Administrator 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 complete x:\does_not_exist.
  • Fixed input line coloring to refresh the display if clink.argmatcher() registers a new argmatcher in response to an event such as clink.oncommand.
  • Fixed extra prompt(s) that could printed if a luafunc: command used rl_buffer:beginoutput() and then rl.invokecommand() to invoke another luafunc: command that did the same, nesting multiple times.
  • Fixed negative numeric arguments with rl_buffer:getargument() and rl_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 the clink-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 and clink-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 the clink_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).