Skip to content

Instantly share code, notes, and snippets.

@sepisoad
Last active December 5, 2025 16:25
Show Gist options
  • Select an option

  • Save sepisoad/3192d67162d5ab3b923613228976110a to your computer and use it in GitHub Desktop.

Select an option

Save sepisoad/3192d67162d5ab3b923613228976110a to your computer and use it in GitHub Desktop.
my focus editor config that mimics emacs key bindings - MACOS
[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