Last active
December 5, 2025 16:25
-
-
Save sepisoad/3192d67162d5ab3b923613228976110a to your computer and use it in GitHub Desktop.
my focus editor config that mimics emacs key bindings - MACOS
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: minimized # 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]] | |
| [editors] | |
| Ctrl-X C quit | |
| Ctrl-X Ctrl-C quit | |
| 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 | |
| # Ctrl-Meta-. add_cursors_to_line_ends | |
| # Ctrl-Meta-, add_cursors_to_line_starts | |
| 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 | |
| Alt-] indent | |
| Alt-[ 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 | |
| Meta-P scroll_viewport_up # scroll_viewport_up_fast | |
| Meta-N scroll_viewport_down # scroll_viewport_down_fast | |
| Meta-B scroll_viewport_left | |
| Meta-F 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 | |
| Enter break_line | |
| Ctrl-Enter new_line_below_without_breaking | |
| Ctrl-Shift-Enter new_line_above_without_breaking | |
| 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 | |
| Alt-N create_new_file | |
| Alt-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-Meta-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] | |
| Alt-X show_commands | |
| Ctrl-Meta-P switch_to_project | |
| Ctrl-S search_in_buffer | |
| Meta-S search_in_buffer_dropdown_mode | |
| Alt-S search_in_project | |
| Ctrl-X F open_file_by_name | |
| Ctrl-X Ctrl-F navigate_to_file | |
| Ctrl-X Shift-F navigate_to_file_from_root | |
| Ctrl-X B switch_between_open_files | |
| Ctrl-X Ctrl-B switch_between_open_files | |
| Ctrl-L go_to_line | |
| Alt-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 | |
| Escape escape # combines close_dialog and remove_additional_cursors | |
| 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 | |
| Ctrl-{Shift}-P move_up | |
| {Shift}-ArrowUp move_up | |
| {Shift}-Alt-ArrowUp move_up_fast | |
| {Shift}-PageUp move_up_one_page | |
| Ctrl-{Shift}-N move_down | |
| {Shift}-ArrowDown move_down | |
| {Shift}-Alt-ArrowDown move_down_fast | |
| {Shift}-PageDown move_down_one_page | |
| Ctrl-{Shift}-F move_right | |
| {Shift}-ArrowRight move_right | |
| {Shift}-Alt-ArrowRight move_right_by_character_type | |
| Alt-{Shift}-F move_right_through_word_throttled | |
| Ctrl-{Shift}-B move_left | |
| {Shift}-ArrowLeft move_left | |
| {Shift}-Alt-ArrowLeft move_left_by_character_type | |
| Alt-{Shift}-B move_left_through_word_throttled | |
| # {Shift}-Alt-ArrowLeft move_left_through_word_throttled | |
| # {Shift}-Alt-ArrowLeft move_left_through_word | |
| # {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 | |
| Ctrl-C L choose_language | |
| [[style]] | |
| theme: default | |
| [fonts] | |
| font: /Users/s.aryani/Library/Fonts/SourceCodePro-Regular.ttf | |
| font_ui: /Users/s.aryani/Library/Fonts/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