Skip to content

Add :default command that generate and open a default config file #1210

@NNBnh

Description

@NNBnh

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:

  • TODO: Later on we could add explanation comment to every option.
=== Read full config ===
[editor]

"scrolloff" = 3
"mouse" = true
"middle-click-paste" = true
"scroll-lines" = 3
"shell" = ["sh", "-c"]
"line-number" = "absolute"
"smart-case" = true
"auto-pairs" = true
"auto-completion" = true
"idle-timeout" = 400
"completion-trigger-len" = 2
"auto-info" = true

[editor.filepicker]

"hidden" = true
"parents" = true
"ignore" = true
"git-ignore" = true
"git-global" = true
"git-exclude" = true


[keys.normal]

# Movement
"left" = "move_char_left"
"down" = "move_line_down"
"up" = "move_line_up"
"right" = "move_char_right"
"h" = "move_char_left"
"j" = "move_line_down"
"k" = "move_line_up"
"l" = "move_char_right"
"w" = "move_next_word_start"
"b" = "move_prev_word_start"
"e" = "move_next_word_end"
"W" = "move_next_long_word_start"
"B" = "move_prev_long_word_start"
"E" = "move_next_long_word_end"
"t" = "find_till_char"
"f" = "find_next_char"
"T" = "till_prev_char"
"F" = "find_prev_char"
"A-." = "repeat_last_motion"
"home" = "goto_line_start"
"end" = "goto_line_end"
"pageup" = "page_up"
"pagedown" = "page_down"
"C-u" = "half_page_up"
"C-d" = "half_page_down"
"C-i" = "jump_forward"
"C-o" = "jump_backward"
"v" = "select_mode"
":" = "command_mode"

# Changes
"r" = "replace"
"R" = "replace_with_yanked"
"~" = "switch_case"
"`" = "switch_to_lowercase"
"A-`" = "switch_to_uppercase"
"i" = "insert_mode"
"a" = "append_mode"
"I" = "prepend_to_line"
"A" = "append_to_line"
"o" = "open_below"
"O" = "open_above"
"u" = "undo"
"U" = "redo"
"A-u" = "earlier"
"A-U" = "later"
"y" = "yank"
"p" = "paste_after"
"P" = "paste_before"
"\"" = "select_register"
"gt" = "indent"
"lt" = "unindent"
"=" = "format_selections"
"d" = "delete_selection"
"A-d" = "delete_selection_noyank"
"c" = "change_selection"
"A-c" = "change_selection_noyank"
"C-a" = "increment"
"C-x" = "decrement"

# Shell
"|" = "shell_pipe"
"A-|" = "shell_pipe_to"
"!" = "shell_insert_output"
"A-!" = "shell_append_output"

# Selection manipulation
"s" = "select_regex"
"S" = "split_selection"
"A-s" = "split_selection_on_newline"
"&" = "align_selections"
"_" = "trim_selections"
"semicolon" = "collapse_selection"
"A-semicolon" = "flip_selections"
"," = "keep_primary_selection"
"A-," = "remove_primary_selection"
"C" = "copy_selection_on_next_line"
"A-C" = "copy_selection_on_prev_line"
"(" = "rotate_selections_backward"
")" = "rotate_selections_forward"
"A-(" = "rotate_selection_contents_backward"
"A-)" = "rotate_selection_contents_forward"
"percent" = "select_all"
"x" = "extend_line"
"X" = "extend_to_line_bounds"
"J" = "join_selections"
"K" = "keep_selections"
"A-K" = "remove_selections"
"$" = "shell_keep_pipe"
"C-c" = "toggle_comments"

# Search
"/" = "search"
"?" = "rsearch"
"n" = "search_next"
"N" = "search_prev"
"*" = "search_selection"

# View mode
"z" = { "z" = "align_view_center", "c" = "align_view_center", "t" = "align_view_top", "b" = "align_view_bottom", "m" = "align_view_middle", "down" = "scroll_down", "j" = "scroll_down", "up" = "scroll_up", "k" = "scroll_up", "f" = "page_down", "b" = "page_up", "d" = "half_page_down", "u" = "half_page_up" }

# Goto mode
"g" = { "g" = "goto_file_start", "e" = "goto_last_line", "h" = "goto_line_start", "l" = "goto_line_end", "s" = "goto_first_nonwhitespace", "t" = "goto_window_top", "m" = "goto_window_middle", "b" = "goto_window_bottom", "d" = "goto_definition", "y" = "goto_type_definition", "r" = "goto_reference", "i" = "goto_implementation", "a" = "goto_last_accessed_file", "f" = "goto_file", "n" = "goto_next_buffer", "p" = "goto_previous_buffer", "." = "goto_last_modification" }

# Match mode
"m" = { "m" = "match_brackets", "s" = "surround_add", "r" = "surround_replace", "d" = "surround_delete", "a" = "select_textobject_around", "i" = "select_textobject_inner" }

# Window mode
"C-w" = { "w" = "rotate_view", "C-w" = "rotate_view", "v" = "vsplit", "C-v" = "vsplit", "s" = "hsplit", "C-s" = "hsplit", "left" = "jump_view_left", "h" = "jump_view_left", "C-h" = "jump_view_left", "down" = "jump_view_down", "j" = "jump_view_down", "C-j" = "jump_view_down", "up" = "jump_view_up", "k" = "jump_view_up", "C-k" = "jump_view_up", "right" = "jump_view_right", "l" = "jump_view_right", "C-l" = "jump_view_right", "f" = "goto_file", "F" = "goto_file",, "q" = "wclose", "C-q" = "wclose", "o" = "wonly", "C-o" = "wonly" }

# Space mode
"space" = { "f" = "file_picker", "b" = "buffer_picker", "k" = "hover", "s" = "symbol_picker", "a" = "code_action", "'" = "last_picker", "p" = "paste_clipboard_after", "P" = "paste_clipboard_before", "y" = "yank_joined_to_clipboard", "Y" = "yank_main_selection_to_clipboard", "R" = "replace_selections_with_clipboard", "/" = "global_search", "S" = "workspace_symbol_picker", "r" = "rename_symbol"}

# Unimpaired
"[" = { "d" = "goto_prev_diag", "D" = "goto_first_diag", "space" = "add_newline_above" }
"]" = { "d" = "goto_next_diag", "D" = "goto_last_diag", "space" = "add_newline_below" }

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-helix-termArea: Helix term improvementsC-enhancementCategory: Improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions