Foot 是 Wayland 原生、轻量快速的终端模拟器,快捷键通过
foot.ini配置。本文键位按 Foot 1.28 手册核对;自定义配置可以覆盖默认值。终端快捷键和内部 Shell 的快捷键属于不同层。
通用快捷键#
| 快捷键 | 动作 |
|---|---|
Ctrl+Shift+c |
复制选中文本到剪贴板 |
Ctrl+Shift+v |
从剪贴板粘贴 |
Shift+Insert |
从 primary selection 粘贴(先选中,随后用此键粘贴) |
Ctrl+Shift+r |
进入滚动搜索模式 |
Ctrl+Shift+n |
新建终端窗口 |
Ctrl+Shift+o |
URL 模式:高亮所有 URL,按键跳转 |
Ctrl+Shift+u |
Unicode 输入模式(输入码点插入字符) |
Ctrl+Shift+z |
跳转到上一个 shell 提示符 |
Ctrl+Shift+x |
跳转到下一个 shell 提示符 |
Ctrl+plus / Ctrl+= / Ctrl+KP_Add |
增大字号 |
Ctrl+minus / Ctrl+KP_Subtract |
减小字号 |
Ctrl+0 / Ctrl+KP_0 |
重置字号 |
Shift+Page_Up |
向上滚动一页 |
Shift+Page_Down |
向下滚动一页 |
Ctrl+Shift+z/x跳转提示符依赖 shell 配合。需要 Shell 发送正确的 OSC 133 提示符标记;不能仅因使用 Fish 就假定所有提示符函数都提供了相同标记。
滚动搜索模式#
Ctrl+Shift+r 进入后,搜索框出现在屏幕顶部。
导航与编辑
| 快捷键 | 动作 |
|---|---|
Left / Ctrl+b |
光标左移 |
Right / Ctrl+f |
光标右移 |
Ctrl+Left / Alt+b |
光标左移一个单词 |
Ctrl+Right / Alt+f |
光标右移一个单词 |
Home / Ctrl+a |
光标移到搜索框开头 |
End / Ctrl+e |
光标移到搜索框末尾 |
BackSpace |
删除前一个字符 |
Alt+BackSpace / Ctrl+BackSpace |
删除前一个单词 |
Delete |
删除后一个字符 |
Alt+d / Ctrl+Delete |
删除后一个单词 |
Ctrl+u |
删除光标到开头 |
Ctrl+k |
删除光标到末尾 |
搜索与选择
| 快捷键 | 动作 |
|---|---|
Ctrl+r |
查找上一个匹配项 |
Ctrl+s |
查找下一个匹配项 |
Ctrl+w / Ctrl+Shift+Right |
选中到词尾(以非字母数字为界) |
Ctrl+Shift+w |
选中到下一个空白(以空白字符为界) |
Shift+Left |
向左扩展选中一个字符 |
Shift+Right |
向右扩展选中一个字符 |
Ctrl+Shift+Left |
向左扩展到词首 |
Shift+Up |
向上扩展选中一行 |
Shift+Down |
向下扩展选中一行 |
粘贴与退出
| 快捷键 | 动作 |
|---|---|
Ctrl+v / Ctrl+y / Ctrl+Shift+v |
粘贴到搜索框 |
Shift+Insert |
从 primary selection 粘贴 |
Return |
退出搜索,并将当前选择复制到 primary selection |
Escape / Ctrl+g / Ctrl+c |
取消搜索 |
搜索时翻阅上下文
搜索框聚焦时仍可滚动终端内容:
| 快捷键 | 动作 |
|---|---|
Shift+Page_Up |
向上翻一页 |
Shift+Page_Down |
向下翻一页 |
URL 模式#
Ctrl+Shift+o 进入后,所有检测到的 URL 会被高亮,每个 URL 分配一个跳转标签(label)。
| 快捷键 | 动作 |
|---|---|
t |
切换 URL 可见性(闪烁/常亮) |
Escape / Ctrl+g / Ctrl+c / Ctrl+d |
退出 URL 模式 |
默认标签键位:s a d f j k l e w c m p g h
按下对应键即可用浏览器打开该 URL。
Unicode 输入模式#
Ctrl+Shift+u 进入后,输入 Unicode 码点(十六进制)即插入对应字符。例如输入 00e9 得到 é。
鼠标操作#
| 鼠标操作 | 动作 |
|---|---|
| 左键拖动 | 按字符选中文本(复制到 primary selection) |
| 双击左键 | 选中整个单词 |
| 三击左键 | 选中引用字符串(被引号包围的内容) |
| 四击左键 | 选中整行 |
Ctrl + 左键拖动 |
块选择(矩形选区) |
| 右键点击 | 扩展当前选中范围 |
Ctrl + 右键点击 |
按字符级扩展(而非单词级) |
| 中键点击 | 粘贴 primary selection |
Ctrl + 滚轮上 |
增大字号 |
Ctrl + 滚轮下 |
减小字号 |
| 滚轮上下 | 滚动历史缓冲区 |
按住
Shift可覆盖终端内应用对鼠标的控制权(如 vim 的鼠标模式)。
鼠标选择对比表#
| 操作 | 选中范围 | 示例(光标在 hello_world 上) |
|---|---|---|
双击 (BTN_LEFT-2) |
整个单词(字母数字+下划线) | hello_world |
Ctrl + 双击 |
空白分隔的词 | hello_world(下划线不是空白;与普通按词选择的差异要用含标点的例子观察) |
三击 (BTN_LEFT-3) |
引号包围内容 | "hello world" |
四击 (BTN_LEFT-4) |
整行 | 当前行全部内容 |
可自定义但默认未绑定的操作#
以下操作可在 foot.ini 的 [key-bindings] 中自定义绑定,但默认无快捷键:
| 操作 | 说明 |
|---|---|
scrollback-up-half-page |
向上滚动半页 |
scrollback-up-line |
向上滚动一行 |
scrollback-down-half-page |
向下滚动半页 |
scrollback-down-line |
向下滚动一行 |
scrollback-home |
跳到缓冲区开头 |
scrollback-end |
跳到缓冲区末尾(最新输出) |
minimize |
最小化窗口 |
maximize |
最大化窗口 |
fullscreen |
全屏 |
pipe-visible |
将可见内容管道输出 |
pipe-scrollback |
将全部缓冲区管道输出 |
pipe-selected |
将选中内容管道输出 |
pipe-command-output |
将命令输出管道输送到外部命令 |
show-urls-copy |
URL 模式:复制而非打开 |
show-urls-persistent |
URL 模式:持久模式 |
regex-launch |
正则匹配并打开 |
regex-copy |
正则匹配并复制 |
color-theme-switch-dark/light |
切换配色方案 |
color-theme-toggle |
切换配色(双方案间) |
quit |
退出终端 |
noop |
空操作(用于覆盖不需要的默认绑定) |
配置文件位置与重载#
# 主配置文件
~/.config/foot/foot.ini
# 验证配置
foot --check-config
# 指定配置启动一个新实例
foot --config ~/.config/foot/foot.ini一般配置改动应由新实例读取,server 模式还涉及 server 的配置生命周期。SIGUSR1 / SIGUSR2 在 Foot 1.28 中切换深色/浅色方案,不是通用配置重载信号。不要向所有 Foot 进程发送信号来尝试“刷新”。
NixOS / Home Manager 管理
# Home Manager
programs.foot = {
enable = true;
settings = {
main = {
font = "Iosevka:size=11";
shell = "fish";
};
key-bindings = {
scrollback-up-line = "Control+Shift+Up";
scrollback-down-line = "Control+Shift+Down";
};
};
};小技巧#
自定义单行滚屏(默认只有翻页):
[key-bindings]
scrollback-up-line=Control+Shift+Up
scrollback-down-line=Control+Shift+Down把 Alt 键当 Meta 用(默认行为,发 ESC 前缀):
[key-bindings]
# Alt+h → 发送 ESC+h 序列(vim/nvim 中即识别为 Meta+h)
# 这是默认行为,无需配置全屏切换:
[key-bindings]
fullscreen=F11参考与延伸
根据技术笔记重新整理,示例使用通用名称。