Replies: 17 comments
-
Here is the same config with Comments! === Config with comments ===[editor]
"scrolloff" = 3 # Number of lines of padding around the edge of the screen when scrolling.
"mouse" = true # Enable mouse mode.
"middle-click-paste" = true # Middle click paste support.
"scroll-lines" = 3 # Number of lines to scroll per scroll wheel step.
"shell" = ["sh", "-c"] # Shell to use when running external commands.
"line-number" = "absolute" # Line number display (absolute, relative)
"smart-case" = true # Enable smart case regex searching (case insensitive unless pattern contains upper case characters)
"auto-pairs" = true # Enable automatic insertion of pairs to parenthese, brackets, etc.
"auto-completion" = true # Enable automatic pop up of auto-completion.
"idle-timeout" = 400 # Time in milliseconds since last keypress before idle timers trigger. Used for autocompletion, set to 0 for instant.
"completion-trigger-len" = 2 # The min-length of word under cursor to trigger autocompletion
"auto-info" = true # Whether to display infoboxes
[editor.filepicker]
"hidden" = true # Enables ignoring hidden files.
"parents" = true # Enables reading ignore files from parent directories.
"ignore" = true # Enables reading .ignore files.
"git-ignore" = true # Enables reading .gitignore files.
"git-global" = true # Enables reading global .gitignore, whose path is specified in git's config: core.excludefile option.
"git-exclude" = true # Enables reading .git/info/exclude files.
[keys.normal]
# Movement
"left" = "move_char_left" # Move left
"down" = "move_line_down" # Move down
"up" = "move_line_up" # Move up
"right" = "move_char_right" # Move right
"h" = "move_char_left" # Move left
"j" = "move_line_down" # Move down
"k" = "move_line_up" # Move up
"l" = "move_char_right" # Move right
"w" = "move_next_word_start" # Move next word start
"b" = "move_prev_word_start" # Move previous word start
"e" = "move_next_word_end" # Move next word end
"W" = "move_next_long_word_start" # Move next WORD start
"B" = "move_prev_long_word_start" # Move previous WORD start
"E" = "move_next_long_word_end" # Move next WORD end
"t" = "find_till_char" # Find 'till next char
"f" = "find_next_char" # Find next char
"T" = "till_prev_char" # Find 'till previous char
"F" = "find_prev_char" # Find previous char
"A-." = "repeat_last_motion" # Repeat last motion (f, t or m)
"home" = "goto_line_start" # Move to the start of the line
"end" = "goto_line_end" # Move to the end of the line
"pageup" = "page_up" # Move page up
"pagedown" = "page_down" # Move page down
"C-u" = "half_page_up" # Move half page up
"C-d" = "half_page_down" # Move half page down
"C-i" = "jump_forward" # Jump forward on the jumplist
"C-o" = "jump_backward" # Jump backward on the jumplist
"v" = "select_mode" # Enter select (extend) mode
":" = "command_mode" # Enter command mode
# Changes
"r" = "replace" # Replace with a character
"R" = "replace_with_yanked" # Replace with yanked text
"~" = "switch_case" # Switch case of the selected text
"`" = "switch_to_lowercase" # Set the selected text to lower case
"A-`" = "switch_to_uppercase" # Set the selected text to upper case
"i" = "insert_mode" # Insert before selection
"a" = "append_mode" # Insert after selection (append)
"I" = "prepend_to_line" # Insert at the start of the line
"A" = "append_to_line" # Insert at the end of the line
"o" = "open_below" # Open new line below selection
"O" = "open_above" # Open new line above selection
"u" = "undo" # Undo change
"U" = "redo" # Redo change
"A-u" = "earlier" # Move backward in history
"A-U" = "later" # Move forward in history
"y" = "yank" # Yank selection
"p" = "paste_after" # Paste after selection
"P" = "paste_before" # Paste after selection
"\"" = "select_register" # Select a register to yank to or paste from
"gt" = "indent" # Indent selection
"lt" = "unindent" # Unindent selection
"=" = "format_selections" # Format selection (LSP)
"d" = "delete_selection" # Delete selection
"A-d" = "delete_selection_noyank" # Delete selection, without yanking
"c" = "change_selection" # Change selection (delete and enter insert mode)
"A-c" = "change_selection_noyank" # Change selection (delete and enter insert mode, without yanking)
"C-a" = "increment" # Increment object (number) under cursor
"C-x" = "decrement" # Decrement object (number) under cursor
# Shell
"|" = "shell_pipe" # Pipe each selection through shell command, replacing with output
"A-|" = "shell_pipe_to" # Pipe each selection into shell command, ignoring output
"!" = "shell_insert_output" # Run shell command, inserting output before each selection
"A-!" = "shell_append_output" # Run shell command, appending output after each selection
# Selection manipulation
"s" = "select_regex" # Select all regex matches inside selections
"S" = "split_selection" # Split selection into subselections on regex matches
"A-s" = "split_selection_on_newline" # Split selection on newlines
"&" = "align_selections" # Align selection in columns
"_" = "trim_selections" # Trim whitespace from the selection
"semicolon" = "collapse_selection" # Collapse selection onto a single cursor
"A-semicolon" = "flip_selections" # Flip selection cursor and anchor
"," = "keep_primary_selection" # Keep only the primary selection
"A-," = "remove_primary_selection" # Remove the primary selection
"C" = "copy_selection_on_next_line" # Copy selection onto the next line (Add cursor below)
"A-C" = "copy_selection_on_prev_line" # Copy selection onto the previous line (Add cursor above)
"(" = "rotate_selections_backward" # Rotate main selection backward
")" = "rotate_selections_forward" # Rotate main selection forward
"A-(" = "rotate_selection_contents_backward" # Rotate selection contents backward
"A-)" = "rotate_selection_contents_forward" # Rotate selection contents forward
"percent" = "select_all" # Select entire file
"x" = "extend_line" # Select current line, if already selected, extend to next line
"X" = "extend_to_line_bounds" # Extend selection to line bounds (line-wise selection)
"J" = "join_selections" # Join lines inside selection
"K" = "keep_selections" # Keep selections matching the regex
"A-K" = "remove_selections" # Remove selections matching the regex
"$" = "shell_keep_pipe" # Pipe each selection into shell command, keep selections where command returned 0
"C-c" = "toggle_comments" # Comment/uncomment the selections
# Search
"/" = "search" # Search for regex pattern
"?" = "rsearch" # Search for previous pattern
"n" = "search_next" # Select next search match
"N" = "search_prev" # Select previous search match
"*" = "search_selection" # Use current selection as the search pattern
# View mode
"z" = {
"z" = "align_view_center", # Vertically center the line
"c" = "align_view_center", # Vertically center the line
"t" = "align_view_top", # Align the line to the top of the screen
"b" = "align_view_bottom", # Align the line to the bottom of the screen
"m" = "align_view_middle", # Align the line to the middle of the screen (horizontally)
"down" = "scroll_down", # Scroll the view downwards
"j" = "scroll_down", # Scroll the view downwards
"up" = "scroll_up", # Scroll the view upwards
"k" = "scroll_up", # Scroll the view upwards
"f" = "page_down", # Move page down
"b" = "page_up", # Move page up
"d" = "half_page_down", # Move half page down
"u" = "half_page_up" # Move half page up
}
# Goto mode
"g" = {
"g" = "goto_file_start", # Go to the start of the file
"e" = "goto_last_line", # Go to the end of the file
"h" = "goto_line_start", # Go to files in the selection
"l" = "goto_line_end", # Go to the start of the line
"s" = "goto_first_nonwhitespace", # Go to the end of the line
"t" = "goto_window_top", # Go to first non-whitespace character of the line
"m" = "goto_window_middle", # Go to the top of the screen
"b" = "goto_window_bottom", # Go to the middle of the screen
"d" = "goto_definition", # Go to the bottom of the screen
"y" = "goto_type_definition", # Go to definition (LSP)
"r" = "goto_reference", # Go to type definition (LSP)
"i" = "goto_implementation", # Go to references (LSP)
"a" = "goto_last_accessed_file", # Go to implementation (LSP)
"f" = "goto_file", # Go to the last accessed/alternate file
"n" = "goto_next_buffer", # Go to next buffer
"p" = "goto_previous_buffer", # Go to previous buffer
"." = "goto_last_modification" # Go to last modification in current file
}
# Match mode
"m" = {
"m" = "match_brackets", # Goto matching bracket (TS)
"s" = "surround_add", # Surround current selection with <char>
"r" = "surround_replace", # Replace surround character <from> with <to>
"d" = "surround_delete", # Delete surround character <char>
"a" = "select_textobject_around", # Select around textobject
"i" = "select_textobject_inner" # Select inside textobject
}
# Window mode
"C-w" = {
"w" = "rotate_view", # Switch to next window
"C-w" = "rotate_view", # Switch to next window
"v" = "vsplit", # Vertical right split
"C-v" = "vsplit", # Vertical right split
"s" = "hsplit", # Horizontal bottom split
"C-s" = "hsplit", # Horizontal bottom split
"left" = "jump_view_left", # Move to left split
"h" = "jump_view_left", # Move to left split
"C-h" = "jump_view_left", # Move to left split
"down" = "jump_view_down", # Move to split below
"j" = "jump_view_down", # Move to split below
"C-j" = "jump_view_down", # Move to split below
"up" = "jump_view_up", # Move to split above
"k" = "jump_view_up", # Move to split above
"C-k" = "jump_view_up", # Move to split above
"right" = "jump_view_right", # Move to right split
"l" = "jump_view_right", # Move to right split
"C-l" = "jump_view_right", # Move to right split
"f" = "goto_file", # Go to files in the selection in horizontal splits
"F" = "goto_file", # Go to files in the selection in vertical splits
"q" = "wclose", # Close current window
"C-q" = "wclose", # Close current window
"o" = "wonly", # Only keep the current window, closing all the others
"C-o" = "wonly" # Only keep the current window, closing all the others
}
# Space mode
"space" = {
"f" = "file_picker", # Open file picker
"b" = "buffer_picker", # Open buffer picker
"k" = "hover", # Show documentation for item under cursor in a popup (LSP)
"s" = "symbol_picker", # Open document symbol picker (LSP)
"a" = "code_action", # Apply code action (LSP)
"'" = "last_picker", # Open last fuzzy picker
"p" = "paste_clipboard_after", # Paste system clipboard before selections
"P" = "paste_clipboard_before", # Paste system clipboard after selections
"y" = "yank_joined_to_clipboard", # Join and yank selections to clipboard
"Y" = "yank_main_selection_to_clipboard", # Yank main selection to clipboard
"R" = "replace_selections_with_clipboard", # Replace selections by clipboard contents
"/" = "global_search", # Global search in workspace folder
"S" = "workspace_symbol_picker", # Open workspace symbol picker (LSP)
"r" = "rename_symbol" # Rename symbol (LSP)
}
# Unimpaired
"[" = {
"d" = "goto_prev_diag", # Go to previous diagnostic (LSP)
"D" = "goto_first_diag", # Go to first diagnostic in document (LSP)
"space" = "add_newline_above" # Add newline above
}
"]" = {
"d" = "goto_next_diag", # Go to next diagnostic (LSP)
"D" = "goto_last_diag", # Go to last diagnostic in document (LSP)
"space" = "add_newline_below" # Add newline below
}
|
Beta Was this translation helpful? Give feedback.
-
Generating a full, hardcoded config means that the file can go stale and fall out of sync with the built-in defaults though (let's say I generate the config with v0.5, but then there's major changes in v0.6). Isn't an example config & documentation enough? |
Beta Was this translation helpful? Give feedback.
-
I would say the idea itself isn't bad since it makes it easier to see all the defaults and change the required ones easily for a new user, and we could programatically generate the full toml config from the source. One drawback would be that since helix is still in |
Beta Was this translation helpful? Give feedback.
-
Yeah i thinks that this feature should be push back to when Helix is nearly or after reaching |
Beta Was this translation helpful? Give feedback.
-
For the present, we can make a discussion(already made by @NNBnh 😄) for the same, so users can copy paste, or use the config file. |
Beta Was this translation helpful? Give feedback.
-
Couldn't we use serde to automatically generate a default config file? Edit: Oh, it seems that @sudormrfbin already mentioned that. What if we were to generate TOML from the default config, but then tell the user to only use it to help them write their own config, and not to copy the entire default into their config? |
Beta Was this translation helpful? Give feedback.
-
Maybe we can inspire ourselves from what ## Note: commented elements will use the default value, which may go out of sync with what is displayed here.
## This is especially true as long a Helix has not reached '1.0'.
##
## New configurations elements may be added and others removed. If you want to update your config, use:
##
## :default update
##
## This command will save your current config to a `config.toml.bak` and write the defaults for your current version
## of Helix in `config.toml`.
[editor]
## Number of lines of padding around the edge of the screen when scrolling.
# scrolloff = 3
## Enable mouse mode.
# mouse = true |
Beta Was this translation helpful? Give feedback.
-
@poliorcetics Note that the keys such as |
Beta Was this translation helpful? Give feedback.
-
Could the generated config be a bit more aligned like the example below? Looks much more readable === Config with comments and vertical alignment ===[editor]
"scrolloff" = 3 # Number of lines of padding around the edge of the screen when scrolling.
"mouse" = true # Enable mouse mode.
"middle-click-paste" = true # Middle click paste support.
"scroll-lines" = 3 # Number of lines to scroll per scroll wheel step.
"shell" = ["sh", "-c"] # Shell to use when running external commands.
"line-number" = "absolute" # Line number display (absolute, relative)
"smart-case" = true # Enable smart case regex searching (case insensitive unless pattern contains upper case characters)
"auto-pairs" = true # Enable automatic insertion of pairs to parenthese, brackets, etc.
"auto-completion" = true # Enable automatic pop up of auto-completion.
"idle-timeout" = 400 # Time in milliseconds since last keypress before idle timers trigger. Used for autocompletion, set to 0 for instant.
"completion-trigger-len" = 2 # The min-length of word under cursor to trigger autocompletion
"auto-info" = true # Whether to display infoboxes
# [editor.filepicker] # doesn't seem to work in v0.5
# "hidden" = true # Enables ignoring hidden files.
# "parents" = true # Enables reading ignore files from parent directories.
# "ignore" = true # Enables reading .ignore files.
# "git-ignore" = true # Enables reading .gitignore files.
# "git-global" = true # Enables reading global .gitignore, whose path is specified in git's config: core.excludefile option.
# "git-exclude" = true # Enables reading .git/info/exclude files.
[keys.normal]
# Movement
"left" = "move_char_left" # Move left
"down" = "move_line_down" # Move down
"up" = "move_line_up" # Move up
"right" = "move_char_right" # Move right
"h" = "move_char_left" # Move left
"j" = "move_line_down" # Move down
"k" = "move_line_up" # Move up
"l" = "move_char_right" # Move right
"w" = "move_next_word_start" # Move next word start
"b" = "move_prev_word_start" # Move previous word start
"e" = "move_next_word_end" # Move next word end
"W" = "move_next_long_word_start" # Move next WORD start
"B" = "move_prev_long_word_start" # Move previous WORD start
"E" = "move_next_long_word_end" # Move next WORD end
"t" = "find_till_char" # Find 'till next char
"f" = "find_next_char" # Find next char
"T" = "till_prev_char" # Find 'till previous char
"F" = "find_prev_char" # Find previous char
"A-." = "repeat_last_motion" # Repeat last motion (f, t or m)
"home" = "goto_line_start" # Move to the start of the line
"end" = "goto_line_end" # Move to the end of the line
"pageup" = "page_up" # Move page up
"pagedown" = "page_down" # Move page down
"C-u" = "half_page_up" # Move half page up
"C-d" = "half_page_down" # Move half page down
"C-i" = "jump_forward" # Jump forward on the jumplist
"C-o" = "jump_backward" # Jump backward on the jumplist
"v" = "select_mode" # Enter select (extend) mode
":" = "command_mode" # Enter command mode
# Changes
"r" = "replace" # Replace with a character
"R" = "replace_with_yanked" # Replace with yanked text
"~" = "switch_case" # Switch case of the selected text
"`" = "switch_to_lowercase" # Set the selected text to lower case
"A-`" = "switch_to_uppercase" # Set the selected text to upper case
"i" = "insert_mode" # Insert before selection
"a" = "append_mode" # Insert after selection (append)
"I" = "prepend_to_line" # Insert at the start of the line
"A" = "append_to_line" # Insert at the end of the line
"o" = "open_below" # Open new line below selection
"O" = "open_above" # Open new line above selection
"u" = "undo" # Undo change
"U" = "redo" # Redo change
"A-u" = "earlier" # Move backward in history
"A-U" = "later" # Move forward in history
"y" = "yank" # Yank selection
"p" = "paste_after" # Paste after selection
"P" = "paste_before" # Paste after selection
"\"" = "select_register" # Select a register to yank to or paste from
"gt" = "indent" # Indent selection
"lt" = "unindent" # Unindent selection
"=" = "format_selections" # Format selection (LSP)
"d" = "delete_selection" # Delete selection
"A-d" = "delete_selection_noyank" # Delete selection, without yanking
"c" = "change_selection" # Change selection (delete and enter insert mode)
"A-c" = "change_selection_noyank" # Change selection (delete and enter insert mode, without yanking)
"C-a" = "increment" # Increment object (number) under cursor
"C-x" = "decrement" # Decrement object (number) under cursor
# Shell
"|" = "shell_pipe" # Pipe each selection through shell command, replacing with output
"A-|" = "shell_pipe_to" # Pipe each selection into shell command, ignoring output
"!" = "shell_insert_output" # Run shell command, inserting output before each selection
"A-!" = "shell_append_output" # Run shell command, appending output after each selection
# Selection manipulation
"s" = "select_regex" # Select all regex matches inside selections
"S" = "split_selection" # Split selection into subselections on regex matches
"A-s" = "split_selection_on_newline" # Split selection on newlines
"&" = "align_selections" # Align selection in columns
"_" = "trim_selections" # Trim whitespace from the selection
"semicolon" = "collapse_selection" # Collapse selection onto a single cursor
"A-semicolon" = "flip_selections" # Flip selection cursor and anchor
"," = "keep_primary_selection" # Keep only the primary selection
"A-," = "remove_primary_selection" # Remove the primary selection
"C" = "copy_selection_on_next_line" # Copy selection onto the next line (Add cursor below)
"A-C" = "copy_selection_on_prev_line" # Copy selection onto the previous line (Add cursor above)
"(" = "rotate_selections_backward" # Rotate main selection backward
")" = "rotate_selections_forward" # Rotate main selection forward
"A-(" = "rotate_selection_contents_backward" # Rotate selection contents backward
"A-)" = "rotate_selection_contents_forward" # Rotate selection contents forward
"percent" = "select_all" # Select entire file
"x" = "extend_line" # Select current line, if already selected, extend to next line
"X" = "extend_to_line_bounds" # Extend selection to line bounds (line-wise selection)
"J" = "join_selections" # Join lines inside selection
"K" = "keep_selections" # Keep selections matching the regex
"A-K" = "remove_selections" # Remove selections matching the regex
"$" = "shell_keep_pipe" # Pipe each selection into shell command, keep selections where command returned 0
"C-c" = "toggle_comments" # Comment/uncomment the selections
# Search
"/" = "search" # Search for regex pattern
"?" = "rsearch" # Search for previous pattern
"n" = "search_next" # Select next search match
"N" = "search_prev" # Select previous search match
"*" = "search_selection" # Use current selection as the search pattern
# View mode
[keys.normal.z]
"z" = "align_view_center" # Vertically center the line
"c" = "align_view_center" # Vertically center the line
"t" = "align_view_top" # Align the line to the top of the screen
"b" = "align_view_bottom" # Align the line to the bottom of the screen
"m" = "align_view_middle" # Align the line to the middle of the screen (horizontally)
"down" = "scroll_down" # Scroll the view downwards
"j" = "scroll_down" # Scroll the view downwards
"up" = "scroll_up" # Scroll the view upwards
"k" = "scroll_up" # Scroll the view upwards
"f" = "page_down" # Move page down
"b" = "page_up" # Move page up
"d" = "half_page_down" # Move half page down
"u" = "half_page_up" # Move half page up
# Goto mode
[keys.normal.g]
"g" = "goto_file_start" # Go to the start of the file
"e" = "goto_last_line" # Go to the end of the file
"h" = "goto_line_start" # Go to files in the selection
"l" = "goto_line_end" # Go to the start of the line
"s" = "goto_first_nonwhitespace" # Go to the end of the line
"t" = "goto_window_top" # Go to first non-whitespace character of the line
"m" = "goto_window_center" # Go to the top of the screen
"b" = "goto_window_bottom" # Go to the middle of the screen
"d" = "goto_definition" # Go to the bottom of the screen
"y" = "goto_type_definition" # Go to definition (LSP)
"r" = "goto_reference" # Go to type definition (LSP)
"i" = "goto_implementation" # Go to references (LSP)
"a" = "goto_last_accessed_file" # Go to implementation (LSP)
"f" = "goto_file" # Go to the last accessed/alternate file
"n" = "goto_next_buffer" # Go to next buffer
"p" = "goto_previous_buffer" # Go to previous buffer
"." = "goto_last_modification" # Go to last modification in current file
# Match mode
[keys.normal.m]
"m" = "match_brackets" # Goto matching bracket (TS)
"s" = "surround_add" # Surround current selection with <char>
"r" = "surround_replace" # Replace surround character <from> with <to>
"d" = "surround_delete" # Delete surround character <char>
"a" = "select_textobject_around" # Select around textobject
"i" = "select_textobject_inner" # Select inside textobject
# Window mode
[keys.normal.C-w]
"w" = "rotate_view" # Switch to next window
"C-w" = "rotate_view" # Switch to next window
"v" = "vsplit" # Vertical right split
"C-v" = "vsplit" # Vertical right split
"s" = "hsplit" # Horizontal bottom split
"C-s" = "hsplit" # Horizontal bottom split
"left" = "jump_view_left" # Move to left split
"h" = "jump_view_left" # Move to left split
"C-h" = "jump_view_left" # Move to left split
"down" = "jump_view_down" # Move to split below
"j" = "jump_view_down" # Move to split below
"C-j" = "jump_view_down" # Move to split below
"up" = "jump_view_up" # Move to split above
"k" = "jump_view_up" # Move to split above
"C-k" = "jump_view_up" # Move to split above
"right" = "jump_view_right" # Move to right split
"l" = "jump_view_right" # Move to right split
"C-l" = "jump_view_right" # Move to right split
"f" = "goto_file" # Go to files in the selection in horizontal splits
"F" = "goto_file" # Go to files in the selection in vertical splits
"q" = "wclose" # Close current window
"C-q" = "wclose" # Close current window
"o" = "wonly" # Only keep the current window closing all the others
"C-o" = "wonly" # Only keep the current window closing all the others
# Space mode
[keys.normal.space]
"f" = "file_picker" # Open file picker
"b" = "buffer_picker" # Open buffer picker
"k" = "hover" # Show documentation for item under cursor in a popup (LSP)
"s" = "symbol_picker" # Open document symbol picker (LSP)
"a" = "code_action" # Apply code action (LSP)
"'" = "last_picker" # Open last fuzzy picker
"p" = "paste_clipboard_after" # Paste system clipboard before selections
"P" = "paste_clipboard_before" # Paste system clipboard after selections
"y" = "yank_joined_to_clipboard" # Join and yank selections to clipboard
"Y" = "yank_main_selection_to_clipboard" # Yank main selection to clipboard
"R" = "replace_selections_with_clipboard" # Replace selections by clipboard contents
"/" = "global_search" # Global search in workspace folder
"S" = "workspace_symbol_picker" # Open workspace symbol picker (LSP)
"r" = "rename_symbol" # Rename symbol (LSP)
# Unimpaired
[keys.normal."["]
"d" = "goto_prev_diag" # Go to previous diagnostic (LSP)
"D" = "goto_first_diag" # Go to first diagnostic in document (LSP)
"space" = "add_newline_above" # Add newline above
[keys.normal."]"]
"d" = "goto_next_diag" # Go to next diagnostic (LSP)
"D" = "goto_last_diag" # Go to last diagnostic in document (LSP)
"space" = "add_newline_below" # Add newline below |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, no, there are way too many options, especially keybinds, so it's very inconvenient to copy&paste from the docs to change them. Before I found this issue I more or less had to do the same thing — convert the docs into a toml document then change the values
How is this worse vs. the same situation now, but instead of using the auto-generated v0.5 config the user does the same work by generating v0.5 config from the docs? |
Beta Was this translation helpful? Give feedback.
-
in my configs I go a bit further and add the defaults in the comments, so whenever I'm playing with various values I always know how to reset, so in your example this would something like this: [editor]
# key = value # [default value] Comment
# scrolloff = 3 # [3] Number of lines of padding around the edge of the screen when scrolling
# mouse = true # [true] Enable mouse mode
# "line-number" = "absolute" # [absolute],relative Line number display |
Beta Was this translation helpful? Give feedback.
-
@eugenesvk TOML does not allow line breaks in inline tables, so the following, for example, is a syntax error: "[" = {
"d" = "goto_prev_diag", # Go to previous diagnostic (LSP)
"D" = "goto_first_diag", # Go to first diagnostic in document (LSP)
"space" = "add_newline_above" # Add newline above
} |
Beta Was this translation helpful? Give feedback.
-
Yeah, I know, but I just reformatted an existing example to show the benefits of proper alignment [keys.normal."["] # no commas needed below
"d" = "goto_prev_diag" # Go to previous diagnostic (**LSP**)
"D" = "goto_first_diag" # Go to first diagnostic in document (**LSP**) |
Beta Was this translation helpful? Give feedback.
-
There is now a A somewhat ugly but functional way to populate the default config would be just a comment with a link to the config docs. I'm not a huge fan of the commented-out-all-options style - it feels overwhelming to me, especially the keymap part. |
Beta Was this translation helpful? Give feedback.
-
maybe there can be an entry in the config file (which helix sets and checks) with the version number of the currently running hx version, and if parsing or config errors occur the user will be informed that he has to update his config. |
Beta Was this translation helpful? Give feedback.
-
What about a |
Beta Was this translation helpful? Give feedback.
-
@NNBnh @kajuburfi Thanks to you two nonetheless, it was a very good starting point. I feel like a correct and readable default config could and should be generated from Maybe the accepted syntax for config should accept newlines in tables (non breaking) I'd be happy to help on this, having a nice time with helix and starting from an existing configuration file was a great help to feel at home. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Many newcomer feel lost when trying to find a "setting panel" on a minimal software then realize that they have to open and manually edit a config file. Although me and other minimalist user prefer this config method, other may wish to have all setting option layout in front of them so they could just change the options values. That why many recent
cli
rust tool auto generate (or have an option flag) a config file template will all option inside it. This will be very useful not just to newcomer but also to a pro who is interest and want to start try out quickly. Here is my attempt:=== Read full config ===
Beta Was this translation helpful? Give feedback.
All reactions