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。