kitty - Arch Linux 中文维基

跳转到内容

# kitty

来自 Arch Linux 中文维基

翻译状态：

- 本文（或部分内容）译自 Kitty，最近一次同步于 2025-01-22，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

kitty 是一个基于 OpenGL 的可编程终端模拟器，具有真彩色，连字支持，键盘输入和图像渲染的协议扩展。它还提供了类似于 GNU Screen 或 tmux 的平铺功能。

## 安装

安装 kitty包；若要获取开发版本，请安装 kitty-gitAUR。

## 用法

可以通过各种 `Ctrl+Shift` 快捷键来创建新的选项卡和窗口并调整其大小。布局可通过 `Ctrl+Shift+l` 切换，并可以保存/恢复。

全键盘模式可区分 `Ctrl+i` 和 `Tab` 等歧义键。此外，新的文本效果（例如，波浪下划线）也可用于支持它的应用程序。

### Kitten

kitty 有一个用于创建子程序的框架，称为 kitten（小猫）。所有 kitten 命令均以 `kitty +kitten` 为前缀，很方便作为 shell 别名。

#### icat

这个 kitten 基于 kitty 图形协议。其依赖 ImageMagick。要在终端内显示图像：

    $ kitty +kitten icat image.jpg

其也可以在终端内显示 gif 动图。除了图片文件，您也可以传递目录或图片 URL。这也可以在远程服务器上通过 ssh 显示图片。一些应用程序像 ranger 和 neofetchAUR 使用该协议在终端内显示图片。关于更多信息，请参阅官方文档。

#### diff

这个 kitten 需要 git 或 diffutils包 被安装。此外，您也可以安装 python-pygments包 来获得语法高亮效果。要显示两个文件的差异：

    $ kitty +kitten diff file1 file2

这个 kitten 显示了图形或文本的差异，也可以通过 ssh 使用，您可以用一个目录代替文件来显示递归差异。关于更多信息，参阅官方文档。

#### clipboard

这个 kitten 用于读写系统剪贴板，可以跨 ssh 使用。如果要将标准输入复制到剪贴板：

     $ echo "Hello" | kitty +kitten clipboard

将当前剪贴板内容输出到标准输出：

     $ kitty +kitten clipboard --get-clipboard

默认情况下，这条命令会提示请求权限，要禁用该提示，请在配置文件中编辑 clipboard_control 选项：

    ~/.config/kitty/kitty.conf

    clipboard_control write-clipboard read-clipboard

关于更多信息，请参阅官方文档。

## 配置

kitty 在 `~/.config/kitty/kitty.conf` 中存储配置，默认配置位于 `/usr/share/doc/kitty/kitty.conf`。可以调整字体，颜色，光标和回滚行为。您可以在官方文档或 kitty.conf(5) 中查看所有可用的选项。

注意：若您正在使用 vim 编辑默认配置文件，所有的节开始都会被折叠，每个节默认都可以用 `zo` 展开。
提示：

- 位于 `/usr/share/doc/kitty/kitty.conf` 的默认配置文件自带每个选项的说明。
- 官方文档在本地具有副本，位于 `/usr/share/doc/kitty/html/index.html`。

## 提示和技巧

### 输入法兼容

Kitty 默认情况下关闭了 IBus 框架。

请在环境变量中启用：

    GLFW_IM_MODULE=ibus

由于兼容问题，该环境变量也可解决 kitty 对 fcitx5 的兼容问题。

### 单实例模式

这类似于守护进程模式，当以 `--single-instance` 或 `-1` 选项启动 kitty 时，仅会运行一个 kitty 实例，随后以相同选项启动 kitty 时会创建已经存在的 kitty 实例的新窗口。这可以降低内存占用，因为共享了 GPU 缓存，而且会减少启动时间。您可以用 `--instance group name` 选项创建多组 kitty 实例。参阅 kitty(1) § single 以获取更多信息。

## 疑难解答

### SSH 连接故障

当 kitty 用于 ssh 连接到没有其 terminfo 的远程主机时，可能会出现各种问题。解决方案通常是复制 terminfo。Kitty 有一个 ssh 小工具来自动化这一过程。

    $ kitty +kitten ssh user@host

您可以将其设置为 ssh 的别名。实现这一点的一种方法是检测用户是否在使用 Kitty，如果是，则为 ssh 命令设置别名。为此，您需要将以下行附加到您的 `~/.bashrc` 或`~/.zshrc` 文件中：

    [ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"

### 背景色在 vim 中消失

在 vim 中使用带背景色的配色方案后，滚动时背景色可能会消失或闪烁。欲修复，请确保 `TERM` 环境变量依然被设为 `xterm-kitty`，然后添加以下行到您的 `.vimrc` 文件：

    ~/.vimrc

    let &t_ut=''

相关 bug 报告：Github issue #108，kitty FAQ。

### 无法识别位图字体

因为 kitty 的基本特性是以任意大小显示字体，而位图字体不适合缩放，故 kitty 不支持位图字体，参阅 Github issue #97。

## 参见

- 官方网站
- GitHub 仓库

分类：​

- 终端模拟器
- 终端多路复用器

kitty
添加话题