OFFSET偏移
← 文章目录OFFSET / FIELD NOTESNO. 049

Foot:搜索、选择与配置的边界

区分键盘模式、primary selection、字号和配置生命周期,保留完整键位表。

所在专题Shell、终端与会话 ↗
约 9 分钟阅读开始阅读

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

参考与延伸

  1. Foot 上游仓库与手册 ↗
  2. Foot 1.28 配置手册 ↗

根据技术笔记重新整理,示例使用通用名称。

沿专题继续阅读

Shell、终端与会话

  1. 01Fish:从键位到可编辑的命令行
  2. 02Foot:搜索、选择与配置的边界
  3. 03Zellij:窗口关了,会话还在吗?
CONTINUE READING / 下一篇Zellij:窗口关了,会话还在吗?

从 pane、tab 到 session,区分重新连接、布局恢复和进程状态。