Skip to content

Instantly share code, notes, and snippets.

@barnabee
Last active July 11, 2024 11:15
Show Gist options
  • Save barnabee/82f39d02a85291b0045f53f2473d2d53 to your computer and use it in GitHub Desktop.
Save barnabee/82f39d02a85291b0045f53f2473d2d53 to your computer and use it in GitHub Desktop.
Helix editor config
inherits = "jellybeans"
"ui.background" = {}
# Jellybeans theme with black/transparent background (see theme file)
theme = "bm_jellybeans"
# Keybinds, trying to avoid conflicts with Helix defaults.
[keys.insert]
A-q = [":write", "commit_undo_checkpoint"]
C-A-q = [":write-buffer-close", "normal_mode"]
A-r = ["extend_to_line_end", "yank", "delete_selection", "insert_mode"]
"A-=" = ["extend_to_line_bounds", ":pipe x=$(cat); echo \"$x\" \"$(kalker \"$x\")\"", "collapse_selection"]
A-h = "goto_previous_buffer"
A-l = "goto_next_buffer"
A-6 = ["goto_line_start", "commit_undo_checkpoint"]
A-4 = ["goto_line_end", "commit_undo_checkpoint"]
A-j = ["move_line_down", "goto_first_nonwhitespace", "commit_undo_checkpoint"]
A-k = ["move_line_up", "goto_first_nonwhitespace", "commit_undo_checkpoint"]
up = ["move_visual_line_up", "commit_undo_checkpoint"]
down = ["move_visual_line_down", "commit_undo_checkpoint"]
[keys.normal]
"A-=" = ["extend_to_line_bounds", ":pipe x=$(cat); echo \"$x\" \"$(kalker \"$x\")\"", "collapse_selection"]
C-q = ":buffer-close"
A-q = ":write"
C-A-q = ":write-buffer-close"
A-h = "goto_previous_buffer"
A-l = "goto_next_buffer"
A-j = ["move_line_down", "goto_first_nonwhitespace"]
A-k = ["move_line_up", "goto_first_nonwhitespace"]
"{" = ["goto_prev_paragraph"]
"}" = ["goto_next_paragraph"]
A-6 = "goto_line_start"
A-4 = "goto_line_end"
"^" = "goto_first_nonwhitespace"
G = "goto_file_end"
M = "match_brackets"
V = ["select_mode", "extend_to_line_bounds"]
A-r = ["extend_to_line_end", "yank", "delete_selection", "insert_mode"]
D = ["extend_to_line_end", "yank", "delete_selection"]
A-m = "surround_add"
Y = ["extend_to_line_bounds", "yank"]
esc = ["collapse_selection", "keep_primary_selection"]
"\\" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "select_mode", "search_selection"]
"A-\\" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_prev", "select_mode"]
A-8 = ["search_selection", "select_mode"]
[keys.select]
"A-=" = ["extend_to_line_bounds", ":pipe x=$(cat); echo \"$x\" \"$(kalker \"$x\")\"", "collapse_selection"]
C-q = ":buffer-close"
A-q = ":write"
C-A-q = ":write-buffer-close"
A-h = "goto_previous_buffer"
A-l = "goto_next_buffer"
A-j = ["move_line_down", "goto_first_nonwhitespace"]
A-k = ["move_line_up", "goto_first_nonwhitespace"]
"{" = ["extend_to_line_bounds", "goto_prev_paragraph"]
"}" = ["extend_to_line_bounds", "goto_next_paragraph"]
A-6 = "goto_line_start"
A-4 = "goto_line_end"
"^" = "goto_first_nonwhitespace"
G = "goto_file_end"
M = "match_brackets"
D = ["extend_to_line_bounds", "delete_selection", "normal_mode"]
A-r = ["extend_to_line_end", "yank", "delete_selection", "insert_mode"]
# = ["goto_line_start", "extend_to_line_bounds", "change_selection"]
A-m = "surround_add"
Y = ["extend_to_line_bounds", "yank"]
"\\" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_next"]
"A-\\" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_prev"]
"A-8" = ["search_selection", "select_mode"]
## Everything else...
[editor]
soft-wrap.enable = true
auto-completion = true
scroll-lines = 1
auto-save = false
# completion-trigger-len = 3
# preview-completion-insert = false
idle-timeout = 0
true-color = true
color-modes = true
auto-pairs = true
line-number = "relative"
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.indent-guides]
render = true
character = "┊"
skip-levels = 1
[editor.lsp]
display-messages = true
display-inlay-hints = false
auto-signature-help = true
[editor.statusline]
left = [
"mode",
"spinner",
"file-name",
"file-encoding",
"read-only-indicator",
"version-control",
"file-type",
"total-line-numbers",
"file-encoding",
"file-modification-indicator",
]
center = []
right = [
"register",
"selections",
"primary-selection-length",
"position",
"position-percentage",
"spacer",
"diagnostics",
"workspace-diagnostics",
]
# Can't yet get selective whitespace rendering where I'd like it so it's off for now
#[editor.whitespace.render]
# space = "all"
# tab = "all"
# newline = "all"
#[editor.whitespace.characters]
# space = "·"
# nbsp = "⍽"
# tab = "→"
# newline = "⌟"
# tabpad = "·" # Tabs will look like "→···" (depending on tab width)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment