theme = "custom" # monokai_soda, kaolin-valley-dark, material_deep_ocean, carbonfox [editor] # mouse = false # middle-click-paste = false # scroll-lines = 0 shell = ["fish", "-c"] line-number = "relative" cursorline = true continue-comments = true # doc comments auto-completion = true completion-replace = false # STOP deleting stuff auto-format = true auto-info = true # TODO: idle-timeout? # true-color = true # undercurl = true # terminal-background-color = true rulers = [80, 100] bufferline = "multiple" # never, always, multiple color-modes = false # mode indicator color insert-final-newline = true # POSIX lines finish with \n popup-border = "all" # popup, menu, all, none jump-label-alphabet = "tneiouykhsrafwvd" end-of-line-diagnostics = "hint" # disable, error, warning, info, hint [editor.inline-diagnostics] cursor-line = "warning" other-lines = "error" prefix-len = 1 max-diagnostics = 5 # 10 [editor.statusline] mode = { normal = "N", insert = "I", select = "S" } left = [ "mode", "file-name", "read-only-indicator", "file-modification-indicator", "file-type", "file-line-ending", "file-encoding", ] right = [ "spinner", "spacer", "diagnostics", "workspace-diagnostics", "version-control", "register", "selections", "primary-selection-length", "position", "position-percentage", "total-line-numbers", ] [editor.lsp] display-progress-messages = true # looks cool auto-signature-help = false # auto-document-highlight = false display-inlay-hints = false # meh [editor.cursor-shape] normal = "block" insert = "bar" select = "underline" [editor.file-picker] hidden = true [editor.whitespace.render] tab = "all" nbsp = "all" nnbsp = "all" space = "none" newline = "none" [editor.whitespace.characters] tab = 'σ°Œ’' nbsp = '⍽' nnbsp = '␣' space = 'πŸž„' newline = 'ξŽ€' [editor.indent-guides] render = true character = "┆" # "β•Ž", "▏", "┆", "β”Š", "βΈ½" skip-levels = 1 [editor.gutters] layout = ["diff", "diagnostics", "line-numbers", "spacer"] # TODO: don't like line-numbers.min-width = 1 [editor.soft-wrap] enable = true max-wrap = 20 # increase to reduce forced wrapping max-indent-retain = 24 # 40 wrap-indicator = "β†ͺ" [keys.insert] tab = "completion" S-tab = "insert_tab" # A-tab = "move_parent_node_end" C-space = "signature_help" C-backspace = "delete_word_backward" A-o = "open_below" A-O = "open_above" A-e = "move_parent_node_end" A-b = "move_parent_node_start" C-p = [ ':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0 | head -c -1; or wl-paste --no-newline 2>/dev/null', "append_mode", "collapse_selection", ] [keys.select] ";" = ["collapse_selection", "normal_mode"] # a = ["collapse_selection", "append_mode"] X = "extend_line_above" # V = ["extend_to_line_bounds", "trim_selections"] D = ["ensure_selections_forward", "extend_to_line_end"] V = [ "save_selection", "collapse_selection", "normal_mode", "goto_line_start", "extend_to_line_end_newline", "delete_selection", "jump_backward", "select_mode", ] C-y = "yank_joined" C-space = "signature_help" C-backspace = "delete_word_backward" tab = "expand_selection" S-tab = "shrink_selection" # A-tab = "insert_tab" # tab = "extend_parent_node_end" # S-tab = "extend_parent_node_start" L = "goto_next_buffer" H = "goto_previous_buffer" C-l = "@:e%:bc:" # move buffer to the end C-g = ":reset-diff-change" C-p = ':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0; or wl-paste --no-newline 2>/dev/null' # C-k = "jump_view_up" # C-h = "jump_view_left" # C-j = "jump_view_down" # C-l = "jump_view_right" [keys.normal] "=" = ":format" "A-=" = "format_selections" # a = ["collapse_selection", "append_mode"] X = "extend_line_above" # V = ["extend_to_line_bounds", "trim_selections"] D = ["ensure_selections_forward", "extend_to_line_end"] V = ["goto_line_start", "extend_to_line_end_newline", "delete_selection"] C-y = "yank_joined" C-space = "signature_help" tab = "expand_selection" S-tab = "shrink_selection" # A-tab = "insert_tab" # tab = "move_parent_node_end" # S-tab = "move_parent_node_start" L = "goto_next_buffer" H = "goto_previous_buffer" C-l = "@:e%:bc:" # move buffer to the end C-g = ":reset-diff-change" C-p = ':insert-output set p (wl-paste -t text/html 2>/dev/null); and printf "%%s" "$p" | html2text -b0; or wl-paste --no-newline 2>/dev/null' # C-q = "wclose" # C-k = "jump_view_up" # C-h = "jump_view_left" # C-j = "jump_view_down" # C-l = "jump_view_right" A-j = ["extend_to_line_bounds", "delete_selection", "paste_after"] A-k = [ "extend_to_line_bounds", "delete_selection", "move_line_up", "paste_before", ] # A-J = ["extend_to_line_bounds", "yank", "paste_after"] A-K = [ "save_selection", "extend_to_line_bounds", "yank", "paste_before", "jump_backward", ] [keys.normal.space] '.' = ":config-reload" i = ":reload" I = ":reload-all" q = ":buffer-close" Q = ":buffer-close-all" o = ":buffer-close-others" n = "file_picker_in_current_buffer_directory" ret = "insert_newline" # Toggle [keys.normal.space.t] f = ":toggle auto-format" c = ":toggle cursorline" w = ":toggle soft-wrap.enable" n = ":toggle line-number absolute relative" b = ":toggle bufferline never multiple" r = ":toggle rulers [] [80,100]" g = ":toggle indent-guides.render" e = ":toggle end-of-line-diagnostics disable hint" d = ":toggle inline-diagnostics.cursor-line disable warning" D = ":toggle inline-diagnostics.other-lines disable error" s = ":toggle lsp.auto-signature-help" h = ":toggle lsp.auto-document-highlight" i = ":toggle lsp.display-inlay-hints" l = ":lsp-stop" L = ":lsp-restart" A-l = ":run-shell-command systemctl --user restart lspmux.service" # t = [":toggle cursorline", ":toggle line-number absolute relative"] # https://github.com/helix-editor/helix/issues/13187 # t = [ # TODO: not work # ":set-option cursorline true", # ":set-option rulers [100]", # ":set-option soft-wrap.enable false", # ":set-option line-number relative", # ':set-option gutters.layout ["line-numbers","spacer"]', # ":set-option bufferline never", # ":set-option indent-guides.render true", # ":set-option lsp.display-inlay-hints false", # ":set-option end-of-line-diagnostics disable", # ":set-option inline-diagnostics.other-lines disable", # ":set-option inline-diagnostics.cursor-line disable", # ]