
kitty 可映射动作与按键映射完全指南从动作分组到默认快捷键速查【免费下载链接】kittyIf you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based.项目地址: https://gitcode.com/GitHub_Trending/ki/kitty本篇指南围绕 kitty 的可映射动作Mappable actions体系展开说明所有动作如何绑定到按键与鼠标事件、11 个动作分组各自包含哪些能力、以及仓库内置的全部默认键盘/鼠标快捷键。读完本文你可以直接查到自己想要的动作与默认键位并在kitty.conf中定制映射、组合宏、甚至用命令行面板command palette交互式触发任意动作。一、什么是可映射动作kitty 文档docs/actions.rst开篇即定义了本页的定位所有列出的动作都可以通过kitty.conf中的map和mouse_map指令绑定到任意按键或鼠标事件上每个动作旁标注的默认快捷键就是配置示例键盘映射的进阶语法组合、多键、模态映射等在docs/mapping.rst中详述。除了静态阅读文档还指出了一条交互式路径按下command_palette对应的快捷键默认CtrlShiftF3可打开 command palette在其中搜索并直接触发所有动作。这一页并非手写而是由源码在文档构建时自动生成docs/conf.py在write_conf_docs中调用kitty.actions.as_rst()将结果写入generated/actions.rst再由docs/actions.rst通过 include 引入。因此本文的清单与仓库源码始终保持一致。二、动作清单是如何从源码生成的理解生成机制后你就能在源码中精确定位任何一个动作的实现。1. 用ac装饰器登记动作。kitty/types.py 定义了动作分组类型与登记装饰器ActionGroup Literal[cp, sc, win, tab, fs, mouse, mk, lay, misc, debug, session] class ActionSpec(NamedTuple): group: str doc: str def ac_T - Callable[[_T], _T]: def w(f: _T) - _T: setattr(f, action_spec, ActionSpec(group, doc)) return f return w装饰器的第二个参数doc就是文档中该动作的说明文字首行作为短帮助其余行作为长帮助。2. 反射收集 Window / Tab / Boss 三类对象上的所有动作。kitty/actions.py 的get_all_actions()遍历Window、Tab、Boss三个类凡是带有action_spec属性的方法都会进入清单文档中动作名如copy_to_clipboard就是方法名。此外源码还手工补入了一个特殊动作no_op——把某个快捷键映射到no_op后kitty 将不再拦截该按键而是原样传给终端内的程序ans[misc].append(Action( no_op, misc, Unbind a shortcut, Mapping a shortcut to no_op causes kitty to not intercept the key stroke anymore, instead passing it to the program running inside it.))3. 关联默认快捷键。kitty/actions.py 的as_rst()会遍历definition.iter_all_maps()——即 kitty/options/definition.py 中全部默认map()条目把每个动作与其默认快捷键配对输出形如 Default shortcuts using this action: ...。kitten动作还会自动链接到对应 kitten 的文档页。4. 动作分组。kitty/actions.py 中的groups字典定义了 11 个分组及其标题分组代码标题典型动作所在类cpCopy/pasteWindow / BossscScrollingWindowwinWindow managementWindow / Tab / BosstabTab managementBossfsFont sizesBossmouseMouse actionsWindowmkMarksWindow / BosslayLayoutsTabmiscMiscellaneousBoss含no_opdebugDebuggingBoss / WindowsessionSessionsBoss从源码结构看当前仓库中标注ac的方法约有 140 处分布在 kitty/window.py42 处、kitty/boss.py71 处、kitty/tabs.py28 处三个文件。三、各分组的核心动作速览以下按分组摘录高频动作均取自源码ac装饰器的文档字符串实现位置见文件链接。Copy/pastecp—— kitty/window.py、kitty/boss.py动作说明copy_to_clipboard将当前窗口选中文本复制到剪贴板copy_ansi_to_clipboard带 ANSI 格式码复制copy_or_interrupt有选中则复制否则发送 SIGINTCtrlCcopy_and_clear_or_interrupt复制并清除选区否则发送 SIGINTpass_selection_to_program把选中文本作为命令行参数传给指定程序clear_selection清除当前选区paste_from_clipboard/paste_from_selection从剪贴板 / 主选区粘贴Scrollingsc—— kitty/window.pyscroll_line_up、scroll_line_down支持smooth平滑滚动参数、scroll_page_up/scroll_page_down整页滚动、scroll_home回到回卷缓冲顶部、scroll_end回到底部、show_scrollback用 less 式分页器浏览回卷缓冲、show_last_command_output、scroll_prompt_to_bottom把 shell 提示行滚动到屏幕底部。Window managementwin—— 分布在 kitty/boss.py、kitty/tabs.pynew_window、new_os_window、close_window、next_window/previous_window、first_window~tenth_window直接聚焦第 1~10 个窗口、move_window_forward/move_window_backward/move_window_to_top、neighboring_window/move_window按方向键导航/移动、start_resizing_window、reset_window_sizes撤销动态调窗、focus_visible_window可视化选窗字符集由visual_window_select_characters配置、swap_with_window、toggle_fullscreen、toggle_maximized、close_os_window、quit。Tab managementtab—— kitty/boss.pynew_tab、next_tab/previous_tab、close_tab、close_other_tabs_in_os_window、goto_tab按序号跳转、move_tab_forward/move_tab_backward、set_tab_title、select_tab交互式选择标签页。Font sizesfs—— 通过change_font_size动作参数化all 2.0全体字号加 2 磅、all *2.0放大一倍、all 0复位。默认快捷键见下文速查表。Mouse actionsmouse—— kitty/window.pymouse_handle_click处理点击可作用于selection、link、prompt、mouse_click_url、mouse_selection普通/矩形/按词/按行选取、paste_selection中键粘贴主选区等均可作为mouse_map右侧的动作。Marksmk——toggle_marker开关当前标记、create_marker、remove_marker、scroll_to_mark跳到上/下一个标记。Layoutslay—— kitty/tabs.pynext_layout切换下一个启用布局可带步长、last_used_layout、goto_layout切到指定布局、toggle_layout、layout_action执行布局专属动作详见 layouts 文档。Miscellaneousmisc—— 杂项包含edit_config_file在编辑器中打开 kitty.conf、kitten运行任意 kitten文档自动链接到对应页、input_unicode_character调用 unicode_input kitten、open_url/open_url_with_hints、sleep按秒/分/时/天休眠可小数、remote_control/remote_control_script触发远程控制命令或脚本、launch按 launch 规范开窗、discard_event完全丢弃事件不传给程序、no_op释放该键、grab_keyboard/ungrab_keyboard、show_error以及 macOS 专属的hide_macos_app、minimize_macos_window等。Debuggingdebug——debug_config查看当前生效配置、show_kitty_env_vars、dump_lines_with_attrsdump 屏幕行及属性、simulate_color_scheme_preference_change、test_dragging配合 mouse_map 测试拖拽。Sessionssession——goto_session切换/创建会话、save_as_session把当前状态存为会话文件、goto_previous_session。四、默认键盘映射全表以下表格完整摘自 kitty/options/definition.py 中map()的默认值kitty_mod默认为CtrlShift可在配置中整体更改标注 macos 的条目仅在 macOS 上生效。这就是文档中每个动作的默认快捷键一栏的数据来源。功能快捷键绑定的动作复制到剪贴板kitty_modccopy_to_clipboard粘贴剪贴板kitty_modvpaste_from_clipboard粘贴主选区kitty_mods、shiftinsertpaste_from_selection选区传给程序kitty_modopass_selection_to_program上行/下行滚动kitty_modup/down、kitty_modk/jscroll_line_up/scroll_line_down smooth上页/下页滚动kitty_modpage_up/page_downscroll_page_up/scroll_page_down滚到顶/底kitty_modhome/endscroll_home/scroll_end滚到上一个 shell 提示行kitty_modzscroll_to_prompt -1分页器浏览回卷缓冲kitty_modhshow_scrollback浏览上一条命令输出kitty_modgshow_last_command_output新建窗口kitty_modenternew_window新建 OS 窗口kitty_modnnew_os_window关闭窗口kitty_modwclose_window下一个/上一个窗口kitty_mod]/[next_window/previous_window窗口前移/后移/置顶kitty_modf/b/move_window_forward/move_window_backward/move_window_to_top开始拖拽调窗kitty_modrstart_resizing_window聚焦第 1~10 个窗口kitty_mod1…kitty_mod0first_window…tenth_window可视化选窗/换窗kitty_modf7/f8focus_visible_window/swap_with_window下一个/上一个标签页kitty_modright/left、ctrltab/ctrlshifttabnext_tab/previous_tab新建/关闭标签页kitty_modt/qnew_tab/close_tab标签页前移/后移kitty_mod./,move_tab_forward/move_tab_backward设置标签页标题kitty_modalttset_tab_title切换布局kitty_modlnext_layout增大/减小/复位字号kitty_modequal/plus、kitty_modminus/kp_subtract、kitty_modbackspacechange_font_size all 2.0/-2.0/0打开 URLhintskitty_modeopen_url_with_hints插入选中路径/行/单词/哈希kitty_modpf/l/w/h多键映射调用kitten hints --type path/line/word/hash --program -插入选定文件/目录kitty_modpc/dkitten choose-files [--modedir]打开选中文件指定行 / 超链接kitty_modpn/ykitten hints --type linenum/--type hyperlink全屏/最大化kitty_modf11/f10toggle_fullscreen/toggle_maximizedUnicode 输入kitty_modukitten unicode_input编辑配置文件kitty_modf2edit_config_file打开 kitty 命令行 shellkitty_modescapekitty_shell window背景透明度增减/满/复位kitty_modam/l/1/dset_background_opacity 0.1/-0.1/1/default复位终端kitty_moddeleteclear_terminal reset active重载 kitty.confkitty_modf5load_config_file调试配置kitty_modf6debug_config打开命令面板kitty_modf3command_palettemacOS 专属映射还包括cmdenter新窗口、cmdn新 OS 窗口、shiftcmdd关窗、cmd1…cmd0聚焦窗口、shiftcmd]/[切标签页、cmdt新标签页、cmdw关标签页/关 OS 窗口、ctrlcmdf全屏、cmd,编辑配置、optcmdr复位终端、cmdq退出等。所有字母类默认快捷键均带--allow-fallbackshifted,ascii即同时匹配按住 Shift 的字符与该物理键在 US 布局下的字符从而在非拉丁键盘布局俄语、阿拉伯语等下依然可用该机制的完整说明见 mapping 文档。五、默认鼠标映射全表鼠标绑定通过mouse_map指令配置语法为mouse_map 按钮名 事件类型 模式 动作事件类型取值press/release/doublepress/triplepress/quadruplepress模式取值ungrabbed程序未抓取鼠标与grabbed。默认条目kitty/options/definition.py 中的 28 条mma()功能鼠标事件模式动作点击链接或移动光标左键单击ungrabbedmouse_handle_click selection link prompt抓取状态下点击链接shift左键单击grabbed,ungrabbedmouse_handle_click selection link prompt点击链接释放时ctrlshift左键释放grabbed,ungrabbedmouse_handle_click link中键粘贴主选区中键释放ungrabbedpaste_from_selection开始选择左键按下ungrabbedmouse_selection normal矩形选择ctrlalt左键按下ungrabbedmouse_selection rectangle选中一个词左键双击ungrabbedmouse_selection word选中一行左键三击ungrabbedmouse_selection line从行首选中一行alt左键三击ungrabbedmouse_selection line_from_begin从点击点选中到行尾ctrlalt左键三击ungrabbedmouse_selection line_from_point扩展选区右键按下ungrabbedmouse_selection extend扩展选区shiftshift左键按下ungrabbedmouse_selection extend抓取状态下中键粘贴shift中键释放ungrabbed,grabbedpaste_selection抓取状态下左键选择/双击选词/三击选行shift左键/shiftalt左键/ctrlshiftalt左键grabbed 等mouse_selection系列查看点击的命令输出ctrlshift右键按下ungrabbedmouse_show_command_outputkitty 还内置了链接点击拦截细节ctrlshift左键在press阶段先discard_event丢弃按压事件、在release阶段再触发mouse_handle_click link避免与选区操作互相干扰——这也是一个鼠标事件拆成两条映射的范例写法。六、用 map / mouse_map 定制你自己的映射kitty.conf中的map基本语法摘自 mapping 文档# 基本形式修饰键键 → 动作 map ctrla new_window_with_cwd # 组合多个动作宏用冒号分隔 map kitty_mode combine : new_window : next_layout # 多键序列 map ctrlf2 set_font_size 20 # 释放默认快捷键映射到空或 no_op按键将传给终端内程序 map kitty_modenter # 完全丢弃事件连程序也不给 map kitty_modf1 discard_event # 触发远程控制命令 / 脚本 / kitten map f1 remote_control set-spacing margin30 map f1 remote_control_script /path/to/myscript map f1 kitten mykitten.py # 发送任意文本或按键 map f1 send_text normal,application echo Hello, world!\r map alts send_key ctrls映射进阶能力均出自 mapping 文档此处给出要点以便配合动作清单使用模态映射map --new-mode mw kitty_modf7创建模式后map --mode mw ...为该模式定义按键可用--on-unknownbeep/ignore/end/passthrough与--on-action end控制未知键与动作后行为条件映射map --when-focus-on title:...仅在焦点窗口满足条件时生效例如编辑器运行时释放某个组合键避免与程序内快捷键冲突超时map_timeout 2.0设置全局多键/模态超时map --new-mode resize --timeout 5.0 ...可按模式覆盖调试kitty --debug-input打印每次按键的系统事件与 kitty 处理结果kitten show-key加-m kitty使用 kitty 键盘协议查看应用实际收到的按键。七、用 command palette 浏览与触发全部动作回到docs/actions.rst提到的第二条路径默认映射map kitty_modf3 command_palette即CtrlShiftF3定义于 kitty/options/definition.py打开 command palette 面板。面板中的要点详见 kittens/command-palette 文档已绑定快捷键的动作与未绑定的动作标记(unmapped)一起按类别列出鼠标绑定单独成节F12切换是否显示未绑定动作输入即搜跨key / action / category三列做大小写不敏感匹配支持单词精确、前缀与最多两处拼写容错匹配更多词项的条目排名更高Enter执行选中动作Escape清空搜索或关闭面板方向键/CtrlN/P/CtrlJ/K/Page Up/Down/Home/End 导航鼠标点击可直接执行自定的模态键盘映射会以独立分组头显示。发现未绑定动作 → 记下动作名 → 回kitty.conf添加映射正是动作清单与面板配合的日常工作流。八、参考文件索引内容路径动作清单原始页面include 生成文件docs/actions.rst动作自动采集与 RST 生成kitty/actions.pyac装饰器与ActionGroup定义kitty/types.py动作实现窗口级kitty/window.py动作实现标签页/布局级kitty/tabs.py动作实现Boss 级标签页、字体、会话等kitty/boss.py默认 map / mouse_map 全部条目kitty/options/definition.py按键映射语法进阶docs/mapping.rstcommand palette 文档与实现docs/kittens/command-palette.rst、kittens/command_palette/main.go适用前提以上内容基于当前仓库的源码与配置定义默认快捷键以definition.py中map()/mma()的默认值为准macOS 专属条目在 Linux 上不会生效kitty_mod的实际组合取决于你的kitty.conf设置。【免费下载链接】kittyIf you live in the terminal, kitty is made for you! Cross-platform, fast, feature-rich, GPU based.项目地址: https://gitcode.com/GitHub_Trending/ki/kitty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考