Skip to content

Alacritty

INFO

版本 0.12.3

Alacritty 是一个开源的 GPU 加速的终端仿真器,设计目标是追求速度和简单性,旨在提供一个快速、轻量级、易于配置和高度可定制的终端仿真器,适用于对终端性能和外观有较高要求的用户。

  1. GPU 加速:Alacritty 使用 GPU 加速来实现快速的绘图和渲染,这意味着更高的性能和更低的资源占用。
  2. 跨平台:Alacritty 可在多个操作系统上运行,包括 Linux、macOS 和 Windows。
  3. 简单配置:Alacritty 的配置文件采用 YAML 或 TOML 格式,用户可以方便地自定义外观和行为。
  4. 轻量级:Alacritty 的设计着眼于简化,它不依赖于其他库或引擎,从而保持了轻量级和高效性。
  5. 快速启动:由于采用 GPU 加速和轻量级设计,Alacritty 具有快速启动的特性,即使在大型文本文件或高负载时也能保持响应迅速。
  6. 支持现代特性:Alacritty 支持许多现代终端特性,如图像显示、图标字体、窗口缩放等。
  7. 鼠标支持:提供鼠标支持,包括鼠标选择、滚轮事件等。
  8. 跨平台字体渲染:支持跨平台字体渲染,可以使用系统字体或自定义字体。
  9. 轻松复制粘贴:支持复制和粘贴,通过快捷键或鼠标操作。
  10. Vi 模式:内置 Vi 模式,使得 Vim 用户能够在终端中使用熟悉的键盘快捷键。
  11. 自动滚动:提供自动滚动,使得用户可以方便地查看终端历史。
  12. 焦点遗传:支持焦点遗传,可以在多个 Alacritty 实例之间共享焦点。
  13. 高度可定制:用户可以根据自己的需求自定义颜色方案、字体、键盘快捷键等。

Github:https://github.com/alacritty/alacritty

安装

powershell
scoop install alacritty

配置

toml
import:
  # https://github.com/projekt0n/github-theme-contrib
  -  D:\Scoop\persist\alacritty\github_dark_high_contrast.yml

window:
  dimensions:
    columns: 120
    lines: 60
  padding:
    x: 12
    y: 16
  dynamic_padding: false
  decorations: full
  opacity: 1.0
  startup_mode: Windowed
  title: Alacritty
  dynamic_title: true

scrolling:
  history: 2000
  multiplier: 20
  auto_scroll: true

font:
  normal:
    family: 'Sarasa Mono SC Nerd Font'
    style: Regular
  bold:
    family: 'Sarasa Mono SC Nerd Font'
    style: Bold
  italic:
    family: 'Sarasa Mono SC Nerd Font'
    style: Italic
  bold_italic:
    family: 'Sarasa Mono SC Nerd Font'
    style: Bold Italic

  size: 16.0
draw_bold_text_with_bright_colors: true

selection:
  semantic_escape_chars: ',│`|:"'' ()[]{}<>'
  save_to_clipboard: true

cursor:
  style:
    shape: Beam
    blinking: On

live_config_reload: true

shell:
 program: C:\Program Files\PowerShell\7\pwsh.exe

key_bindings:
  - { key: R, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
  - { key: R, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
  - { key: W, mods: Command, action: Hide }
  - { key: W, mods: Command|Shift, action: Quit }
  - { key: N, mods: Command, action: SpawnNewInstance }
  - { key: T, mods: Command, action: CreateNewWindow }
  - { key: Left, mods: Alt, chars: "\x1bb" } # Skip word left
  - { key: Right, mods: Alt, chars: "\x1bf" } # Skip word right
  - { key: Left, mods: Command, chars: "\x1bOH", mode: AppCursor } # Home
  - { key: Right, mods: Command, chars: "\x1bOF", mode: AppCursor } # End
  - { key: Back, mods: Command, chars: "\x15" } # Delete line
  - { key: Back, mods: Alt, chars: "\x1b\x7f" } # Delete word

官方配置文件

英文

toml
# Configuration for Alacritty, the GPU enhanced terminal emulator.

# Import additional configuration files
#
# Imports are loaded in order, skipping all missing files, with the importing
# file being loaded last. If a field is already present in a previous import, it
# will be replaced.
#
# All imports must either be absolute paths starting with `/`, or paths relative
# to the user's home directory starting with `~/`.
#import:
#  - /path/to/alacritty.yml

env

toml
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
  # TERM variable
  #
  # This value is used to set the `$TERM` environment variable for
  # each instance of Alacritty. If it is not present, alacritty will
  # check the local terminfo database and use `alacritty` if it is
  # available, otherwise `xterm-256color` is used.
  #TERM: alacritty

window

toml
#window:
  # Window dimensions (changes require restart)
  #
  # Number of lines/columns (not pixels) in the terminal. Both lines and columns
  # must be non-zero for this to take effect. The number of columns must be at
  # least `2`, while using a value of `0` for columns and lines will fall back
  # to the window manager's recommended size
  #dimensions:
  #  columns: 0
  #  lines: 0

  # Window position (changes require restart)
  #
  # Specified in number of pixels.
  # If the position is not set, the window manager will handle the placement.
  #position:
  #  x: 0
  #  y: 0

  # Window padding (changes require restart)
  #
  # Blank space added around the window in pixels. This padding is scaled
  # by DPI and the specified value is always added at both opposing sides.
  #padding:
  #  x: 0
  #  y: 0

  # Spread additional padding evenly around the terminal content.
  #dynamic_padding: false

  # Window decorations
  #
  # Values for `decorations`:
  #     - full: Borders and title bar
  #     - none: Neither borders nor title bar
  #
  # Values for `decorations` (macOS only):
  #     - transparent: Title bar, transparent background and title bar buttons
  #     - buttonless: Title bar, transparent background and no title bar buttons
  #decorations: full

  # Background opacity
  #
  # Window opacity as a floating point number from `0.0` to `1.0`.
  # The value `0.0` is completely transparent and `1.0` is opaque.
  #opacity: 1.0

  # Startup Mode (changes require restart)
  #
  # Values for `startup_mode`:
  #   - Windowed
  #   - Maximized
  #   - Fullscreen
  #
  # Values for `startup_mode` (macOS only):
  #   - SimpleFullscreen
  #startup_mode: Windowed

  # Window title
  #title: Alacritty

  # Allow terminal applications to change Alacritty's window title.
  #dynamic_title: true

  # Window class (Linux/BSD only):
  #class:
    # Application instance name
    #instance: Alacritty
    # General application class
    #general: Alacritty

  # Decorations theme variant
  #
  # Override the variant of the System theme/GTK theme/Wayland client side
  # decorations. Commonly supported values are `Dark`, `Light`, and `None` for
  # auto pick-up. Set this to `None` to use the default theme variant.
  #decorations_theme_variant: None

  # Resize increments
  #
  # Prefer resizing window by discrete steps equal to cell dimensions.
  #resize_increments: false

  # Make `Option` key behave as `Alt` (macOS only):
  #   - OnlyLeft
  #   - OnlyRight
  #   - Both
  #   - None (default)
  #option_as_alt: None

scrolling

toml
#scrolling:
  # Maximum number of lines in the scrollback buffer.
  # Specifying '0' will disable scrolling.
  #history: 10000

  # Scrolling distance multiplier.
  #multiplier: 3

font

toml
# Font configuration
#font:
  # Normal (roman) font face
  #normal:
    # Font family
    #
    # Default:
    #   - (macOS) Menlo
    #   - (Linux/BSD) monospace
    #   - (Windows) Consolas
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Regular

  # Bold font face
  #bold:
    # Font family
    #
    # If the bold family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Bold

  # Italic font face
  #italic:
    # Font family
    #
    # If the italic family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Italic

  # Bold italic font face
  #bold_italic:
    # Font family
    #
    # If the bold italic family is not specified, it will fall back to the
    # value specified for the normal font.
    #family: monospace

    # The `style` can be specified to pick a specific face.
    #style: Bold Italic

  # Point size
  #size: 11.0

  # Offset is the extra space around each character. `offset.y` can be thought
  # of as modifying the line spacing, and `offset.x` as modifying the letter
  # spacing.
  #offset:
  #  x: 0
  #  y: 0

  # Glyph offset determines the locations of the glyphs within their cells with
  # the default being at the bottom. Increasing `x` moves the glyph to the
  # right, increasing `y` moves the glyph upward.
  #glyph_offset:
  #  x: 0
  #  y: 0

  # Use built-in font for box drawing characters.
  #
  # If `true`, Alacritty will use a custom built-in font for box drawing
  # characters (Unicode points 2500 - 259f).
  #
  #builtin_box_drawing: true

# If `true`, bold text is drawn using the bright color variants.
#draw_bold_text_with_bright_colors: false

colors

toml
# Colors (Tomorrow Night)
#colors:
  # Default colors
  #primary:
  #  background: '#1d1f21'
  #  foreground: '#c5c8c6'

    # Bright and dim foreground colors
    #
    # The dimmed foreground color is calculated automatically if it is not
    # present. If the bright foreground color is not set, or
    # `draw_bold_text_with_bright_colors` is `false`, the normal foreground
    # color will be used.
    #dim_foreground: '#828482'
    #bright_foreground: '#eaeaea'

  # Cursor colors
  #
  # Colors which should be used to draw the terminal cursor.
  #
  # Allowed values are CellForeground/CellBackground, which reference the
  # affected cell, or hexadecimal colors like #ff00ff.
  #cursor:
  #  text: CellBackground
  #  cursor: CellForeground

  # Vi mode cursor colors
  #
  # Colors for the cursor when the vi mode is active.
  #
  # Allowed values are CellForeground/CellBackground, which reference the
  # affected cell, or hexadecimal colors like #ff00ff.
  #vi_mode_cursor:
  #  text: CellBackground
  #  cursor: CellForeground

  # Search colors
  #
  # Colors used for the search bar and match highlighting.
  #search:
    # Allowed values are CellForeground/CellBackground, which reference the
    # affected cell, or hexadecimal colors like #ff00ff.
    #matches:
    #  foreground: '#000000'
    #  background: '#ffffff'
    #focused_match:
    #  foreground: '#ffffff'
    #  background: '#000000'

  # Keyboard hints
  #hints:
    # First character in the hint label
    #
    # Allowed values are CellForeground/CellBackground, which reference the
    # affected cell, or hexadecimal colors like #ff00ff.
    #start:
    #  foreground: '#1d1f21'
    #  background: '#e9ff5e'

    # All characters after the first one in the hint label
    #
    # Allowed values are CellForeground/CellBackground, which reference the
    # affected cell, or hexadecimal colors like #ff00ff.
    #end:
    #  foreground: '#e9ff5e'
    #  background: '#1d1f21'

  # Line indicator
  #
  # Color used for the indicator displaying the position in history during
  # search and vi mode.
  #
  # By default, these will use the opposing primary color.
  #line_indicator:
  #  foreground: None
  #  background: None

  # Footer bar
  #
  # Color used for the footer bar on the bottom, used by search regex input,
  # hyperlink URI preview, etc.
  #
  #footer_bar:
  #  background: '#c5c8c6'
  #  foreground: '#1d1f21'

  # Selection colors
  #
  # Colors which should be used to draw the selection area.
  #
  # Allowed values are CellForeground/CellBackground, which reference the
  # affected cell, or hexadecimal colors like #ff00ff.
  #selection:
  #  text: CellBackground
  #  background: CellForeground

  # Normal colors
  #normal:
  #  black:   '#1d1f21'
  #  red:     '#cc6666'
  #  green:   '#b5bd68'
  #  yellow:  '#f0c674'
  #  blue:    '#81a2be'
  #  magenta: '#b294bb'
  #  cyan:    '#8abeb7'
  #  white:   '#c5c8c6'

  # Bright colors
  #bright:
  #  black:   '#666666'
  #  red:     '#d54e53'
  #  green:   '#b9ca4a'
  #  yellow:  '#e7c547'
  #  blue:    '#7aa6da'
  #  magenta: '#c397d8'
  #  cyan:    '#70c0b1'
  #  white:   '#eaeaea'

  # Dim colors
  #
  # If the dim colors are not set, they will be calculated automatically based
  # on the `normal` colors.
  #dim:
  #  black:   '#131415'
  #  red:     '#864343'
  #  green:   '#777c44'
  #  yellow:  '#9e824c'
  #  blue:    '#556a7d'
  #  magenta: '#75617b'
  #  cyan:    '#5b7d78'
  #  white:   '#828482'

  # Indexed Colors
  #
  # The indexed colors include all colors from 16 to 256.
  # When these are not set, they're filled with sensible defaults.
  #
  # Example:
  #   `- { index: 16, color: '#ff00ff' }`
  #
  #indexed_colors: []

  # Transparent cell backgrounds
  #
  # Whether or not `window.opacity` applies to all cell backgrounds or only to
  # the default background. When set to `true` all cells will be transparent
  # regardless of their background color.
  #transparent_background_colors: false

bell

toml
# Bell
#
# The bell is rung every time the BEL control character is received.
#bell:
  # Visual Bell Animation
  #
  # Animation effect for flashing the screen when the visual bell is rung.
  #
  # Values for `animation`:
  #   - Ease
  #   - EaseOut
  #   - EaseOutSine
  #   - EaseOutQuad
  #   - EaseOutCubic
  #   - EaseOutQuart
  #   - EaseOutQuint
  #   - EaseOutExpo
  #   - EaseOutCirc
  #   - Linear
  #animation: EaseOutExpo

  # Duration of the visual bell flash in milliseconds. A `duration` of `0` will
  # disable the visual bell animation.
  #duration: 0

  # Visual bell animation color.
  #color: '#ffffff'

  # Bell Command
  #
  # This program is executed whenever the bell is rung.
  #
  # When set to `command: None`, no command will be executed.
  #
  # Example:
  #   command:
  #     program: notify-send
  #     args: ["Hello, World!"]
  #
  #command: None

selection

toml
#selection:
  # This string contains all characters that are used as separators for
  # "semantic words" in Alacritty.
  #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"

  # When set to `true`, selected text will be copied to the primary clipboard.
  #save_to_clipboard: false

cursor

toml
#cursor:
  # Cursor style
  #style:
    # Cursor shape
    #
    # Values for `shape`:
    #   - ▇ Block
    #   - _ Underline
    #   - | Beam
    #shape: Block

    # Cursor blinking state
    #
    # Values for `blinking`:
    #   - Never: Prevent the cursor from ever blinking
    #   - Off: Disable blinking by default
    #   - On: Enable blinking by default
    #   - Always: Force the cursor to always blink
    #blinking: Off

  # Vi mode cursor style
  #
  # If the vi mode cursor style is `None` or not specified, it will fall back to
  # the style of the active value of the normal cursor.
  #
  # See `cursor.style` for available options.
  #vi_mode_style: None

  # Cursor blinking interval in milliseconds.
  #blink_interval: 750

  # Time after which cursor stops blinking, in seconds.
  #
  # Specifying '0' will disable timeout for blinking.
  #blink_timeout: 5

  # If this is `true`, the cursor will be rendered as a hollow box when the
  # window is not focused.
  #unfocused_hollow: true

  # Thickness of the cursor relative to the cell width as floating point number
  # from `0.0` to `1.0`.
  #thickness: 0.15

live_config_reload

toml
# Live config reload (changes require restart)
#live_config_reload: true

shell

toml
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g.
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
# shell.
#
# Default:
#   - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
#   - (Windows) powershell
#shell:
#  program: /bin/bash
#  args:
#    - --login

# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
#working_directory: None

# Offer IPC using `alacritty msg` (unix only)
#ipc_socket: true

mouse

toml
#mouse:
  # Click settings
  #
  # The `double_click` and `triple_click` settings control the time
  # alacritty should wait for accepting multiple clicks as one double
  # or triple click.
  #double_click: { threshold: 300 }
  #triple_click: { threshold: 300 }

  # If this is `true`, the cursor is temporarily hidden when typing.
  #hide_when_typing: false

# Hints
#
# Terminal hints can be used to find text or hyperlink in the visible part of
# the terminal and pipe it to other applications.
#hints:
  # Keys used for the hint labels.
  #alphabet: "jfkdls;ahgurieowpq"

  # List with all available hints
  #
  # Each hint must have any of `regex` or `hyperlinks` field and either an
  # `action` or a `command` field. The fields `mouse`, `binding` and
  # `post_processing` are optional.
  #
  # The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
  # highlighted.
  #
  # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
  # `mouse.mods` accept the same values as they do in the `key_bindings` section.
  #
  # The `mouse.enabled` field controls if the hint should be underlined while
  # the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
  #
  # If the `post_processing` field is set to `true`, heuristics will be used to
  # shorten the match if there are characters likely not to be part of the hint
  # (e.g. a trailing `.`). This is most useful for URIs and applies only to
  # `regex` matches.
  #
  # Values for `action`:
  #   - Copy
  #       Copy the hint's text to the clipboard.
  #   - Paste
  #       Paste the hint's text to the terminal or search.
  #   - Select
  #       Select the hint's text.
  #   - MoveViModeCursor
  #       Move the vi mode cursor to the beginning of the hint.
  #enabled:
  # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
  #           [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
  #   hyperlinks: true
  #   command: xdg-open
  #   post_processing: true
  #   mouse:
  #     enabled: true
  #     mods: None
  #   binding:
  #     key: U
  #     mods: Control|Shift

# Mouse bindings
#
# Mouse bindings are specified as a list of objects, much like the key
# bindings further below.
#
# To trigger mouse bindings when an application running within Alacritty
# captures the mouse, the `Shift` modifier is automatically added as a
# requirement.
#
# Each mouse binding will specify a:
#
# - `mouse`:
#
#   - Middle
#   - Left
#   - Right
#   - Numeric identifier such as `5`
#
# - `action` (see key bindings for actions not exclusive to mouse mode)
#
# - Mouse exclusive actions:
#
#   - ExpandSelection
#       Expand the selection to the current mouse cursor location.
#
# And optionally:
#
# - `mods` (see key bindings)
#mouse_bindings:
#  - { mouse: Right,                 action: ExpandSelection }
#  - { mouse: Right,  mods: Control, action: ExpandSelection }
#  - { mouse: Middle, mode: ~Vi,     action: PasteSelection  }

key bindings

toml
# Key bindings
#
# Key bindings are specified as a list of objects. For example, this is the
# default paste binding:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Each key binding will specify a:
#
# - `key`: Identifier of the key pressed
#
#    - A-Z
#    - F1-F24
#    - Key0-Key9
#
#    A full list with available key codes can be found here:
#    https://docs.rs/winit/*/winit/event/enum.VirtualKeyCode.html#variants
#
#    Instead of using the name of the keys, the `key` field also supports using
#    the scancode of the desired key. Scancodes have to be specified as a
#    decimal number. This command will allow you to display the hex scancodes
#    for certain keys:
#
#       `showkey --scancodes`.
#
# Then exactly one of:
#
# - `chars`: Send a byte sequence to the running application
#
#    The `chars` field writes the specified string to the terminal. This makes
#    it possible to pass escape sequences. To find escape codes for bindings
#    like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
#    of tmux. Note that applications use terminfo to map escape sequences back
#    to keys. It is therefore required to update the terminfo when changing an
#    escape sequence.
#
# - `action`: Execute a predefined action
#
#   - ToggleViMode
#   - SearchForward
#       Start searching toward the right of the search origin.
#   - SearchBackward
#       Start searching toward the left of the search origin.
#   - Copy
#   - Paste
#   - IncreaseFontSize
#   - DecreaseFontSize
#   - ResetFontSize
#   - ScrollPageUp
#   - ScrollPageDown
#   - ScrollHalfPageUp
#   - ScrollHalfPageDown
#   - ScrollLineUp
#   - ScrollLineDown
#   - ScrollToTop
#   - ScrollToBottom
#   - ClearHistory
#       Remove the terminal's scrollback history.
#   - Hide
#       Hide the Alacritty window.
#   - Minimize
#       Minimize the Alacritty window.
#   - Quit
#       Quit Alacritty.
#   - ToggleFullscreen
#   - ToggleMaximized
#   - SpawnNewInstance
#       Spawn a new instance of Alacritty.
#   - CreateNewWindow
#       Create a new Alacritty window from the current process.
#   - ClearLogNotice
#       Clear Alacritty's UI warning and error notice.
#   - ClearSelection
#       Remove the active selection.
#   - ReceiveChar
#   - None
#
# - Vi mode exclusive actions:
#
#   - Open
#       Perform the action of the first matching hint under the vi mode cursor
#       with `mouse.enabled` set to `true`.
#   - ToggleNormalSelection
#   - ToggleLineSelection
#   - ToggleBlockSelection
#   - ToggleSemanticSelection
#       Toggle semantic selection based on `selection.semantic_escape_chars`.
#   - CenterAroundViCursor
#       Center view around vi mode cursor
#
# - Vi mode exclusive cursor motion actions:
#
#   - Up
#       One line up.
#   - Down
#       One line down.
#   - Left
#       One character left.
#   - Right
#       One character right.
#   - First
#       First column, or beginning of the line when already at the first column.
#   - Last
#       Last column, or beginning of the line when already at the last column.
#   - FirstOccupied
#       First non-empty cell in this terminal row, or first non-empty cell of
#       the line when already at the first cell of the row.
#   - High
#       Top of the screen.
#   - Middle
#       Center of the screen.
#   - Low
#       Bottom of the screen.
#   - SemanticLeft
#       Start of the previous semantically separated word.
#   - SemanticRight
#       Start of the next semantically separated word.
#   - SemanticLeftEnd
#       End of the previous semantically separated word.
#   - SemanticRightEnd
#       End of the next semantically separated word.
#   - WordLeft
#       Start of the previous whitespace separated word.
#   - WordRight
#       Start of the next whitespace separated word.
#   - WordLeftEnd
#       End of the previous whitespace separated word.
#   - WordRightEnd
#       End of the next whitespace separated word.
#   - Bracket
#       Character matching the bracket at the cursor's location.
#   - SearchNext
#       Beginning of the next match.
#   - SearchPrevious
#       Beginning of the previous match.
#   - SearchStart
#       Start of the match to the left of the vi mode cursor.
#   - SearchEnd
#       End of the match to the right of the vi mode cursor.
#
# - Search mode exclusive actions:
#   - SearchFocusNext
#       Move the focus to the next search match.
#   - SearchFocusPrevious
#       Move the focus to the previous search match.
#   - SearchConfirm
#   - SearchCancel
#   - SearchClear
#       Reset the search regex.
#   - SearchDeleteWord
#       Delete the last word in the search regex.
#   - SearchHistoryPrevious
#       Go to the previous regex in the search history.
#   - SearchHistoryNext
#       Go to the next regex in the search history.
#
# - macOS exclusive actions:
#   - ToggleSimpleFullscreen
#       Enter fullscreen without occupying another space.
#
# - Linux/BSD exclusive actions:
#
#   - CopySelection
#       Copy from the selection buffer.
#   - PasteSelection
#       Paste from the selection buffer.
#
# - `command`: Fork and execute a specified command plus arguments
#
#    The `command` field must be a map containing a `program` string and an
#    `args` array of command line parameter strings. For example:
#       `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# And optionally:
#
# - `mods`: Key modifiers to filter binding actions
#
#    - Command
#    - Control
#    - Option
#    - Super
#    - Shift
#    - Alt
#
#    Multiple `mods` can be combined using `|` like this:
#       `mods: Control|Shift`.
#    Whitespace and capitalization are relevant and must match the example.
#
# - `mode`: Indicate a binding for only specific terminal reported modes
#
#    This is mainly used to send applications the correct escape sequences
#    when in different modes.
#
#    - AppCursor
#    - AppKeypad
#    - Search
#    - Alt
#    - Vi
#
#    A `~` operator can be used before a mode to apply the binding whenever
#    the mode is *not* active, e.g. `~Alt`.
#
# Bindings are always filled by default, but will be replaced when a new
# binding with the same triggers is defined. To unset a default binding, it can
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
# a no-op if you do not wish to receive input characters for that binding.
#
# If the same trigger is assigned to multiple actions, all of them are executed
# in the order they were defined in.
#key_bindings:
  #- { key: Paste,                                       action: Paste          }
  #- { key: Copy,                                        action: Copy           }
  #- { key: L,         mods: Control,                    action: ClearLogNotice }
  #- { key: L,         mods: Control, mode: ~Vi|~Search, chars: "\x0c"          }
  #- { key: PageUp,    mods: Shift,   mode: ~Alt,        action: ScrollPageUp   }
  #- { key: PageDown,  mods: Shift,   mode: ~Alt,        action: ScrollPageDown }
  #- { key: Home,      mods: Shift,   mode: ~Alt,        action: ScrollToTop    }
  #- { key: End,       mods: Shift,   mode: ~Alt,        action: ScrollToBottom }

  # Vi Mode
  #- { key: Space,  mods: Shift|Control, mode: ~Search,    action: ToggleViMode            }
  #- { key: Space,  mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: Escape,                      mode: Vi|~Search, action: ClearSelection          }
  #- { key: I,                           mode: Vi|~Search, action: ToggleViMode            }
  #- { key: I,                           mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: C,      mods: Control,       mode: Vi|~Search, action: ToggleViMode            }
  #- { key: Y,      mods: Control,       mode: Vi|~Search, action: ScrollLineUp            }
  #- { key: E,      mods: Control,       mode: Vi|~Search, action: ScrollLineDown          }
  #- { key: G,                           mode: Vi|~Search, action: ScrollToTop             }
  #- { key: G,      mods: Shift,         mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: B,      mods: Control,       mode: Vi|~Search, action: ScrollPageUp            }
  #- { key: F,      mods: Control,       mode: Vi|~Search, action: ScrollPageDown          }
  #- { key: U,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageUp        }
  #- { key: D,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageDown      }
  #- { key: Y,                           mode: Vi|~Search, action: Copy                    }
  #- { key: Y,                           mode: Vi|~Search, action: ClearSelection          }
  #- { key: Copy,                        mode: Vi|~Search, action: ClearSelection          }
  #- { key: V,                           mode: Vi|~Search, action: ToggleNormalSelection   }
  #- { key: V,      mods: Shift,         mode: Vi|~Search, action: ToggleLineSelection     }
  #- { key: V,      mods: Control,       mode: Vi|~Search, action: ToggleBlockSelection    }
  #- { key: V,      mods: Alt,           mode: Vi|~Search, action: ToggleSemanticSelection }
  #- { key: Return,                      mode: Vi|~Search, action: Open                    }
  #- { key: Z,                           mode: Vi|~Search, action: CenterAroundViCursor    }
  #- { key: K,                           mode: Vi|~Search, action: Up                      }
  #- { key: J,                           mode: Vi|~Search, action: Down                    }
  #- { key: H,                           mode: Vi|~Search, action: Left                    }
  #- { key: L,                           mode: Vi|~Search, action: Right                   }
  #- { key: Up,                          mode: Vi|~Search, action: Up                      }
  #- { key: Down,                        mode: Vi|~Search, action: Down                    }
  #- { key: Left,                        mode: Vi|~Search, action: Left                    }
  #- { key: Right,                       mode: Vi|~Search, action: Right                   }
  #- { key: Key0,                        mode: Vi|~Search, action: First                   }
  #- { key: Key4,   mods: Shift,         mode: Vi|~Search, action: Last                    }
  #- { key: Key6,   mods: Shift,         mode: Vi|~Search, action: FirstOccupied           }
  #- { key: H,      mods: Shift,         mode: Vi|~Search, action: High                    }
  #- { key: M,      mods: Shift,         mode: Vi|~Search, action: Middle                  }
  #- { key: L,      mods: Shift,         mode: Vi|~Search, action: Low                     }
  #- { key: B,                           mode: Vi|~Search, action: SemanticLeft            }
  #- { key: W,                           mode: Vi|~Search, action: SemanticRight           }
  #- { key: E,                           mode: Vi|~Search, action: SemanticRightEnd        }
  #- { key: B,      mods: Shift,         mode: Vi|~Search, action: WordLeft                }
  #- { key: W,      mods: Shift,         mode: Vi|~Search, action: WordRight               }
  #- { key: E,      mods: Shift,         mode: Vi|~Search, action: WordRightEnd            }
  #- { key: Key5,   mods: Shift,         mode: Vi|~Search, action: Bracket                 }
  #- { key: Slash,                       mode: Vi|~Search, action: SearchForward           }
  #- { key: Slash,  mods: Shift,         mode: Vi|~Search, action: SearchBackward          }
  #- { key: N,                           mode: Vi|~Search, action: SearchNext              }
  #- { key: N,      mods: Shift,         mode: Vi|~Search, action: SearchPrevious          }

  # Search Mode
  #- { key: Return,                mode: Search|Vi,  action: SearchConfirm         }
  #- { key: Escape,                mode: Search,     action: SearchCancel          }
  #- { key: C,      mods: Control, mode: Search,     action: SearchCancel          }
  #- { key: U,      mods: Control, mode: Search,     action: SearchClear           }
  #- { key: W,      mods: Control, mode: Search,     action: SearchDeleteWord      }
  #- { key: P,      mods: Control, mode: Search,     action: SearchHistoryPrevious }
  #- { key: N,      mods: Control, mode: Search,     action: SearchHistoryNext     }
  #- { key: Up,                    mode: Search,     action: SearchHistoryPrevious }
  #- { key: Down,                  mode: Search,     action: SearchHistoryNext     }
  #- { key: Return,                mode: Search|~Vi, action: SearchFocusNext       }
  #- { key: Return, mods: Shift,   mode: Search|~Vi, action: SearchFocusPrevious   }

  # (Windows, Linux, and BSD only)
  #- { key: V,              mods: Control|Shift, mode: ~Vi,        action: Paste            }
  #- { key: C,              mods: Control|Shift,                   action: Copy             }
  #- { key: F,              mods: Control|Shift, mode: ~Search,    action: SearchForward    }
  #- { key: B,              mods: Control|Shift, mode: ~Search,    action: SearchBackward   }
  #- { key: C,              mods: Control|Shift, mode: Vi|~Search, action: ClearSelection   }
  #- { key: Insert,         mods: Shift,                           action: PasteSelection   }
  #- { key: Key0,           mods: Control,                         action: ResetFontSize    }
  #- { key: Equals,         mods: Control,                         action: IncreaseFontSize }
  #- { key: Plus,           mods: Control,                         action: IncreaseFontSize }
  #- { key: NumpadAdd,      mods: Control,                         action: IncreaseFontSize }
  #- { key: Minus,          mods: Control,                         action: DecreaseFontSize }
  #- { key: NumpadSubtract, mods: Control,                         action: DecreaseFontSize }

  # (Windows only)
  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }

  # (macOS only)
  #- { key: K,              mods: Command, mode: ~Vi|~Search, chars: "\x0c"                 }
  #- { key: K,              mods: Command, mode: ~Vi|~Search, action: ClearHistory          }
  #- { key: Key0,           mods: Command,                    action: ResetFontSize         }
  #- { key: Equals,         mods: Command,                    action: IncreaseFontSize      }
  #- { key: Plus,           mods: Command,                    action: IncreaseFontSize      }
  #- { key: NumpadAdd,      mods: Command,                    action: IncreaseFontSize      }
  #- { key: Minus,          mods: Command,                    action: DecreaseFontSize      }
  #- { key: NumpadSubtract, mods: Command,                    action: DecreaseFontSize      }
  #- { key: V,              mods: Command,                    action: Paste                 }
  #- { key: C,              mods: Command,                    action: Copy                  }
  #- { key: C,              mods: Command, mode: Vi|~Search,  action: ClearSelection        }
  #- { key: H,              mods: Command,                    action: Hide                  }
  #- { key: H,              mods: Command|Alt,                action: HideOtherApplications }
  #- { key: M,              mods: Command,                    action: Minimize              }
  #- { key: Q,              mods: Command,                    action: Quit                  }
  #- { key: W,              mods: Command,                    action: Quit                  }
  #- { key: N,              mods: Command,                    action: CreateNewWindow       }
  #- { key: F,              mods: Command|Control,            action: ToggleFullscreen      }
  #- { key: F,              mods: Command, mode: ~Search,     action: SearchForward         }
  #- { key: B,              mods: Command, mode: ~Search,     action: SearchBackward        }

debug

toml
#debug:
  # Display the time it takes to redraw each frame.
  #render_timer: false

  # Keep the log file after quitting Alacritty.
  #persistent_logging: false

  # Log level
  #
  # Values for `log_level`:
  #   - Off
  #   - Error
  #   - Warn
  #   - Info
  #   - Debug
  #   - Trace
  #log_level: Warn

  # Renderer override.
  #   - glsl3
  #   - gles2
  #   - gles2_pure
  #renderer: None

  # Print all received window events.
  #print_events: false

  # Highlight window damage information.
  #highlight_damage: false

中文

toml
# Alacritty 配置文档,GPU 增强型终端仿真器。

# 导入额外的配置文件
#
# 导入按顺序加载,跳过所有缺失的文件,导入的文件最后加载。如果在之前的导入中已经存在某个字段,将被替换。
#
# 所有导入必须是以 `/` 开头的绝对路径,或者以 `~/` 开头的相对于用户主目录的路径。
#import:
#  - /path/to/alacritty.yml

环境变量

toml
# 在下面的 `env` 条目中的任何项都将作为环境变量添加。某些条目可能会覆盖由 alacritty 本身设置的变量。
#env:
  # TERM 变量
  #
  # 此值用于为每个 Alacritty 实例设置 `$TERM` 环境变量。
  # 如果不存在,Alacritty 将检查本地的 terminfo 数据库,
  # 如果可用,则使用 `alacritty`,否则使用 `xterm-256color`。
  #TERM: alacritty

窗口尺寸

toml
# 窗口尺寸(更改需要重新启动)
#window:
  # 窗口尺寸(更改需要重新启动)
  #
  # 终端中的行/列数(不是像素)。为此生效,行和列都必须非零。
  # 列的数量必须至少为 `2`,如果将列和行的值都设为 `0`,
  # 则会回退到窗口管理器推荐的大小。
  #dimensions:
  #  columns: 0
  #  lines: 0

  # 窗口位置(更改需要重新启动)
  #
  # 以像素为单位指定。
  # 如果未设置位置,窗口管理器将处理放置。
  #position:
  #  x: 0
  #  y: 0

  # 窗口内边距(更改需要重新启动)
  #
  # 以像素为单位在窗口周围添加的空白空间。此内边距按 DPI 缩放,
  # 指定的值总是在两侧的对立面都添加。
  #padding:
  #  x: 0
  #  y: 0

  # 在终端内容周围均匀分布额外的内边距。
  #dynamic_padding: false

  # 窗口装饰
  #
  # `decorations` 的取值:
  #     - full: 边框和标题栏
  #     - none: 既没有边框也没有标题栏
  #
  # `decorations` 的取值(仅适用于 macOS):
  #     - transparent: 标题栏,透明背景和标题栏按钮
  #     - buttonless: 标题栏,透明背景和无标题栏按钮
  #decorations: full

  # 背景不透明度
  #
  # 窗口不透明度,范围为浮点数 `0.0` 到 `1.0`。
  # 值 `0.0` 完全透明,`1.0` 不透明。
  #opacity: 1.0

  # 启动模式(更改需要重新启动)
  #
  # `startup_mode` 的取值:
  #   - Windowed 窗口化
  #   - Maximized 最大化
  #   - Fullscreen 全屏
  #
  # `startup_mode` 的取值(仅适用于 macOS):
  #   - SimpleFullscreen
  #startup_mode: Windowed

  # 窗口标题
  #title: Alacritty

  # 允许终端应用更改 Alacritty 窗口标题。
  #dynamic_title: true

  # 窗口类别(仅适用于 Linux/BSD):
  #class:
    # 应用实例名称
    #instance: Alacritty
    # 通用应用类别
    #general: Alacritty

  # 装饰主题变体
  #
  # 覆盖系统主题/GTK 主题/Wayland 客户端端装饰的变体。
  # 常见支持的取值有 `Dark`、`Light` 和 `None` 用于自动选择。
  # 将其设置为 `None` 以使用默认主题变体。
  #decorations_theme_variant: None

  # 调整增量
  #
  # 更喜欢按单元尺寸等离散步长调整窗口。
  #resize_increments: false

  # 使 `Option` 键表现为 `Alt` 键(仅适用于 macOS):
  #   - OnlyLeft
  #   - OnlyRight
  #   - Both
  #   - None(默认)
  #option_as_alt: None

滚动

toml
# 滚动:
#scrolling:
  # 滚动缓冲区中的最大行数。
  # 指定 '0' 将禁用滚动。
  #history: 10000

  # 滚动距离倍增器。
  #multiplier: 3

字体

toml
# 字体配置
#font:
  # Normal 普通(罗马)字体
  #normal:
    # 字体系列
    #
    # 默认:
    #   - (macOS) Menlo
    #   - (Linux/BSD) monospace
    #   - (Windows) Consolas
    #family: monospace

    # 可以指定 `style` 以选择特定样式。
    #style: Regular

  # 粗体字体
  #bold:
    # 字体系列
    #
    # 如果未指定粗体系列,它将回退到普通字体指定的值。
    #family: monospace

    # 可以指定 `style` 以选择特定样式。
    #style: Bold

  # 斜体字体
  #italic:
    # 字体系列
    #
    # 如果未指定斜体系列,它将回退到普通字体指定的值。
    #family: monospace

    # 可以指定 `style` 以选择特定样式。
    #style: Italic

  # 粗斜体字体
  #bold_italic:
    # 字体系列
    #
    # 如果未指定粗斜体系列,它将回退到普通字体指定的值。
    #family: monospace

    # 可以指定 `style` 以选择特定样式。
    #style: Bold Italic

  # 点大小
  #size: 11.0

  # 偏移是每个字符周围的额外空间。`offset.y` 可以被认为是修改行间距,而 `offset.x` 是修改字母间距。
  #offset:
  #  x: 0
  #  y: 0

  # 字形偏移确定了字形在其单元格内的位置,默认在底部。增加 `x` 将字形移动到右侧,增加 `y` 将字形向上移动。
  #glyph_offset:
  #  x: 0
  #  y: 0

  # 使用内置字体绘制框图字符。
  #
  # 如果为 `true`,Alacritty 将使用内置的自定义字体绘制框图字符(Unicode 点 2500 - 259f)。
  #
  #builtin_box_drawing: true

# 如果为 `true`,粗体文本将使用明亮的颜色变体绘制。
#draw_bold_text_with_bright_colors: false

颜色

toml
# 颜色(Tomorrow Night)
#colors:
  # 默认颜色
  #primary:
  #  背景:'#1d1f21'
  #  前景:'#c5c8c6'

    # 明亮和暗淡的前景颜色
    #
    # 如果未设置暗淡的前景颜色,它将自动计算。如果未设置明亮的前景颜色,或者
    # `draw_bold_text_with_bright_colors` 为 `false`,将使用正常的前景颜色。
    #dim_foreground: '#828482'
    #bright_foreground: '#eaeaea'

  # 光标颜色
  #
  # 用于绘制终端光标的颜色。
  #
  # 允许的值是 CellForeground/CellBackground,它们引用受影响的单元格,或十六进制颜色如 #ff00ff。
  #cursor:
  #  文本:CellBackground
  #  光标:CellForeground

  # Vi 模式光标颜色
  #
  # 当 vi 模式激活时光标的颜色。
  #
  # 允许的值是 CellForeground/CellBackground,它们引用
  # 受影响的单元格,或十六进制颜色如 #ff00ff。
  #vi_mode_cursor:
  #  文本:CellBackground
  #  光标:CellForeground

  # 搜索颜色
  #
  # 用于搜索栏和匹配高亮的颜色。
  #search:
    # 允许的值是 CellForeground/CellBackground,它们引用
    # 受影响的单元格,或十六进制颜色如 #ff00ff。
    #matches:
    #  前景:'#000000'
    #  背景:'#ffffff'
    #focused_match:
    #  前景:'#ffffff'
    #  背景:'#000000'

  # 键盘提示
  #hints:
    # 提示标签中的第一个字符
    #
    # 允许的值是 CellForeground/CellBackground,它们引用
    # 受影响的单元格,或十六进制颜色如 #ff00ff。
    #start:
    #  前景:'#1d1f21'
    #  背景:'#e9ff5e'

    # 提示标签中除第一个字符外的所有字符
    #
    # 允许的值是 CellForeground/CellBackground,它们引用
    # 受影响的单元格,或十六进制颜色如 #ff00ff。
    #end:
    #  前景:'#e9ff5e'
    #  背景:'#1d1f21'

  # 行指示器
  #
  # 用于显示搜索和 vi 模式中历史位置的指示器的颜色。
  #
  # 默认情况下,它们将使用相反的主颜色。
  #line_indicator:
  #  前景:None
  #  背景:None

  # 页脚栏
  #
  # 用于底部页脚栏的颜色,用于搜索正则表达式输入,超链接 URI 预览等。
  #
  #footer_bar:
  #  背景:'#c5c8c6'
  #  前景:'#1d1f21'

  # 选择颜色
  #
  # 用于绘制选择区域的颜色。
  #
  # 允许的值是 CellForeground/CellBackground,它们引用
  # 受影响的单元格,或十六进制颜色如 #ff00ff。
  #selection:
  #  文本:CellBackground
  #  背景:CellForeground

  # 正常颜色
  #normal:
  #  黑色:  '#1d1f21'
  #  红色:  '#cc6666'
  #  绿色:  '#b5bd68'
  #  黄色:  '#f0c674'
  #  蓝色:  '#81a2be'
  #  品红色:'#b294bb'
  #  青色:  '#8abeb7'
  #  白色:  '#c5c8c6'

  # 明亮颜色
  #bright:
  #  黑色:  '#666666'
  #  红色:  '#d54e53'
  #  绿色:  '#b9ca4a'
  #  黄色:  '#e7c547'
  #  蓝色:  '#7aa6da'
  #  品红色:'#c397d8'
  #  青色:  '#70c0b1'
  #  白色:  '#eaeaea'

  # 暗淡颜色
  #
  # 如果未设置暗淡颜色,它们将基于 `normal` 颜色自动计算。
  #dim:
  #  黑色:  '#131415'
  #  红色:  '#864343'
  #  绿色:  '#777c44'
  #  黄色:  '#9e824c'
  #  蓝色:  '#556a7d'
  #  品红色:'#75617b'
  #  青色:  '#5b7d78'
  #  白色:  '#828482'

  # 索引颜色
  #
  # 索引颜色包括从 16 到 256 的所有颜色。
  # 当这些未设置时,它们将填充合理的默认值。
  #
  # 示例:
  #   `- { index: 16, color: '#ff00ff' }`
  #
  #indexed_colors: []

  # 透明单元格背景
  #
  # 是否 `window.opacity` 应用于所有单元格背景还是仅应用于
  # 默认背景。当设置为 `true` 时,所有单元格都将是透明的
  # 无论它们的背景颜色如何。
  #transparent_background_colors: false

警告

toml
# 警告
#
# 每当接收到 BEL 控制字符时,都会响起警告。
#bell:
  # 可视警告动画
  #
  # 当响起可视警告时,屏幕会闪烁的动画效果。
  #
  # `animation` 的取值:
  #   - Ease
  #   - EaseOut
  #   - EaseOutSine
  #   - EaseOutQuad
  #   - EaseOutCubic
  #   - EaseOutQuart
  #   - EaseOutQuint
  #   - EaseOutExpo
  #   - EaseOutCirc
  #   - Linear
  #animation: EaseOutExpo

  # 可视警告闪烁的持续时间(以毫秒为单位)。将 `duration` 设置为 `0` 将禁用可视警告动画。
  #duration: 0

  # 可视警告动画颜色。
  #color: '#ffffff'

  # 警告命令
  #
  # 每当响起警告时,将执行此程序。
  #
  # 当设置为 `command: None` 时,不会执行任何命令。
  #
  # 示例:
  #   command:
  #     program: notify-send
  #     args: ["Hello, World!"]
  #
  #command: None

selection

toml
#selection:
  # 此字符串包含所有在 Alacritty 中用作“语义单词”分隔符的字符。
  #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"

  # 当设置为 `true` 时,所选文本将被复制到主剪贴板。
  #save_to_clipboard: false

光标

toml
#cursor:
  # 光标样式
  #style:
    # 光标形状
    #
    # `shape` 的取值:
    #   - ▇ Block 方块
    #   - _ Underline 下划线
    #   - | Beam 光标
    #shape: Block

    # 光标闪烁状态
    #
    # `blinking` 的取值:
    #   - Never: 防止光标永远闪烁
    #   - Off: 默认禁用闪烁
    #   - On: 默认启用闪烁
    #   - Always: 强制光标始终闪烁
    #blinking: Off

  # Vi 模式光标样式
  #
  # 如果 vi 模式光标样式为 `None` 或未指定,它将回退到
  # 正常光标的活动值样式。
  #
  # 有关可用选项,请参见 `cursor.style`。
  #vi_mode_style: None

  # 光标闪烁间隔,以毫秒为单位。
  #blink_interval: 750

  # 光标停止闪烁的时间,以秒为单位。
  #
  # 指定 '0' 将禁用光标闪烁的超时。
  #blink_timeout: 5

  # 如果为 `true`,当窗口未聚焦时,光标将呈现为空心框。
  #unfocused_hollow: true

  # 光标相对于单元格宽度的厚度,以浮点数形式表示,范围从 `0.0` 到 `1.0`。
  #thickness: 0.15

自动刷新

toml
# 自动刷新(更改需要重新启动)
#live_config_reload: true

终端 shell

toml
# Shell
#
# 您可以将 `shell.program` 设置为您喜欢的 shell 的路径,例如
# `/bin/fish`。`shell.args` 中的条目将未经修改地传递为参数到 shell。
#
# 默认:
#   - (Linux/BSD/macOS)如果 `$SHELL` 未设置,则为 `$SHELL` 或用户的登录 shell
#   - (Windows)powershell
#shell:
#  program: /bin/bash
#  args:
#    - --login

# 启动目录
#
# shell 启动的目录。如果未设置,或为 `None`,将使用父进程的工作目录。
#working_directory: None

# 提供使用 `alacritty msg` 进行 IPC(仅限 unix)
#ipc_socket: true

鼠标

toml
#mouse:
  # 点击设置
  #
  # `double_click` 和 `triple_click` 设置控制 alacritty 应等待接受多次点击作为一次双击或三次点击的时间。
  #double_click: { threshold: 300 }
  #triple_click: { threshold: 300 }

  # 如果为 `true`,在输入时光标会被暂时隐藏。
  #hide_when_typing: false

# 提示
#
# 终端提示可用于在终端的可见部分查找文本或超链接,并将其管道传递给其他应用程序。
#hints:
  # 用于提示标签的键。
  #alphabet: "jfkdls;ahgurieowpq"

  # 包含所有可用提示的列表
  #
  # 每个提示必须具有 `regex` 或 `hyperlinks` 字段之一,并且具有 `action` 或 `command` 字段。
  # 字段 `mouse`、`binding` 和 `post_processing` 是可选的。
  #
  # `hyperlinks` 选项将导致 OSC 8 转义序列的超链接被突出显示。
  #
  # 字段 `command`、`binding.key`、`binding.mods`、`binding.mode` 和
  # `mouse.mods` 接受与 `key_bindings` 部分相同的值。
  #
  # `mouse.enabled` 字段控制在鼠标保持所有 `mouse.mods` 键或 vi 模式光标位于其上时是否应该在其下划线提示。
  #
  # 如果 `post_processing` 字段设置为 `true`,将使用启发式方法缩短匹配,如果有可能不是提示的一部分的字符
  # (例如尾随的 `.`)。这对于 URIs 最有用,仅适用于 `regex` 匹配。
  #
  # `action` 的取值:
  #   - Copy
  #       复制提示的文本到剪贴板。
  #   - Paste
  #       将提示的文本粘贴到终端或搜索。
  #   - Select
  #       选择提示的文本。
  #   - MoveViModeCursor
  #       将 vi 模式光标移动到提示的开头。
  #enabled:
  # - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
  #           [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
  #   hyperlinks: true
  #   command: xdg-open
  #   post_processing: true
  #   mouse:
  #     enabled: true
  #     mods: None
  #   binding:
  #     key: U
  #     mods: Control|Shift

# 鼠标绑定
#
# 鼠标绑定被指定为对象列表,类似于下面的键绑定。
#
# 要在 Alacritty 中运行的应用程序捕获鼠标时触发鼠标绑定,`Shift` 修饰符会自动添加为要求。
#
# 每个鼠标绑定将指定一个:
#
# - `mouse`:
#
#   - Middle
#   - Left
#   - Right
#   - 数字标识符,例如 `5`
#
# - `action`(有关不仅限于鼠标模式的操作,请参见键绑定)
#
# - 鼠标独占动作:
#
#   - ExpandSelection
#       将选择扩展到当前鼠标光标位置。
#
# 以及可选的:
#
# - `mods`(参见键绑定)
#mouse_bindings:
#  - { mouse: Right,                 action: ExpandSelection }
#  - { mouse: Right,  mods: Control, action: ExpandSelection }
#  - { mouse: Middle, mode: ~Vi,     action: PasteSelection  }

键绑定

toml
# 键绑定
#
# 键绑定被指定为对象列表。例如,这是默认的粘贴绑定:
#
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# 每个键绑定将指定一个:
#
# - `key`:按下的键的标识符
#
#    - A-Z
#    - F1-F24
#    - Key0-Key9
#
#    可以在此处找到可用键代码的完整列表:
#    https://docs.rs/winit/*/winit/event/enum.VirtualKeyCode.html#variants
#
#    除了使用键的名称之外,`key` 字段还支持使用所需键的扫描码。扫描码必须指定为十进制数字。此命令将允许您显示特定键的十六进制扫描码:
#
#       `showkey --scancodes`。
#
# 然后准确地一个:
#
# - `chars`:将字节序列发送到运行中的应用程序
#
#    `chars` 字段将指定的字符串写入终端。这使得传递转义序列成为可能。要找到类似于 `PageUp` 的绑定的转义代码(`"\x1b[5~"`),可以在 tmux 外部运行命令 `showkey -a`。请注意,应用程序使用 terminfo 将转义序列映射回键。因此,在更改转义序列时,必须更新 terminfo。
#
# - `action`:执行预定义的操作
#
#   - ToggleViMode
#   - SearchForward
#       从搜索起点向右开始搜索。
#   - SearchBackward
#       从搜索起点向左开始搜索。
#   - Copy
#   - Paste
#   - IncreaseFontSize
#   - DecreaseFontSize
#   - ResetFontSize
#   - ScrollPageUp
#   - ScrollPageDown
#   - ScrollHalfPageUp
#   - ScrollHalfPageDown
#   - ScrollLineUp
#   - ScrollLineDown
#   - ScrollToTop
#   - ScrollToBottom
#   - ClearHistory
#       删除终端的滚动历史记录。
#   - Hide
#       隐藏 Alacritty 窗口。
#   - Minimize
#       最小化 Alacritty 窗口。
#   - Quit
#       退出 Alacritty。
#   - ToggleFullscreen
#   - ToggleMaximized
#   - SpawnNewInstance
#       生成 Alacritty 的新实例。
#   - CreateNewWindow
#       从当前进程创建一个新的 Alacritty 窗口。
#   - ClearLogNotice
#       清除 Alacritty 的 UI 警告和错误通知。
#   - ClearSelection
#       删除活动选择。
#   - ReceiveChar
#   - None
#
# - Vi 模式专属操作:
#
#   - Open
#       执行位于 vi 模式光标下且 `mouse.enabled` 设置为 `true` 的第一个匹配提示的操作。
#   - ToggleNormalSelection
#   - ToggleLineSelection
#   - ToggleBlockSelection
#   - ToggleSemanticSelection
#       基于 `selection.semantic_escape_chars` 切换语义选择。
#   - CenterAroundViCursor
#       围绕 vi 模式光标居中视图
#
# - Vi 模式专属光标移动操作:
#
#   - Up
#       上移一行。
#   - Down
#       下移一行。
#   - Left
#       左移一个字符。
#   - Right
#       右移一个字符。
#   - First
#       第一列,或者当已经在第一列时是行的开头。
#   - Last
#       最后一列,或者当已经在最后一列时是行的开头。
#   - FirstOccupied
#       此终端行中的第一个非空单元格,或者当已经在行的第一个单元格时是行的第一个非空单元格。
#   - High
#       屏幕顶部。
#   - Middle
#       屏幕中间。
#   - Low
#       屏幕底部。
#   - SemanticLeft
#       前一个在语义上分隔的单词的开头。
#   - SemanticRight
#       后一个在语义上分隔的单词的开头。
#   - SemanticLeftEnd
#       前一个在语义上分隔的单词的结尾。
#   - SemanticRightEnd
#       后一个在语义上分隔的单词的结尾。
#   - WordLeft
#       前一个以空白分隔的单词的开头。
#   - WordRight
#       后一个以空白分隔的单词的开头。
#   - WordLeftEnd
#       前一个以空白分隔的单词的结尾。
#   - WordRightEnd
#       后一个以空白分隔的单词的结尾。
#   - Bracket
#       匹配光标位置的括号的字符。
#   - SearchNext
#       下一个匹配的开始。
#   - SearchPrevious
#       上一个匹配的开始。
#   - SearchStart
#       vi 模式光标左侧的匹配的开始。
#   - SearchEnd
#       vi 模式光标右侧的匹配的结束。
#
# - 搜索模式专属操作:
#   - SearchFocusNext
#       将焦点移至下一个搜索匹配项。
#   - SearchFocusPrevious
#       将焦点移至上一个搜索匹配项。
#   - SearchConfirm
#   - SearchCancel
#   - SearchClear
#       重置搜索正则表达式。
#   - SearchDeleteWord
#       删除搜索正则表达式中的最后一个单词。
#   - SearchHistoryPrevious
#       转到搜索历史记录中的上一个正则表达式。
#   - SearchHistoryNext
#       转到搜索历史记录中的下一个正则表达式。
#
# - 仅限 macOS 的操作:
#   - ToggleSimpleFullscreen
#       进入全屏模式而不占用其他空间。
#
# - 仅限 Linux/BSD 的操作:
#
#   - CopySelection
#       从选择缓冲区复制。
#   - PasteSelection
#       从选择缓冲区粘贴。
#
# - `command`:分叉并执行指定的命令加参数
#
#    `command` 字段必须是包含 `program` 字符串和 `args` 命令行参数字符串数组的映射。例如:
#       `{ program: "alacritty", args: ["-e", "vttest"] }`
#
# 并且可选的:
#
# - `mods`:用于过滤绑定操作的键修饰符
#
#    - Command
#    - Control
#    - Option
#    - Super
#    - Shift
#    - Alt
#
#    多个 `mods` 可以使用 `|` 组合,如下所示:
#       `mods: Control|Shift`。
#    空格和大小写很重要,必须与示例匹配。
#
# - `mode`:指示仅适用于特定终端报告的模式的绑定
#
#    这主要用于在不同模式下向应用程序发送正确的转义序列。
#
#    - AppCursor
#    - AppKeypad
#    - Search
#    - Alt
#    - Vi
#
#    可以在模式前使用 `~` 运算符,以在模式*未*激活时应用绑定,例如 `~Alt`。
#
# 默认情况下,绑定总是默认填充的,但当定义具有相同触发器的新绑定时,它们将被替换。要取消默认绑定,可以将其映射到 `ReceiveChar` 操作。或者,如果不希望接收该绑定的输入字符,可以使用 `None` 进行无操作。
#
# 如果将相同的触发器分配给多个操作,则它们将按照定义的顺序依次执行。
#key_bindings:
  #- { key: Paste,                                       action: Paste          }
  #- { key: Copy,                                        action: Copy           }
  #- { key: L,         mods: Control,                    action: ClearLogNotice }
  #- { key: L,         mods: Control, mode: ~Vi|~Search, chars: "\x0c"          }
  #- { key: PageUp,    mods: Shift,   mode: ~Alt,        action: ScrollPageUp   }
  #- { key: PageDown,  mods: Shift,   mode: ~Alt,        action: ScrollPageDown }
  #- { key: Home,      mods: Shift,   mode: ~Alt,        action: ScrollToTop    }
  #- { key: End,       mods: Shift,   mode: ~Alt,        action: ScrollToBottom }

  # Vi Mode
  #- { key: Space,  mods: Shift|Control, mode: ~Search,    action: ToggleViMode            }
  #- { key: Space,  mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: Escape,                      mode: Vi|~Search, action: ClearSelection          }
  #- { key: I,                           mode: Vi|~Search, action: ToggleViMode            }
  #- { key: I,                           mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: C,      mods: Control,       mode: Vi|~Search, action: ToggleViMode            }
  #- { key: Y,      mods: Control,       mode: Vi|~Search, action: ScrollLineUp            }
  #- { key: E,      mods: Control,       mode: Vi|~Search, action: ScrollLineDown          }
  #- { key: G,                           mode: Vi|~Search, action: ScrollToTop             }
  #- { key: G,      mods: Shift,         mode: Vi|~Search, action: ScrollToBottom          }
  #- { key: B,      mods: Control,       mode: Vi|~Search, action: ScrollPageUp            }
  #- { key: F,      mods: Control,       mode: Vi|~Search, action: ScrollPageDown          }
  #- { key: U,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageUp        }
  #- { key: D,      mods: Control,       mode: Vi|~Search, action: ScrollHalfPageDown      }
  #- { key: Y,                           mode: Vi|~Search, action: Copy                    }
  #- { key: Y,                           mode: Vi|~Search, action: ClearSelection          }
  #- { key: Copy,                        mode: Vi|~Search, action: ClearSelection          }
  #- { key: V,                           mode: Vi|~Search, action: ToggleNormalSelection   }
  #- { key: V,      mods: Shift,         mode: Vi|~Search, action: ToggleLineSelection     }
  #- { key: V,      mods: Control,       mode: Vi|~Search, action: ToggleBlockSelection    }
  #- { key: V,      mods: Alt,           mode: Vi|~Search, action: ToggleSemanticSelection }
  #- { key: Return,                      mode: Vi|~Search, action: Open                    }
  #- { key: Z,                           mode: Vi|~Search, action: CenterAroundViCursor    }
  #- { key: K,                           mode: Vi|~Search, action: Up                      }
  #- { key: J,                           mode: Vi|~Search, action: Down                    }
  #- { key: H,                           mode: Vi|~Search, action: Left                    }
  #- { key: L,                           mode: Vi|~Search, action: Right                   }
  #- { key: Up,                          mode: Vi|~Search, action: Up                      }
  #- { key: Down,                        mode: Vi|~Search, action: Down                    }
  #- { key: Left,                        mode: Vi|~Search, action: Left                    }
  #- { key: Right,                       mode: Vi|~Search, action: Right                   }
  #- { key: Key0,                        mode: Vi|~Search, action: First                   }
  #- { key: Key4,   mods: Shift,         mode: Vi|~Search, action: Last                    }
  #- { key: Key6,   mods: Shift,         mode: Vi|~Search, action: FirstOccupied           }
  #- { key: H,      mods: Shift,         mode: Vi|~Search, action: High                    }
  #- { key: M,      mods: Shift,         mode: Vi|~Search, action: Middle                  }
  #- { key: L,      mods: Shift,         mode: Vi|~Search, action: Low                     }
  #- { key: B,                           mode: Vi|~Search, action: SemanticLeft            }
  #- { key: W,                           mode: Vi|~Search, action: SemanticRight           }
  #- { key: E,                           mode: Vi|~Search, action: SemanticRightEnd        }
  #- { key: B,      mods: Shift,         mode: Vi|~Search, action: WordLeft                }
  #- { key: W,      mods: Shift,         mode: Vi|~Search, action: WordRight               }
  #- { key: E,      mods: Shift,         mode: Vi|~Search, action: WordRightEnd            }
  #- { key: Key5,   mods: Shift,         mode: Vi|~Search, action: Bracket                 }
  #- { key: Slash,                       mode: Vi|~Search, action: SearchForward           }
  #- { key: Slash,  mods: Shift,         mode: Vi|~Search, action: SearchBackward          }
  #- { key: N,                           mode: Vi|~Search, action: SearchNext              }
  #- { key: N,      mods: Shift,         mode: Vi|~Search, action: SearchPrevious          }

  # Search Mode
  #- { key: Return,                mode: Search|Vi,  action: SearchConfirm         }
  #- { key: Escape,                mode: Search,     action: SearchCancel          }
  #- { key: C,      mods: Control, mode: Search,     action: SearchCancel          }
  #- { key: U,      mods: Control, mode: Search,     action: SearchClear           }
  #- { key: W,      mods: Control, mode: Search,     action: SearchDeleteWord      }
  #- { key: P,      mods: Control, mode: Search,     action: SearchHistoryPrevious }
  #- { key: N,      mods: Control, mode: Search,     action: SearchHistoryNext     }
  #- { key: Up,                    mode: Search,     action: SearchHistoryPrevious }
  #- { key: Down,                  mode: Search,     action: SearchHistoryNext     }
  #- { key: Return,                mode: Search|~Vi, action: SearchFocusNext       }
  #- { key: Return, mods: Shift,   mode: Search|~Vi, action: SearchFocusPrevious   }

  # (仅适用于 Windows、Linux 和 BSD)
  #- { key: V,              mods: Control|Shift, mode: ~Vi,        action: Paste            }
  #- { key: C,              mods: Control|Shift,                   action: Copy             }
  #- { key: F,              mods: Control|Shift, mode: ~Search,    action: SearchForward    }
  #- { key: B,              mods: Control|Shift, mode: ~Search,    action: SearchBackward   }
  #- { key: C,              mods: Control|Shift, mode: Vi|~Search, action: ClearSelection   }
  #- { key: Insert,         mods: Shift,                           action: PasteSelection   }
  #- { key: Key0,           mods: Control,                         action: ResetFontSize    }
  #- { key: Equals,         mods: Control,                         action: IncreaseFontSize }
  #- { key: Plus,           mods: Control,                         action: IncreaseFontSize }
  #- { key: NumpadAdd,      mods: Control,                         action: IncreaseFontSize }
  #- { key: Minus,          mods: Control,                         action: DecreaseFontSize }
  #- { key: NumpadSubtract, mods: Control,                         action: DecreaseFontSize }

  # (仅适用于 Windows)
  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }

  # (仅适用于 macOS)
  #- { key: K,              mods: Command, mode: ~Vi|~Search, chars: "\x0c"                 }
  #- { key: K,              mods: Command, mode: ~Vi|~Search, action: ClearHistory          }
  #- { key: Key0,           mods: Command,                    action: ResetFontSize         }
  #- { key: Equals,         mods: Command,                    action: IncreaseFontSize      }
  #- { key: Plus,           mods: Command,                    action: IncreaseFontSize      }
  #- { key: NumpadAdd,      mods: Command,                    action: IncreaseFontSize      }
  #- { key: Minus,          mods: Command,                    action: DecreaseFontSize      }
  #- { key: NumpadSubtract, mods: Command,                    action: DecreaseFontSize      }
  #- { key: V,              mods: Command,                    action: Paste                 }
  #- { key: C,              mods: Command,                    action: Copy                  }
  #- { key: C,              mods: Command, mode: Vi|~Search,  action: ClearSelection        }
  #- { key: H,              mods: Command,                    action: Hide                  }
  #- { key: H,              mods: Command|Alt,                action: HideOtherApplications }
  #- { key: M,              mods: Command,                    action: Minimize              }
  #- { key: Q,              mods: Command,                    action: Quit                  }
  #- { key: W,              mods: Command,                    action: Quit                  }
  #- { key: N,              mods: Command,                    action: CreateNewWindow       }
  #- { key: F,              mods: Command|Control,            action: ToggleFullscreen      }
  #- { key: F,              mods: Command, mode: ~Search,     action: SearchForward         }
  #- { key: B,              mods: Command, mode: ~Search,     action: SearchBackward        }

调试

toml
#debug:
  # 显示重新绘制每个帧所需的时间。
  #render_timer: false

  # 退出 Alacritty 后保留日志文件。
  #persistent_logging: false

  # 日志级别
  #
  # `log_level` 的值:
  #   - Off
  #   - Error
  #   - Warn
  #   - Info
  #   - Debug
  #   - Trace
  #log_level: Warn

  # 渲染器覆盖。
  #   - glsl3
  #   - gles2
  #   - gles2_pure
  #renderer: None

  # 打印所有接收到的窗口事件。
  #print_events: false

  # 高亮窗口损坏信息。
  #highlight_damage: false