<commit_before># Run this when we open this buffer, so that we don't format away the nice
# alignments for each keybinding.
#
#   (format-all-mode -1)

key_bindings:
  # Bindings for Alacritty itself ---------------------------------------------

  # When exiting Vi mode, scroll to the very bottom first to restore
  # pre-Vi-mode context.
  - { key: Q,         mode:  Vi,                      action: ScrollToBottom   }
  - { key: Q,         mode:  Vi,                      action: ToggleViMode     }

  # Quick navigation. This is like 10j or 10k in Vim's normal mode, but with one
  # keystroke.
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }

  - { key: Key0,                 mods: Super,         action: ResetFontSize    }
  - { key: Equals,               mods: Super,         action: IncreaseFontSize }
  - { key: Minus,                mods: Super,         action: DecreaseFontSize }

  - { key: C,                    mods: Super,         action: Copy             }
  - { key: V,                    mods: Super,         action: Paste            }
  - { key: Y,         mode: ~Vi, mods: Super,         action: ToggleViMode     }
  - { key: P,                    mods: Super,         action: Paste            }

  # Distinguish between problematic keys (such as C-<key> and C-S-<key>) via
  # manual `CSI u` support. See https://iterm2.com/documentation-csiu.html for a
  # background around `CSI u` aka `libtickit`, and
  # https://github.com/alacritty/alacritty/issues/3101 for the upstream issue to
  # enable native `CSI u` support in Alacritty.
  #
  # The list
  # here is drawn from
  # https://github.com/alexherbo2/alacritty-extended-keys/blob/bc08749ae8fd9f8e00d0c93f96d5c67c244c6480/keys.yml#L16.

  # M-{a-z} -------------------------------------------------------------------

  # We cannot use `CSI u` mode bindings for plain M-{a-z} combinations because
  # then we break legacy programs (e.g., Zsh). The same thing goes for M-{A-Z},
  # C-{a-z}, and C-M-{a-z} combinations. By default these keys are already
  # "bound" this way in Alacritty, but we list them here for sake of
  # completeness.

  - { key: A, mods: Alt, chars: "\x1ba" }
  - { key: B, mods: Alt, chars: "\x1bb" }
  - { key: C, mods: Alt, chars: "\x1bc" }
  - { key: D, mods: Alt, chars: "\x1bd" }
  - { key: E, mods: Alt, chars: "\x1be" }
  - { key: F, mods: Alt, chars: "\x1bf" }
  - { key: G, mods: Alt, chars: "\x1bg" }
  - { key: H, mods: Alt, chars: "\x1bh" }
  - { key: I, mods: Alt, chars: "\x1bi" }
  - { key: J, mods: Alt, chars: "\x1bj" }
  - { key: K, mods: Alt, chars: "\x1bk" }
  - { key: L, mods: Alt, chars: "\x1bl" }
  - { key: M, mods: Alt, chars: "\x1bm" }
  - { key: N, mods: Alt, chars: "\x1bn" }
  - { key: O, mods: Alt, chars: "\x1bo" }
  - { key: P, mods: Alt, chars: "\x1bp" }
  - { key: Q, mods: Alt, chars: "\x1bq" }
  - { key: R, mods: Alt, chars: "\x1br" }
  - { key: S, mods: Alt, chars: "\x1bs" }
  - { key: T, mods: Alt, chars: "\x1bt" }
  - { key: U, mods: Alt, chars: "\x1bu" }
  - { key: V, mods: Alt, chars: "\x1bv" }
  - { key: W, mods: Alt, chars: "\x1bw" }
  - { key: X, mods: Alt, chars: "\x1bx" }
  - { key: Y, mods: Alt, chars: "\x1by" }
  - { key: Z, mods: Alt, chars: "\x1bz" }

  # M-{A-Z} -------------------------------------------------------------------

  - { key: A, mods: Alt|Shift, chars: "\x1bA" }
  - { key: B, mods: Alt|Shift, chars: "\x1bB" }
  - { key: C, mods: Alt|Shift, chars: "\x1bC" }
  - { key: D, mods: Alt|Shift, chars: "\x1bD" }
  - { key: E, mods: Alt|Shift, chars: "\x1bE" }
  - { key: F, mods: Alt|Shift, chars: "\x1bF" }
  - { key: G, mods: Alt|Shift, chars: "\x1bG" }
  - { key: H, mods: Alt|Shift, chars: "\x1bH" }
  - { key: I, mods: Alt|Shift, chars: "\x1bI" }
  - { key: J, mods: Alt|Shift, chars: "\x1bJ" }
  - { key: K, mods: Alt|Shift, chars: "\x1bK" }
  - { key: L, mods: Alt|Shift, chars: "\x1bL" }
  - { key: M, mods: Alt|Shift, chars: "\x1bM" }
  - { key: N, mods: Alt|Shift, chars: "\x1bN" }
  - { key: O, mods: Alt|Shift, chars: "\x1bO" }
  - { key: P, mods: Alt|Shift, chars: "\x1bP" }
  - { key: Q, mods: Alt|Shift, chars: "\x1bQ" }
  - { key: R, mods: Alt|Shift, chars: "\x1bR" }
  - { key: S, mods: Alt|Shift, chars: "\x1bS" }
  - { key: T, mods: Alt|Shift, chars: "\x1bT" }
  - { key: U, mods: Alt|Shift, chars: "\x1bU" }
  - { key: V, mods: Alt|Shift, chars: "\x1bV" }
  - { key: W, mods: Alt|Shift, chars: "\x1bW" }
  - { key: X, mods: Alt|Shift, chars: "\x1bX" }
  - { key: Y, mods: Alt|Shift, chars: "\x1bY" }
  - { key: Z, mods: Alt|Shift, chars: "\x1bZ" }

  # C-{a-z} -------------------------------------------------------------------

  - { key: A, mods: Control, chars: "\x01" }
  - { key: B, mods: Control, chars: "\x02" }
  - { key: C, mods: Control, chars: "\x03" }
  - { key: D, mods: Control, chars: "\x04" }
  - { key: E, mods: Control, chars: "\x05" }
  - { key: F, mods: Control, chars: "\x06" }
  - { key: G, mods: Control, chars: "\x07" }
  - { key: H, mods: Control, chars: "\x08" }
  - { key: I, mods: Control, chars: "\x1b[24~\x09" }
  - { key: J, mods: Control, chars: "\x0a" }
  - { key: K, mods: Control, chars: "\x0b" }
  - { key: L, mods: Control, chars: "\x0c" }
  - { key: M, mods: Control, chars: "\x1b[24~\x0d" }
  - { key: N, mods: Control, chars: "\x0e" }
  - { key: O, mods: Control, chars: "\x0f" }
  - { key: P, mods: Control, chars: "\x10" }
  - { key: Q, mods: Control, chars: "\x11" }
  - { key: R, mods: Control, chars: "\x12" }
  - { key: S, mods: Control, chars: "\x13" }
  - { key: T, mods: Control, chars: "\x14" }
  - { key: U, mods: Control, chars: "\x15" }
  - { key: V, mods: Control, chars: "\x16" }
  - { key: W, mods: Control, chars: "\x17" }
  - { key: X, mods: Control, chars: "\x18" }
  - { key: Y, mods: Control, chars: "\x19" }
  - { key: Z, mods: Control, chars: "\x1a" }

  # C-S-{a-z} -----------------------------------------------------------------

  - { key: A, mods: Control|Shift, chars: "\x1b[97;6u" }
  - { key: B, mods: Control|Shift, chars: "\x1b[98;6u" }
  - { key: C, mods: Control|Shift, chars: "\x1b[99;6u" }
  - { key: D, mods: Control|Shift, chars: "\x1b[100;6u" }
  - { key: E, mods: Control|Shift, chars: "\x1b[101;6u" }
  - { key: F, mods: Control|Shift, chars: "\x1b[102;6u" }
  - { key: G, mods: Control|Shift, chars: "\x1b[103;6u" }
  - { key: H, mods: Control|Shift, chars: "\x1b[104;6u" }
  - { key: I, mods: Control|Shift, chars: "\x1b[105;6u" }
  - { key: J, mods: Control|Shift, chars: "\x1b[106;6u" }
  - { key: K, mods: Control|Shift, chars: "\x1b[107;6u" }
  - { key: L, mods: Control|Shift, chars: "\x1b[108;6u" }
  - { key: M, mods: Control|Shift, chars: "\x1b[109;6u" }
  - { key: N, mods: Control|Shift, chars: "\x1b[110;6u" }
  - { key: O, mods: Control|Shift, chars: "\x1b[111;6u" }
  - { key: P, mods: Control|Shift, chars: "\x1b[112;6u" }
  - { key: Q, mods: Control|Shift, chars: "\x1b[113;6u" }
  - { key: R, mods: Control|Shift, chars: "\x1b[114;6u" }
  - { key: S, mods: Control|Shift, chars: "\x1b[115;6u" }
  - { key: T, mods: Control|Shift, chars: "\x1b[116;6u" }
  - { key: U, mods: Control|Shift, chars: "\x1b[117;6u" }
  - { key: V, mods: Control|Shift, chars: "\x1b[118;6u" }
  - { key: W, mods: Control|Shift, chars: "\x1b[119;6u" }
  - { key: X, mods: Control|Shift, chars: "\x1b[120;6u" }
  - { key: Y, mods: Control|Shift, chars: "\x1b[121;6u" }
  - { key: Z, mods: Control|Shift, chars: "\x1b[122;6u" }

  # C-M-{a-z} -----------------------------------------------------------------

  # Alt is interpreted as a leading ESC, and the Control modifier shifts the
  # ASCII codepoint by -64. This is why, e.g., 'A' (ASCII codepoint 65) becomes
  # codepoint 1.

  - { key: A, mods: Control|Alt, chars: "\x1b\x01" }
  - { key: B, mods: Control|Alt, chars: "\x1b\x02" }
  - { key: C, mods: Control|Alt, chars: "\x1b\x03" }
  - { key: D, mods: Control|Alt, chars: "\x1b\x04" }
  - { key: E, mods: Control|Alt, chars: "\x1b\x05" }
  - { key: F, mods: Control|Alt, chars: "\x1b\x06" }
  - { key: G, mods: Control|Alt, chars: "\x1b\x07" }
  - { key: H, mods: Control|Alt, chars: "\x1b\x08" }
  - { key: I, mods: Control|Alt, chars: "\x1b\x09" }
  - { key: J, mods: Control|Alt, chars: "\x1b\x0a" }
  - { key: K, mods: Control|Alt, chars: "\x1b\x0b" }
  - { key: L, mods: Control|Alt, chars: "\x1b\x0c" }
  - { key: M, mods: Control|Alt, chars: "\x1b\x0d" }
  - { key: N, mods: Control|Alt, chars: "\x1b\x0e" }
  - { key: O, mods: Control|Alt, chars: "\x1b\x0f" }
  - { key: P, mods: Control|Alt, chars: "\x1b\x10" }
  - { key: Q, mods: Control|Alt, chars: "\x1b\x11" }
  - { key: R, mods: Control|Alt, chars: "\x1b\x12" }
  - { key: S, mods: Control|Alt, chars: "\x1b\x13" }
  - { key: T, mods: Control|Alt, chars: "\x1b\x14" }
  - { key: U, mods: Control|Alt, chars: "\x1b\x15" }
  - { key: V, mods: Control|Alt, chars: "\x1b\x16" }
  - { key: W, mods: Control|Alt, chars: "\x1b\x17" }
  - { key: X, mods: Control|Alt, chars: "\x1b\x18" }
  - { key: Y, mods: Control|Alt, chars: "\x1b\x19" }
  - { key: Z, mods: Control|Alt, chars: "\x1b\x1a" }

  # C-M-S-{a-z} ---------------------------------------------------------------

  # Note that as a convention we reserve C-M-S- (as well as C-M-) to tmux
  # keybindings. So these bindings rarely get used by other CLI programs that we
  # use (because we don't like having the same bindings do different things
  # based on whether we're running inside tmux or not).

  - { key: A, mods: Control|Alt|Shift, chars: "\x1b[24~\x1b[97;8u" }<commit_msg>alacritty: fix C-M-i and C-M-m bindings<commit_after># Run this when we open this buffer, so that we don't format away the nice
# alignments for each keybinding.
#
#   (format-all-mode -1)

key_bindings:
  # Bindings for Alacritty itself ---------------------------------------------

  # When exiting Vi mode, scroll to the very bottom first to restore
  # pre-Vi-mode context.
  - { key: Q,         mode:  Vi,                      action: ScrollToBottom   }
  - { key: Q,         mode:  Vi,                      action: ToggleViMode     }

  # Quick navigation. This is like 10j or 10k in Vim's normal mode, but with one
  # keystroke.
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Back,      mode:  Vi,                      action: Up               }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }
  - { key: Space,     mode:  Vi,                      action: Down             }

  - { key: Key0,                 mods: Super,         action: ResetFontSize    }
  - { key: Equals,               mods: Super,         action: IncreaseFontSize }
  - { key: Minus,                mods: Super,         action: DecreaseFontSize }

  - { key: C,                    mods: Super,         action: Copy             }
  - { key: V,                    mods: Super,         action: Paste            }
  - { key: Y,         mode: ~Vi, mods: Super,         action: ToggleViMode     }
  - { key: P,                    mods: Super,         action: Paste            }

  # Distinguish between problematic keys (such as C-<key> and C-S-<key>) via
  # manual `CSI u` support. See https://iterm2.com/documentation-csiu.html for a
  # background around `CSI u` aka `libtickit`, and
  # https://github.com/alacritty/alacritty/issues/3101 for the upstream issue to
  # enable native `CSI u` support in Alacritty.
  #
  # The list
  # here is drawn from
  # https://github.com/alexherbo2/alacritty-extended-keys/blob/bc08749ae8fd9f8e00d0c93f96d5c67c244c6480/keys.yml#L16.

  # M-{a-z} -------------------------------------------------------------------

  # We cannot use `CSI u` mode bindings for plain M-{a-z} combinations because
  # then we break legacy programs (e.g., Zsh). The same thing goes for M-{A-Z},
  # C-{a-z}, and C-M-{a-z} combinations. By default these keys are already
  # "bound" this way in Alacritty, but we list them here for sake of
  # completeness.

  - { key: A, mods: Alt, chars: "\x1ba" }
  - { key: B, mods: Alt, chars: "\x1bb" }
  - { key: C, mods: Alt, chars: "\x1bc" }
  - { key: D, mods: Alt, chars: "\x1bd" }
  - { key: E, mods: Alt, chars: "\x1be" }
  - { key: F, mods: Alt, chars: "\x1bf" }
  - { key: G, mods: Alt, chars: "\x1bg" }
  - { key: H, mods: Alt, chars: "\x1bh" }
  - { key: I, mods: Alt, chars: "\x1bi" }
  - { key: J, mods: Alt, chars: "\x1bj" }
  - { key: K, mods: Alt, chars: "\x1bk" }
  - { key: L, mods: Alt, chars: "\x1bl" }
  - { key: M, mods: Alt, chars: "\x1bm" }
  - { key: N, mods: Alt, chars: "\x1bn" }
  - { key: O, mods: Alt, chars: "\x1bo" }
  - { key: P, mods: Alt, chars: "\x1bp" }
  - { key: Q, mods: Alt, chars: "\x1bq" }
  - { key: R, mods: Alt, chars: "\x1br" }
  - { key: S, mods: Alt, chars: "\x1bs" }
  - { key: T, mods: Alt, chars: "\x1bt" }
  - { key: U, mods: Alt, chars: "\x1bu" }
  - { key: V, mods: Alt, chars: "\x1bv" }
  - { key: W, mods: Alt, chars: "\x1bw" }
  - { key: X, mods: Alt, chars: "\x1bx" }
  - { key: Y, mods: Alt, chars: "\x1by" }
  - { key: Z, mods: Alt, chars: "\x1bz" }

  # M-{A-Z} -------------------------------------------------------------------

  - { key: A, mods: Alt|Shift, chars: "\x1bA" }
  - { key: B, mods: Alt|Shift, chars: "\x1bB" }
  - { key: C, mods: Alt|Shift, chars: "\x1bC" }
  - { key: D, mods: Alt|Shift, chars: "\x1bD" }
  - { key: E, mods: Alt|Shift, chars: "\x1bE" }
  - { key: F, mods: Alt|Shift, chars: "\x1bF" }
  - { key: G, mods: Alt|Shift, chars: "\x1bG" }
  - { key: H, mods: Alt|Shift, chars: "\x1bH" }
  - { key: I, mods: Alt|Shift, chars: "\x1bI" }
  - { key: J, mods: Alt|Shift, chars: "\x1bJ" }
  - { key: K, mods: Alt|Shift, chars: "\x1bK" }
  - { key: L, mods: Alt|Shift, chars: "\x1bL" }
  - { key: M, mods: Alt|Shift, chars: "\x1bM" }
  - { key: N, mods: Alt|Shift, chars: "\x1bN" }
  - { key: O, mods: Alt|Shift, chars: "\x1bO" }
  - { key: P, mods: Alt|Shift, chars: "\x1bP" }
  - { key: Q, mods: Alt|Shift, chars: "\x1bQ" }
  - { key: R, mods: Alt|Shift, chars: "\x1bR" }
  - { key: S, mods: Alt|Shift, chars: "\x1bS" }
  - { key: T, mods: Alt|Shift, chars: "\x1bT" }
  - { key: U, mods: Alt|Shift, chars: "\x1bU" }
  - { key: V, mods: Alt|Shift, chars: "\x1bV" }
  - { key: W, mods: Alt|Shift, chars: "\x1bW" }
  - { key: X, mods: Alt|Shift, chars: "\x1bX" }
  - { key: Y, mods: Alt|Shift, chars: "\x1bY" }
  - { key: Z, mods: Alt|Shift, chars: "\x1bZ" }

  # C-{a-z} -------------------------------------------------------------------

  - { key: A, mods: Control, chars: "\x01" }
  - { key: B, mods: Control, chars: "\x02" }
  - { key: C, mods: Control, chars: "\x03" }
  - { key: D, mods: Control, chars: "\x04" }
  - { key: E, mods: Control, chars: "\x05" }
  - { key: F, mods: Control, chars: "\x06" }
  - { key: G, mods: Control, chars: "\x07" }
  - { key: H, mods: Control, chars: "\x08" }
  - { key: I, mods: Control, chars: "\x1b[24~\x09" }
  - { key: J, mods: Control, chars: "\x0a" }
  - { key: K, mods: Control, chars: "\x0b" }
  - { key: L, mods: Control, chars: "\x0c" }
  - { key: M, mods: Control, chars: "\x1b[24~\x0d" }
  - { key: N, mods: Control, chars: "\x0e" }
  - { key: O, mods: Control, chars: "\x0f" }
  - { key: P, mods: Control, chars: "\x10" }
  - { key: Q, mods: Control, chars: "\x11" }
  - { key: R, mods: Control, chars: "\x12" }
  - { key: S, mods: Control, chars: "\x13" }
  - { key: T, mods: Control, chars: "\x14" }
  - { key: U, mods: Control, chars: "\x15" }
  - { key: V, mods: Control, chars: "\x16" }
  - { key: W, mods: Control, chars: "\x17" }
  - { key: X, mods: Control, chars: "\x18" }
  - { key: Y, mods: Control, chars: "\x19" }
  - { key: Z, mods: Control, chars: "\x1a" }

  # C-S-{a-z} -----------------------------------------------------------------

  - { key: A, mods: Control|Shift, chars: "\x1b[97;6u" }
  - { key: B, mods: Control|Shift, chars: "\x1b[98;6u" }
  - { key: C, mods: Control|Shift, chars: "\x1b[99;6u" }
  - { key: D, mods: Control|Shift, chars: "\x1b[100;6u" }
  - { key: E, mods: Control|Shift, chars: "\x1b[101;6u" }
  - { key: F, mods: Control|Shift, chars: "\x1b[102;6u" }
  - { key: G, mods: Control|Shift, chars: "\x1b[103;6u" }
  - { key: H, mods: Control|Shift, chars: "\x1b[104;6u" }
  - { key: I, mods: Control|Shift, chars: "\x1b[105;6u" }
  - { key: J, mods: Control|Shift, chars: "\x1b[106;6u" }
  - { key: K, mods: Control|Shift, chars: "\x1b[107;6u" }
  - { key: L, mods: Control|Shift, chars: "\x1b[108;6u" }
  - { key: M, mods: Control|Shift, chars: "\x1b[109;6u" }
  - { key: N, mods: Control|Shift, chars: "\x1b[110;6u" }
  - { key: O, mods: Control|Shift, chars: "\x1b[111;6u" }
  - { key: P, mods: Control|Shift, chars: "\x1b[112;6u" }
  - { key: Q, mods: Control|Shift, chars: "\x1b[113;6u" }
  - { key: R, mods: Control|Shift, chars: "\x1b[114;6u" }
  - { key: S, mods: Control|Shift, chars: "\x1b[115;6u" }
  - { key: T, mods: Control|Shift, chars: "\x1b[116;6u" }
  - { key: U, mods: Control|Shift, chars: "\x1b[117;6u" }
  - { key: V, mods: Control|Shift, chars: "\x1b[118;6u" }
  - { key: W, mods: Control|Shift, chars: "\x1b[119;6u" }
  - { key: X, mods: Control|Shift, chars: "\x1b[120;6u" }
  - { key: Y, mods: Control|Shift, chars: "\x1b[121;6u" }
  - { key: Z, mods: Control|Shift, chars: "\x1b[122;6u" }

  # C-M-{a-z} -----------------------------------------------------------------

  # Alt is interpreted as a leading ESC, and the Control modifier shifts the
  # ASCII codepoint by -64. This is why, e.g., 'A' (ASCII codepoint 65) becomes
  # codepoint 1.

  - { key: A, mods: Control|Alt, chars: "\x1b\x01" }
  - { key: B, mods: Control|Alt, chars: "\x1b\x02" }
  - { key: C, mods: Control|Alt, chars: "\x1b\x03" }
  - { key: D, mods: Control|Alt, chars: "\x1b\x04" }
  - { key: E, mods: Control|Alt, chars: "\x1b\x05" }
  - { key: F, mods: Control|Alt, chars: "\x1b\x06" }
  - { key: G, mods: Control|Alt, chars: "\x1b\x07" }
  - { key: H, mods: Control|Alt, chars: "\x1b\x08" }
  - { key: I, mods: Control|Alt, chars: "\x1b[24~\x1b\x09" }
  - { key: J, mods: Control|Alt, chars: "\x1b\x0a" }
  - { key: K, mods: Control|Alt, chars: "\x1b\x0b" }
  - { key: L, mods: Control|Alt, chars: "\x1b\x0c" }
  - { key: M, mods: Control|Alt, chars: "\x1b[24~\x1b\x0d" }
  - { key: N, mods: Control|Alt, chars: "\x1b\x0e" }
  - { key: O, mods: Control|Alt, chars: "\x1b\x0f" }
  - { key: P, mods: Control|Alt, chars: "\x1b\x10" }
  - { key: Q, mods: Control|Alt, chars: "\x1b\x11" }
  - { key: R, mods: Control|Alt, chars: "\x1b\x12" }
  - { key: S, mods: Control|Alt, chars: "\x1b\x13" }
  - { key: T, mods: Control|Alt, chars: "\x1b\x14" }
  - { key: U, mods: Control|Alt, chars: "\x1b\x15" }
  - { key: V, mods: Control|Alt, chars: "\x1b\x16" }
  - { key: W, mods: Control|Alt, chars: "\x1b\x17" }
  - { key: X, mods: Control|Alt, chars: "\x1b\x18" }
  - { key: Y, mods: Control|Alt, chars: "\x1b\x19" }
  - { key: Z, mods: Control|Alt, chars: "\x1b\x1a" }

  # C-M-S-{a-z} ---------------------------------------------------------------

  # Note that as a convention we reserve C-M-S- (as well as C-M-) to tmux
  # keybindings. So these bindings rarely get used by other CLI programs that we
  # use (because we don't like having the same bindings do different things
  # based on whether we're running inside tmux or not).

  - { key: A, mods: Control|Alt|Shift, chars: "\x1b[24~\x1b[97;8u" }
{'fraction_non_alphanumeric': 0.22392305608236251, 'fraction_numerical': 0.032059965682290255, 'mean_word_length': 1.7464037698412698, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7296380', 'n_tokens_mistral': 9447, 'n_tokens_neox': 8777, 'n_words': 2397}