Last active
December 5, 2025 16:25
-
-
Save sepisoad/92a35cdec7bcd0c465888754c3ec5648 to your computer and use it in GitHub Desktop.
my focus editor config that mimics emacs key bindings - LINUX
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [25] # Version number. Do not delete. | |
| [[workspace]] | |
| [ignore] | |
| .svn | |
| .git | |
| [allow] | |
| [file associations] | |
| # Optional file associations in the format `<wildcard1> <wildcard2> ... : <language>` | |
| # Example: | |
| *.inc *.h *.c : c | |
| # todo.txt : todo | |
| [[settings]] | |
| maximize_on_start: false | |
| open_on_the_biggest_monitor: false | |
| cursor_as_block: true | |
| cursor_blink_time_in_seconds: 0 | |
| highlight_selection_occurrences: true | |
| highlight_line_with_cursor: false | |
| highlight_matching_brackets: false | |
| show_paste_effect: true | |
| double_shift_to_search_in_workspace: false | |
| strip_trailing_whitespace_on_save: all # options: all, except_lines_with_cursor, disabled | |
| smooth_scrolling: true | |
| scroll_beyond_last_line: true | |
| line_height_scale_percent: 85 #100 | |
| max_editor_width: -1 | |
| can_cancel_go_to_line: true | |
| copy_whole_line_without_selection: false | |
| line_wrap_is_on_by_default: false | |
| show_line_numbers: false | |
| show_ruler_at_column: 0 | |
| colored_titlebar: true # Windows 11+ only | |
| dark_titlebar: false # Windows only | |
| hide_mouse_when_typing: true | |
| draw_indent_guides: false | |
| auto_surround_with_brackets_and_quotes: true | |
| auto_close_brackets: false | |
| prefer_system_file_dialogs: false # Windows only | |
| persist_local_search_results: false # if true, search results will stay highlighted and you have to dismiss them using the `escape` action | |
| load_most_recent_project_on_start: false | |
| projects_sorting_order: most_recent_first | |
| insert_final_newline_on_save true | |
| build_panel_stays_in_one_place: false # if false, the build panel will flip to the inactive pane in two pane layouts | |
| build_panel_line_wrap_always_on: true | |
| build_panel_width_percent: 100 | |
| build_panel_height_percent: 30 | |
| save_all_file_backed_buffers_on_build: false | |
| save_current_buffer_on_build: true | |
| color_preview_popup: disabled # options: enabled, minimized, disabled | |
| search_is_case_sensitive_when_uppercase_present: true | |
| detect_indentation: true | |
| indent_using: spaces | |
| tab_size: 2 | |
| status_bar_position: bottom # options: top, bottom | |
| status_bar_show_cursors_off_screen: false | |
| status_bar_show_line_col: false | |
| status_bar_show_indentation: false | |
| status_bar_show_selected_text_length: false | |
| show_pane_numbers true | |
| show_scrollbar_marks: true | |
| scrollbar_width_scale: 1.0 | |
| scrollbar_min_opacity: 0.0 # if you want the scrollbar to be always visible, set this to 1.0 | |
| scrollbar_max_opacity: 1.0 | |
| scrollbar_fade_in_sensitivity: 10.0 # controls when the scrollbar appears as the mouse pointer gets close | |
| scrollbar_fade_out_delay_seconds: 1.0 # how long the scrollbar stays visible after scrolling | |
| active_pane_border_width: 2.0 # set the width to 0.0 to disable | |
| inactive_pane_dim_overlay_opacity: 0.2 # controls how dim the inactive panes should be | |
| comment_highlight_words1: TODO, TODO:, NOTE, NOTE: # a comma-separated list of words to highlight within comments using the color `code_comment_highlight1` | |
| comment_highlight_words2: BUG # words to highlight using `code_comment_highlight2` | |
| comment_highlight_words3: # words to highlight using `code_comment_highlight3` | |
| comment_highlight_words4: HACK # words to highlight using `code_comment_highlight4` | |
| enable_temporary_editors: true # when enabled, any editors are opened temporarily until an edit, a save, or a keep_editor command is used. Any newly opened editor will replace the existing temporary editor | |
| cursor_position_after_jump: 0.5 # controls where the cursor ends up relatively to the viewport after jumping to a search result or an error. 0.0 is top of the screen, 1.0 - bottom, 0.5 - center | |
| closing_last_editor_in_pane_should_close_pane: true | |
| closing_last_editor_should_exit_program: false | |
| line_endings: preserve # options: lf, crlf, preserve | |
| # NOTE: some settings can be specified for a subset of files, based on their language or a wildcard, | |
| # for example: | |
| # [file: <wildcard1>, <wildcard2>, ...] | |
| # [lang: golang, cpp, c, ...] | |
| [file: *.md, *.txt] | |
| line_wrap_is_on_by_default: true | |
| draw_indent_guides: false | |
| [[keymap]] | |
| # - The first matching combination will be used, so order matters | |
| [editors] # <- this means that the following key combos will apply only when editing text | |
| # Key combination Action | |
| Ctrl-. select_word_or_create_another_cursor | |
| Ctrl-, revert_select_word_or_create_another_cursor | |
| Ctrl-Shift-> move_selection_to_next_word | |
| Ctrl-Meta-Enter select_all_occurrences | |
| Meta-D duplicate_lines | |
| Ctrl-Alt-Meta-ArrowUp move_selected_lines_up | |
| Ctrl-Alt-Meta-ArrowDown move_selected_lines_down | |
| Ctrl-J join_lines | |
| Ctrl-Shift-J join_lines_no_spaces_in_between | |
| Ctrl-U change_case_cycle | |
| Tab indent_or_go_to_next_tabstop | |
| Shift-Tab unindent | |
| # Ctrl-] indent | |
| # Ctrl-[ unindent | |
| Ctrl-X S save | |
| Ctrl-X Ctrl-S save | |
| Ctrl-X {Shift}-S save_as | |
| Ctrl-X {Shift}-Ctrl-S save_as | |
| Ctrl-[ cursor_go_back | |
| Ctrl-] cursor_go_forward | |
| Meta-[ go_to_previous_buffer | |
| Meta-] go_to_next_buffer | |
| Ctrl-X ; toggle_comment | |
| Ctrl-X Ctrl-; toggle_comment | |
| Meta-Enter select_line | |
| # Alt-K scroll_viewport_up | |
| # Alt-E scroll_viewport_up_fast # for some reason Alt-U didn't reach the window at all, so using Alt-E instead | |
| # Alt-PageUp scroll_viewport_up_fast | |
| # Alt-J scroll_viewport_down | |
| # Alt-D scroll_viewport_down_fast | |
| # Alt-PageDown scroll_viewport_down_fast | |
| # Alt-H scroll_viewport_left | |
| # Alt-L scroll_viewport_right | |
| Ctrl-Meta-ArrowUp scroll_viewport_up_fast | |
| Ctrl-Meta-ArrowDown scroll_viewport_down_fast | |
| Ctrl-Meta-ArrowLeft scroll_viewport_left | |
| Ctrl-Meta-ArrowRight scroll_viewport_right | |
| Meta-L move_cursor_to_viewport_center | |
| {Shift}-Alt-ArrowUp move_up_to_empty_line | |
| {Shift}-Alt-ArrowDown move_down_to_empty_line | |
| # Alt-Shift-I add_cursors_to_line_ends | |
| # Alt-Shift-Ctrl-I add_cursors_to_line_starts | |
| Enter break_line | |
| Ctrl-Enter new_line_below_without_breaking | |
| Ctrl-Shift-Enter new_line_above_without_breaking | |
| # Ctrl-Alt-S ArrowLeft move_editor_left | |
| # Ctrl-Alt-S ArrowRight move_editor_right | |
| # Ctrl-Alt-S ArrowUp move_editor_top | |
| # Ctrl-Alt-S ArrowDown move_editor_bottom | |
| # Ctrl-Alt-X ArrowLeft split_left | |
| # Ctrl-Alt-X ArrowRight split_right | |
| # Ctrl-Alt-X ArrowUp split_top | |
| # Ctrl-Alt-X ArrowDown split_bottom | |
| # Ctrl-Alt-D ArrowLeft duplicate_editor_left | |
| # Ctrl-Alt-D ArrowRight duplicate_editor_right | |
| # Ctrl-Alt-D ArrowUp duplicate_editor_top | |
| # Ctrl-Alt-D ArrowDown duplicate_editor_bottom | |
| Ctrl-1 switch_to_pane_1 | |
| Ctrl-2 switch_to_pane_2 | |
| Ctrl-3 switch_to_pane_3 | |
| Ctrl-4 switch_to_pane_4 | |
| Ctrl-5 switch_to_pane_5 | |
| Ctrl-6 switch_to_pane_6 | |
| Ctrl-7 switch_to_pane_7 | |
| Ctrl-8 switch_to_pane_8 | |
| Ctrl-9 switch_to_pane_9 | |
| Ctrl-X 3 duplicate_editor_right | |
| Ctrl-X 2 duplicate_editor_bottom | |
| Ctrl-Shift-T reopen_closed_editor | |
| Ctrl-N create_new_file | |
| Ctrl-Shift-N create_new_file_in_side_pane | |
| Ctrl-Shift-ArrowUp create_cursor_above | |
| Ctrl-Shift-ArrowDown create_cursor_below | |
| Meta-A align_cursors | |
| Ctrl-T W toggle_line_wrap | |
| Ctrl-T L toggle_line_numbers | |
| Ctrl-T I toggle_indent_guides | |
| # Ctrl-Shift-Alt-N open_another_editor_instance | |
| [open file dialog] | |
| Shift-Enter open_entry_in_explorer | |
| Tab open_directory | |
| Backspace pop_directory | |
| [search dialog] | |
| Shift-Enter move_up # an alternative way to move | |
| Meta-C toggle_case_sensitive | |
| Meta-H toggle_whole_word | |
| Meta-R toggle_regex_search | |
| [common] | |
| # Common key combos may be used as a fallback if they are not defined in more specific sections. | |
| # For example, if "move_up" is not defined in [editors], the one in the [common] section will be matched. | |
| # Alt-X show_commands | |
| Ctrl-Shift-P show_commands | |
| Ctrl-Meta-P switch_to_project | |
| Ctrl-S search_in_buffer | |
| Ctrl-F search_in_buffer_dropdown_mode | |
| Ctrl-Shift-S search_in_project | |
| Ctrl-P open_file_by_name | |
| Ctrl-O navigate_to_file | |
| Ctrl-Shift-O navigate_to_file_from_root | |
| Ctrl-Tab switch_between_open_files | |
| Ctrl-L go_to_line | |
| Meta-W copy | |
| Ctrl-W cut | |
| Ctrl-Y paste | |
| Ctrl-/ undo | |
| Ctrl-{Shift}-? redo | |
| Ctrl-= select_word | |
| Ctrl-X H select_all | |
| Ctrl-K cut_to_end_of_line | |
| Ctrl-Shift-Delete delete_to_end_of_line | |
| Ctrl-Shift-Backspace delete_to_start_of_line | |
| Meta-K close_editor | |
| Ctrl-X 0 close_pane | |
| Ctrl-X 1 close_other_panes | |
| # Ctrl-Alt-W ArrowLeft close_left_pane | |
| # Ctrl-Alt-W ArrowRight close_right_pane | |
| # Ctrl-Alt-W ArrowUp close_top_pane | |
| # Ctrl-Alt-W ArrowDown close_bottom_pane | |
| Escape escape # combines close_dialog and remove_additional_cursors | |
| # ??? | |
| # Ctrl-Minus toggle_expand | |
| Ctrl-Escape toggle_build_panel | |
| # F11 toggle_fullscreen | |
| Enter open_entry | |
| Ctrl-Enter open_entry_in_side_pane | |
| # Ctrl-Alt-Shift-ArrowLeft switch_to_left_pane | |
| # Ctrl-Alt-Shift-ArrowRight switch_to_right_pane | |
| # Ctrl-Alt-Shift-ArrowUp switch_to_top_pane | |
| # Ctrl-Alt-Shift-ArrowDown switch_to_bottom_pane | |
| Ctrl-ArrowLeft switch_to_left_pane | |
| Ctrl-ArrowRight switch_to_right_pane | |
| Ctrl-ArrowUp switch_to_top_pane | |
| Ctrl-ArrowDown switch_to_bottom_pane | |
| # ??? | |
| Ctrl-, switch_to_side_pane | |
| Tab focus_next_ui_element | |
| Shift-Tab focus_previous_ui_element | |
| {Shift}-ArrowUp move_up | |
| {Shift}-Alt-ArrowUp move_up_fast | |
| {Shift}-PageUp move_up_one_page | |
| {Shift}-ArrowDown move_down | |
| {Shift}-Alt-ArrowDown move_down_fast | |
| {Shift}-PageDown move_down_one_page | |
| {Shift}-ArrowLeft move_left | |
| {Shift}-Alt-ArrowLeft move_left_by_character_type | |
| # {Shift}-Alt-ArrowLeft move_left_through_word_throttled | |
| # {Shift}-Alt-ArrowLeft move_left_through_word | |
| {Shift}-ArrowRight move_right | |
| {Shift}-Alt-ArrowRight move_right_by_character_type | |
| # {Shift}-Ctrl-ArrowRight move_right_through_word_throttled | |
| # {Shift}-Meta-ArrowRight move_right_through_word | |
| {Shift}-Ctrl-A jump_to_line_start | |
| {Shift}-Ctrl-E jump_to_line_end | |
| {Shift}-Meta-ArrowUp jump_to_file_start | |
| {Shift}-Meta-ArrowDown jump_to_file_end | |
| # ??? | |
| {Shift}-Ctrl-M jump_to_matching_bracket | |
| {Shift}-Backspace delete_left_char | |
| {Shift}-Delete delete_right_char | |
| {Shift}-Alt-Backspace delete_left_by_character_type | |
| {Shift}-Alt-Delete delete_right_by_character_type | |
| {Shift}-Meta-Backspace delete_left_through_word | |
| {Shift}-Meta-Delete delete_right_through_word | |
| Ctrl-Backspace delete_left_by_character_type_fast | |
| Ctrl-Delete delete_right_by_character_type_fast | |
| Meta-= increase_font_size | |
| Meta-Minus decrease_font_size | |
| Meta-0 reset_font_size_to_default | |
| # Ctrl-MouseMiddle reset_font_size_to_default | |
| F8 go_to_next_build_error | |
| Ctrl-F8 go_to_next_build_error_in_side_pane | |
| Shift-F8 go_to_previous_build_error | |
| Shift-Ctrl-F8 go_to_previous_build_error_in_side_pane | |
| [[style]] | |
| theme: default | |
| [fonts] | |
| font: /usr/share/fonts/downloaded/SourceCodePro-Regular.ttf | |
| font_ui: /usr/share/fonts/downloaded/SourceCodePro-Regular.ttf | |
| font_ui_bold: default | |
| font_size: 15 | |
| font_ui_size: 14 | |
| anti_aliasing: lcd # options: lcd, normal | |
| hinting: true | |
| [colors] | |
| background0: 15212AFF | |
| background1: 10191FFF | |
| background2: 18262FFF | |
| background3: 1A2831FF | |
| background4: 21333FFF | |
| # NOTE: region_scope colors only work for Jai at the moment | |
| region_scope_export: 15212AFF | |
| region_scope_file: 131C22FF | |
| region_scope_module: 1A2831FF | |
| region_header: 1A5152FF | |
| region_success: 226022FF | |
| region_warning: 986032FF | |
| region_error: 772222FF | |
| region_heredoc: 090e12FF | |
| selection_active: 1C4449FF | |
| selection_inactive: 1C44497F | |
| selection_highlight: FCEDFC26 | |
| search_result_active: 8E772EFF | |
| search_result_inactive: FCEDFC26 | |
| scrollbar: 33CCCC19 | |
| scrollbar_hover: 33CCCC4C | |
| scrollbar_background: 10191F4C | |
| cursor: 26B2B2FF | |
| cursor_inactive: 196666FF | |
| paste_animation: 1C4449FF | |
| splitter: 10191FFF | |
| splitter_hover: 1C4449FF | |
| ruler: FCEDFC26 | |
| indent_guide: FCEDFC26 | |
| letter_highlight: 599999FF | |
| list_cursor_lite: 33CCCC19 | |
| list_cursor: 33CCCC4C | |
| shadow_dark: 0E161C7F | |
| shadow_transparent: 0E161C00 | |
| text_input_label: 3B4450FF | |
| char_under_cursor: FFFFFFFF | |
| bracket_highlight: E8FCFE30 | |
| active_pane_border: 19666688 | |
| inactive_pane_dim_overlay: 10191FFF | |
| ui_default: BFC9DBFF | |
| ui_dim: 87919DFF | |
| ui_neutral: 4C4C4CFF | |
| ui_warning: F8AD34FF | |
| ui_warning_dim: 986032FF | |
| ui_error: 772222FF | |
| ui_error_bright: FF0000FF | |
| ui_success: 227722FF | |
| build_panel_background: 1A2831FF | |
| build_panel_scrollbar: 33CCCC19 | |
| build_panel_scrollbar_hover: 33CCCC4C | |
| build_panel_scrollbar_background: 10191F4C | |
| build_panel_title_bar: 1C303AFF | |
| code_default: BFC9DBFF | |
| code_invalid: FF0000FF | |
| code_string_literal: D4BC7DFF | |
| code_multiline_string: D4BC7DFF | |
| code_raw_string: D4BC7DFF | |
| code_char_literal: D4BC7DFF | |
| code_identifier: BFC9DBFF | |
| code_note: E0AD82FF | |
| code_number: D699B5FF | |
| code_error: FF0000FF | |
| code_warning: E4D97DFF | |
| code_highlight: E4D97DFF | |
| code_comment: 87919DFF | |
| code_multiline_comment: 87919DFF | |
| code_operation: E0AD82FF | |
| code_punctuation: BFC9DBFF | |
| code_keyword: E67D74FF | |
| code_type: 82AAA3FF | |
| code_value: D699B5FF | |
| code_modifier: E67D74FF | |
| code_attribute: E67D74FF | |
| code_enum_variant: BFC9DBFF | |
| code_macro: E0AD82FF | |
| code_function: D0C5A9FF | |
| code_builtin_variable: D699B5FF | |
| code_builtin_function: E0AD82FF | |
| code_builtin_exception: E0AD82FF | |
| code_directive: E67D74FF | |
| code_directive_modifier: E67D74FF | |
| code_header1: E67D74FF | |
| code_header2: E0AD82FF | |
| code_header3: E0AD82FF | |
| code_header4: E0AD82FF | |
| code_header5: E0AD82FF | |
| code_header6: E0AD82FF | |
| code_comment_highlight1: E67D74FF | |
| code_comment_highlight2: FF0000FF | |
| code_comment_highlight3: E0AD82FF | |
| code_comment_highlight4: D699B5FF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment