Clink
詳細情報
タイトル | Clink |
---|---|
URL | https://github.com/chrisant996/clink |
バージョン | ver 1.7.5 |
更新日 | 2024/11/11 |
追加日 | 2024/04/05 |
種別 | フリーソフト |
説明 | cmd.exeの機能を拡張することができるユーティリティ。 |
レビュー
ClinkはWindowsのネイティブシェルであるcmd.exeに、保管、履歴、行編集機能などを追加するユーティリティ。
これらの機能はLinuxディストリビューションの標準シェル「Bash」でも使われているGNU Readlinによって提供されている。
以下のような機能を持つ:
- 自動サジェスチョン: 履歴、ファイル、補完に基づき、入力中にサジェスチョンを表示する。
- 補完: Tab または Ctrl-Space して単語を補完できる。
- 永続的な履歴: セッション間で永続的な履歴を保存。
- スクリプト可能なプロンプト: Lua スクリプトでプロンプトを動的にカスタマイズできる。
- 入力行の色付け: 入力は文脈依存の補完スクリプトによって色付けされる。
- コマンドライン編集の改善: 新しい入力編集コマンドと設定可能なキーバインディングでコマンドラインを強化。
スクリーンショット
更新グラフ
バージョン履歴
Tip
The first update that crosses past v1.7.0 will report an error.
Just run clink update
again to finish the update successfully.
- Added new Lua API console.ellipsify() to truncate an input string in various ways.
- Added new rl_buffer:setcommentrow() to let
"luafunc:"
commands immediately show text in the comment row. - Adjusted some character width measurements based on analysis from wcwidth-verifier on Win8.1, Win10 with conhost, Win10 with Windows Terminal 1.22, Win11 with conhost, and Win11 with Windows Terminal 1.22.
- The Headline, Pure, and Bureau clinkprompt files now consider unpublished branches as being "ahead", even in cases where git doesn't report a specific "ahead by" count.
- Internal changes to the right side
Tip
The first update that crosses past v1.7.0 will report an error.
Just run clink update
again to finish the update successfully.
- Changed searching for color themes and custom prompts to always include
themes\
directories under the Clink program directory and Clink profile directory, even when theclink.path
setting has been used to remove them from the list of script directories. - Improved emoji width measurements.
- Unqualified emojis are counted as a single cell now. Windows Terminal intentionally renders these as a single cell for compatibility with the behavior of the first terminal programs on Linux that began to support emoji characters (an important compatibility detail for the Windows Subsystem for Linux, for example).
- Country flag emoji character pairs are r
Tip
The first update that crosses past v1.7.0 will report an error.
Just run clink update
again to finish the update successfully.
v1.7.3
- Added the Tomorrow* color themes which were accidentally missing from v1.7.0.
- Fixed #682; the
clink config theme use
andclink config prompt use
commands had no effect if there is noclink_settings
file yet.
v1.7.0
Clink now supports color theme files and custom prompt files. These enable packaging Clink color settings or Clink custom prompts into shareable files. This finally makes it easy to download and apply themes or prompts shared by other people, or copy them and modify them. The new clink-themes repo is a site where .clinktheme and .clinkp
v1.7.2
This maintenance patch should address the issue where the v1.7.0 update fails to install the new themes\
directory.
Important
The first update will report an error. Start a new session of Clink after the error, and it will finish the update successfully.
Sorry for the inconvenience and confusion!
v1.7.0
Clink now supports color theme files and custom prompt files. These enable packaging Clink color settings or Clink custom prompts into shareable files. This finally makes it easy to download and apply themes or prompts shared by other people, or copy them and modify them. The new clink-themes repo is a site where .clinktheme and .clinkprompt files can be shared (see Contributing for det
Clink now supports color theme files and custom prompt files. These enable packaging Clink color settings or Clink custom prompts into shareable files. This finally makes it easy to download and apply themes or prompts shared by other people, or copy them and modify them. The new clink-themes repo is a site where .clinktheme and .clinkprompt files can be shared (see Contributing for details on how to contribute your own themes and prompts).
- Added support for
*.clinktheme
color theme files; see Color Themes for more information.- Added several
clink config theme
commands for color themes (runclink config theme --help
). - The famous Dracula, Solarized (light and dark), and Tomorrow (1 light, 4 dark) themes are included.
- Added several
- Reduced the performance overhead of hooked APIs from about 20 microseconds to about 2 microseconds.
- Enhanced the executable recognition to avoid flickering red (or
color.unrecognized
) for an executable name that was already recognized in a recent previous input line. - Enhanced the
srcmap
command in the Lua debugger so thatsrcmap dir
automatically sets up source mappings for Clink's built in scripts usingdir
as the repo root. - Fixed when
history.expand_mode
isoff
; it didn't fully turn off all of the history expansion syntax forms (for example the^
syntax). - Fixed input line coloring when the first word is a device name (e.g.
nul
orcom1:
); it should usecolor.unrecognized
for the color. - Fix
v1.6.19 has been deleted because it accidentally broke the updater -- if you already updated to v1.6.19, then a one-time manual update to v1.6.20 or newer is necessary to restore the updater.
- Fixed truncated descriptions with
clink set exec.
and thenclink-select-complete
(Ctrl-Space) (regression introduced in v1.6.11). - Fixed fully qualified paths from a different local drive accidentally being colored with
color.unrecognized
. - Fixed #648; on Windows 8.1 the title bar can get changed to "Windows PowerShell" for the rest of the CMD session.
- Fixed #652; error when trying to update again after updating to v1.6.20 (regression introduced in v1.6.19).
- Fixed truncated descriptions with
clink set exec.
and thenclink-select-complete
(Ctrl-Space). - Fixed fully qualified paths from a different local drive accidentally being colored with
color.unrecognized
. - Fixed #648; on Windows 8.1 the title bar can get changed to "Windows PowerShell" for the rest of the CMD session.
- Added a new callback function that can be assigned to an argument position in the table given to
:addarg()
viaonalias=
(see Responding to Arguments in Argmatchers for more information). The git argmatcher in the clink-completions repo uses this to support git aliases. - When a doskey alias doesn't include any
$
tokens then CMD is guaranteed to ignore the rest of the command line after the alias, so now argmatcher parsing also ignores the rest of the command line and colors it usingcolor.unexpected
. - Suppress the ANSICON warning in the log file and diagnostics output on Windows 8.1. The performance problem in ANSICON exists, but apparently there isn't a better alternative before Windows 10.
- Added warning in the log file and in
clink-diagnostics
(Ctrl-X,Ctrl-Z) when ANSICON is detected on Windows 8.1 or greater (it's unnecessary, less functional, and greatly degrades performance). - Added language info in
clink-diagnostics
when the code page is not 1252 (for easier troubleshooting). - Fixed finding argmatchers registered with exact names (typing
foo
couldn't find an argmatcher registered asc:\dir\foo.exe
because it accidentally looked forc:\dir\foo.EXE
). - Fixed #631; script error after
cmd
when the current language is German.
- Added a workaround for how scoop tries to control app versions and updates (#615; scoop causes
clink autorun install
to use a wrong path). - Added an
auto
mode for thematch.translate_slashes
setting. This mode makes completion translate all slashes in the completed word to match whichever kind occurs first in the word, or to the system path separator if there are no slashes yet (e.g. when completing a directory name). - Changed the default to
auto
for thematch.translate_slashes
setting. - Updated the
clink.slash_translation()
function. - UNC share name completion works with forward slashes now (e.g.
//localhost/
). - Added a
clink-toggle-slashes
bindable command, bound by default to Ctrl