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) 中查看所有可用的选项。
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。