ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Herdr 自定义命令键位绑定:popup、pane 与 shell 三种 type 的配置与调用上下文

Herdr 自定义命令键位绑定:popup、pane 与 shell 三种 type 的配置与调用上下文 Herdr 自定义命令键位绑定popup、pane 与 shell 三种 type 的配置与调用上下文【免费下载链接】herdrthe runtime your coding agents live on项目地址: https://gitcode.com/GitHub_Trending/her/herdr在 Herdr 里跑 coding agent 时经常需要临时调起 lazygit、开个临时 shell 或者后台跑一个长任务。Herdr 的[[keys.command]]配置可以把任意命令绑到键盘上并通过type字段选择执行形式popup会话内弹窗、pane临时放大面板、shell后台分离运行。本文的任务是在config.toml里正确写出这三种绑定理解命令实际以什么 shell、什么工作目录、携带哪些环境变量被调用最后用键位帮助面板验证绑定生效。适用前提是 Herdr 客户端已可正常运行且能编辑本机配置文件。找到并编辑配置文件Herdr 无需配置文件即可运行自定义键位绑定时才需要添加它。配置文件位置Linux and macOS: ~/.config/herdr/config.toml Windows: %APPDATA%\herdr\config.toml执行herdr --help可以看到你系统上解析后的配置路径。如果想要一份完整的起始配置把默认配置直接导出保存herdr --default-config ~/.config/herdr/config.tomlherdr --default-config会打印完整默认配置也可以只把它当参考在现有配置里追加[[keys.command]]表。键位字符串怎么写自定义命令使用与 Herdr 其他键位相同的语法。默认 prefix 是ctrlbprefixaltg表示先按ctrlb松开再按altgctrlaltg这种带修饰键的组合则是不经过 prefix 的直接快捷键。键位字符串接受普通键、修饰键组合ctrla、shiftn、alt1、cmdk以及enter、tab、esc、方向键等特殊键。像n这样的无修饰可打印键会拦截正常输入除非你有意为之否则建议用prefix前缀。一个动作也可以绑定多个快捷键写成数组[keys] next_tab [prefixn, ctrlalt]]配置三种 type三种type都写在[[keys.command]]表里必填字段是key、type、commanddescription可选。type popup会话内弹窗[[keys.command]] key prefixaltg type popup command lazygit description run lazygit width 80% height 80%popup打开一个会话内模态弹窗不改变当前 tab 布局。弹窗会接收所有终端输入包括 Escape直到里面的命令退出后自动关闭。width和height是可选的省略时为默认半尺寸弹窗数字表示终端单元格数字符串如80%表示终端区域的比例尺寸包含弹窗边框小于最小值的数值会被钳制到最小值。在 Unix 和 macOS 上popup 还可以提供一个临时终端不需要新增 split 或 tab[[keys.command]] key prefixt type popup command exec \${SHELL:-sh}\ description open scratch terminal width 80% height 80%Windows 上改用command powershell.exe -NoLogo这类 shell 命令。退出 shell 即关闭弹窗恢复原来的平铺终端视图。type pane临时放大面板[[keys.command]] key prefixshiftg type pane command lazygit description lazygit in zoomed panepane打开一个临时放大面板命令退出时面板自动关闭。type shell后台分离运行[[keys.command]] key prefixshifts type shell command my-agent-state.sh description run state script in backgroundshell在后台分离运行命令不占用前台焦点适合不阻塞当前操作的脚本。除这三种之外文档还定义了type plugin_action来调用已安装插件的动作 id动作 id 不全局唯一时用限定 id如command example.layout.apply本文不展开。description设置后会显示在键位帮助面板里不设置时显示默认的custom command标签。调用上下文命令实际如何被执行写command字符串前需要理解执行环境否则命令在错误的工作目录或 shell 里跑会查不到文件、拿不到变量。执行用的 shell。在 Unix 上pane 类命令字符串通过/bin/sh -c执行detached 类命令通过/bin/sh -lc执行在 Windows 上通过cmd.exe /d /c执行。Windows 下环境变量用%HERDR_BIN_PATH%这类语法如果要用 PowerShell 语法必须显式调用例如powershell.exe -NoProfile -Command ...。传入的环境变量。当对应值可用时自定义命令会收到以下环境变量变量含义HERDR_SOCKET_PATHHerdr socket 路径HERDR_BIN_PATHherdr 可执行文件路径HERDR_ACTIVE_WORKSPACE_ID当前活动 workspace idHERDR_ACTIVE_TAB_ID当前活动 tab idHERDR_ACTIVE_PANE_ID当前活动 pane idHERDR_ACTIVE_PANE_CWD当前活动 pane 的工作目录工作目录。当 Herdr 能检测到聚焦 pane 的工作目录时shell 命令从该目录运行。popup 的一个特例。popup 命令不会收到HERDR_PANE_ID要指向上层平铺 pane 时使用HERDR_ACTIVE_PANE_ID。配置归属。pane 默认值、worktrees、integrations 和自定义命令属于 pane 实际运行的那个 Herdr server。通过herdr --remote查看远程机器时自定义命令绑定随远程 server 的配置走而不是本地客户端配置。应用修改并验证编辑完config.toml后重载运行中的 serverherdr server reload-config也可以在 Herdr 的全局菜单里选择reload config。重载会同时应用客户端本地配置和所选 server 的配置本地键位绑定也会随之重载只有少数启动时设置需要重启才生效。验证方式在 Herdr 里按prefix?打开键位帮助面板确认新绑定的快捷键出现在列表里按/可以过滤动作名Backspace 编辑过滤词ctrlu清空。检查帮助面板中该绑定显示的是你配置的description而不是custom command说明这条绑定被正确解析。实际按下快捷键确认行为与type一致popup弹出会话内弹窗且布局不变pane打开临时放大面板并在命令退出后关闭shell不抢占前台并在后台运行。如果配置值无效Herdr 会回退到安全默认值并在启动时给出警告此时按警告提示修正[[keys.command]]条目。想彻底恢复默认键位时herdr config reset-keys会备份config.toml、删除[keys]和[[keys.command]]重启或执行herdr server reload-config后使用内置默认值。限制与注意事项popup 的宽高小于弹窗最小值时会被钳制不能通过配置得到比最小尺寸更小的弹窗。popup 在命令退出前持有全部输入包括 Escape弹窗内程序若依赖 Escape 作为自身快捷键会受到影响。键位绑定、prefix 等设置与终端自身、tmux 的快捷键可能冲突默认键位优先走 prefix 就是为了不抢占 shell、编辑器和终端程序的输入直接快捷键绑定前需自行确认终端环境不冲突。排查绑定行为异常时日志文件在~/.config/herdr/herdr.log客户端与 server 另有herdr-client.log、herdr-server.log日志自动轮转。完整的键位字段、类型与默认值可以在 Config reference 中按keys.过滤查看自定义命令绑定是用户自定义表不在该参考的逐键列表中以 Configuration 的 Custom command keybindings 一节为准。键位语法与 prefix-free 玩法的更多说明见 Keyboard。【免费下载链接】herdrthe runtime your coding agents live on项目地址: https://gitcode.com/GitHub_Trending/her/herdr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表