如何在Windows Terminal中存储并选择带占位符的预配置Bash命令?
在Windows Terminal中实现预配置命令列表(支持占位符补全)
下面是几个无需依赖外部网站、直接可用的实现方案,覆盖不同使用场景:
方案1:利用Windows Terminal内置命令面板(零额外工具)
通过自定义终端动作,把预配置命令添加到命令面板,支持快捷键触发,还能自动定位光标到占位符位置。
配置步骤
- 打开Windows Terminal设置(快捷键
Ctrl+,),切换到「JSON文件」编辑模式 - 在
actions数组中添加自定义命令,示例配置:
{ "command": { "action": "sendInput", "input": "git commit -a -m \"\"\u001b[1D" }, "name": "Git 快速提交", "shortcuts": "ctrl+shift+c" }, { "command": { "action": "sendInput", "input": "scp ./dist/* user@server:/var/www/html/\u001b[10D" }, "name": "上传dist到服务器", "shortcuts": "ctrl+shift+u" }
sendInput会把命令直接发送到当前终端的提示符\u001b[1D是ANSI光标左移序列,用来把光标定位到占位符位置(比如引号中间、服务器地址位置)
- 保存配置后,按下
Ctrl+Shift+P打开命令面板,搜索自定义的命令名即可执行,也可以直接用绑定的快捷键
方案2:PowerShell自定义函数(批量管理命令)
适合需要维护大量预配置命令的场景,通过PowerShell函数生成可视化选择菜单,选完自动填充命令并定位光标。
实现步骤
- 打开PowerShell配置文件(输入
notepad $PROFILE,如果文件不存在则新建) - 添加以下函数:
function Show-CommandMenu { # 定义预配置命令列表:Name是显示名称,Command是要填充的命令,CursorPos是光标最终位置(从行首开始计数) $commands = @( @{Name="Git 提交(带消息占位)"; Command='git commit -a -m ""'; CursorPos=22}, @{Name="拉取当前分支"; Command='git pull origin $(git rev-parse --abbrev-ref HEAD)'; CursorPos=0}, @{Name="新建Python虚拟环境"; Command='python -m venv .venv && .\.venv\Scripts\activate'; CursorPos=0} ) $selected = $commands | Out-GridView -Title "选择预配置命令" -OutputMode Single if ($selected) { # 把命令输出到当前提示符 [Console]::Write($selected.Command) # 移动光标到指定位置 if ($selected.CursorPos -gt 0) { [Console]::Write("`e[$($selected.CursorPos)G") } } }
- 保存配置后,重启终端,输入
Show-CommandMenu即可弹出可视化菜单,选择后命令自动填充到提示符,光标定位到位
方案3:Clink增强工具(CMD/PowerShell通用)
Clink是给CMD和PowerShell补全功能的工具,支持自定义命令模板和占位符处理,适合重度终端用户。
实现步骤
- 安装Clink后,找到其配置文件(通常在
%LOCALAPPDATA%\clink\clink_config.lua) - 添加自定义命令:
-- Git提交模板 clink.add_command("git-commit", function () clink.set_input_line('git commit -a -m ""') clink.move_cursor(-1) -- 光标移到两个引号中间 end) -- 服务器文件上传模板 clink.add_command("upload-dist", function () clink.set_input_line('scp ./dist/* user@server:/var/www/html/') clink.move_cursor(-10) -- 光标移到server位置,方便修改地址 end)
- 重启终端后,输入
git-commit或upload-dist,命令会自动填充到提示符,光标直接定位到需要修改的位置
各方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| 内置命令面板 | 零额外工具、配置简单 | 批量命令维护繁琐、光标定位需手动计算 |
| PowerShell函数 | 批量管理灵活、可视化选择 | 仅支持PowerShell环境 |
| Clink工具 | 支持CMD/PowerShell、功能丰富 | 需要安装第三方工具 |
内容的提问来源于stack exchange,提问作者Milad Ashrafi
相关产品推荐
相关产品推荐

