Clink

詳細情報

タイトル Clink
URL https://github.com/chrisant996/clink
バージョン ver 1.8.4
更新日 2025/09/29
追加日 2024/04/05
種別 フリーソフト
説明 cmd.exeの機能を拡張することができるユーティリティ。

レビュー

ClinkはWindowsのネイティブシェルであるcmd.exeに、保管、履歴、行編集機能などを追加するユーティリティ。

これらの機能はLinuxディストリビューションの標準シェル「Bash」でも使われているGNU Readlinによって提供されている。

以下のような機能を持つ:

  • 自動サジェスチョン: 履歴、ファイル、補完に基づき、入力中にサジェスチョンを表示する。
  • 補完: Tab または Ctrl-Space して単語を補完できる。
  • 永続的な履歴: セッション間で永続的な履歴を保存。
  • スクリプト可能なプロンプト: Lua スクリプトでプロンプトを動的にカスタマイズできる。
  • 入力行の色付け: 入力は文脈依存の補完スクリプトによって色付けされる。
  • コマンドライン編集の改善: 新しい入力編集コマンドと設定可能なキーバインディングでコマンドラインを強化。

スクリーンショット

更新グラフ

バージョン履歴

v1.8.4
  • Added a new starship.clinkprompt script. Run clink config prompt use starship to use it.
  • Added --all flag to show all themes or prompts: clink config theme show --all or clink config prompt show --all.
  • Added input hint text for :chaincommand() and for the onadvance and onalias callbacks. If no input hint is specified then the default input hint text is "Argument expected: command [args]".
  • Improved error reporting in the oh-my-posh.clinkprompt script.
  • Fixed input line coloring for clink set some_string_setting clear.
  • Fixed #799; in legacy console, using the clink-selectall-conhost bindable command scrolls back to the last line after dismissing the Fi
(省略されました)
v1.8.3
  • Added an optional hide= field in _argmatcher:addarg() and _argmatcher:addflags(). Any strings listed in the hide field are added to the argument slot or list of flags, but completion functions will not show them. This gives argument slots the same ability that flags had with _argmatcher:hideflags().
  • Added the OSC9;9 escape sequence to the prompt in Windows Terminal and ConEmu, to let the terminal know the current directory. For example, this enables Windows Terminal's "Duplicate Tab" command to apply the current directory to the new tab.
  • Fixed the suggestion list to hide and go temporarily inactive after commands like complete which print some output and then show another prompt line. The suggestion list becomes active again after something changes the
(省略されました)
v1.8.2

v1.8.2

  • Improved highlight position and length detection in the suggestion list for some completions.
  • Added new suggestionlist.num_history setting to control how many history suggestions can be shown before suggestions from other sources (from 1 to 8).
  • Added an optimization when re-drawing the suggestion list.
  • Added to vi mode the F2 key binding for the clink-toggle-suggestion-list command.
  • Fixed the right alignment of the autosuggest hint string in vi mode (regression introduced in v1.3.43).
  • Fixed #797; crash when typing in vi mode (regression introduced in v1.8.0).

v1.8.1

  • Fixed #796; unable to load Clink on Win7 and earlier (regression introduced in v1.8.0 by Readline changes).
(省略されました)
v1.8.1

v1.8.1

  • Fixed #796; unable to load Clink on Win7 and earlier (regression introduced in v1.8.0 by Readline changes).

v1.8.0

  • Added an interactive list mode for choosing from available suggestions. This is similar to PowerShell's "listview" mode.
    • Added a clink-toggle-suggestion-list command (F2 by default) which toggles the suggestion list mode on/off.
    • Added a suggestionlist.default setting which can make a Clink session start with the suggestion list mode on.
    • Added new color.suggestionlist* color settings for the suggestion list colors.
  • Added new Lua API clink.opensessionstream() which opens or creates a named in-memory stream that behaves like a Lua file handle and lasts for
(省略されました)
v1.8.0
  • Added an interactive list mode for choosing from available suggestions. This is similar to PowerShell's "listview" mode.
    • Added a clink-toggle-suggestion-list command (F2 by default) which toggles the suggestion list mode on/off.
    • Added a suggestionlist.default setting which can make a Clink session start with the suggestion list mode on.
    • Added new color.suggestionlist* color settings for the suggestion list colors.
  • Added new Lua API clink.opensessionstream() which opens or creates a named in-memory stream that behaves like a Lua file handle and lasts for the duration of the Clink session, even when the Lua VM is restarted (such as by Ctrl-x,Ctrl-r).
  • Added debug.log_prompt setting which log
(省略されました)
v1.7.22
  • Explicitly disable loadlib and related support in Lua; Clink uses a statically linked Lua engine and does not support dynamic C libraries.
  • Fixed the onprovideline event so it doesn't interfere with the same_dir mode of prompt.transient.
  • Fixed input line coloring of echo in for %i (1 2 3) do @echo %i (regression introduced in v1.6.16).
  • Fixed how clink autorun set parses flags and quotes, so that clink autorun set \"c:\my tools\clink\" inject --autorun works as expected.
  • Fixed the exec.commands setting when an argmatcher uses :chaincommand().
  • Fixed edge cases for @ command prefix when an argmatcher uses :chaincommand().
  • Fixed #779; an argmatcher
(省略されました)
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()
(省略されました)