diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..0662841
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,22 @@
+# Do not include the following content from *.sublime-package files
+
+# Git & Github
+.github/ export-ignore
+.gitattributes export-ignore
+.gitignore export-ignore
+
+# Documentation
+doc/ export-ignore
+sample/ export-ignore
+Contributing.md export-ignore
+ToDo.md export-ignore
+
+# Tests
+test/ export-ignore
+\[test\]/ export-ignore
+
+# Settings
+.editorconfig export-ignore
+
+# Source files
+src/ export-ignore
diff --git a/.gitignore b/.gitignore
index e7bfc83..81f41e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,65 @@
+# templates github.com/github/gitignore
# Sublime Text files
ace-jump.sublime-project
ace-jump.sublime-workspace
+# vim
+*~
+.*.swp
+# (macOS)
+.DS_Store
+.AppleDouble
+.LSOverride
+# (macOS)Icon must end with two \r
+Icon
-# To do
+# (macOS)Thumbnails
+._*
+# (macOS)Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+
+# (macOS)Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# (Windows) Thumbnails
+Thumbs.db
+
+# (Windows) Files build by Visual Studio
+*.obj
+*.exe
+*.pdb
+*.user
+*.aps
+*.pch
+*.vspscc
+*_i.c
+*_p.c
+*.ncb
+*.suo
+*.tlb
+*.tlh
+*.bak
+*.cache
+*.ilk
+*.log
+*.dll
+*.lib
+*.sbr
+
+# project's built/temp docs
+Changelog.html
+ReadMe.html
+messages/*.html
+ToDo.html
+ToDo.md
+# test folder
+\[test\]
*.TODO
diff --git a/.python-version b/.python-version
new file mode 100644
index 0000000..cc1923a
--- /dev/null
+++ b/.python-version
@@ -0,0 +1 @@
+3.8
diff --git a/AceJump.sublime-settings b/AceJump.sublime-settings
index 20b8501..a31b760 100644
--- a/AceJump.sublime-settings
+++ b/AceJump.sublime-settings
@@ -1,54 +1,41 @@
{
- // Characters to be used as labels in order they'll appear
- "labels": "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
+// Characters to be used as labels in order they'll appear
+"labels" : "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
+"labels_scope" : "invalid" , // Syntax highlighting scope for the labels
+"search_case_sensitivity" : true , // Toggles case sensitive search in word and character modes.
+"save_files_after_jump" : false , // Saves all the files aceJump tried to parse. This setting will reset any linter warnings you might see during jump. By saving all effected files
+"jump_behind_last_characters" : false , // If turned on, character mode will jump after a character it it's the last character on a line.
- // Syntax highlighting scope for the labels
- "labels_scope": "invalid",
-
- // Toggles case sensitive search in word and character modes.
- "search_case_sensitivity": true,
-
- // Saves all the files aceJump tried to parse.
- // This setting will reset any linter warnings you might see during jump
- // By saving all effected files
- "save_files_after_jump": false,
-
- // If turned on, character mode will jump after a character
- // it it's the last character on a line.
- "jump_behind_last_characters": false,
-
- // View settings that should be respected when switching the syntax
- // highlighting mode. In case a plugin you use adds a new
- // setting to a view, you probably want to add it to this list.
- "view_settings": [
- "auto_indent",
- "tab_size",
- "translate_tabs_to_spaces",
- "use_tab_stops",
- "trim_automatic_white_space",
- "detect_indentation",
- "draw_white_space",
- "trim_trailing_white_space_on_save",
- "always_show_minimap_viewport",
- "color_scheme",
- "font_face",
- "font_options",
- "gutter",
- "rulers",
- "draw_minimap_border",
- "highlight_line",
- "line_padding_top",
- "line_padding_bottom",
- "scroll_past_end",
- "line_numbers",
- "word_wrap",
- "wrap_width",
- "indent_subsequent_lines",
- "draw_centered",
- "match_brackets",
- "match_brackets_content",
- "match_brackets_square",
- "match_brackets_braces",
- "match_brackets_angle",
- ]
+// View settings that should be respected when switching the syntax highlighting mode. In case a plugin you use adds a new setting to a view, you probably want to add it to this list.
+"view_settings": [
+ "auto_indent",
+ "tab_size",
+ "translate_tabs_to_spaces",
+ "use_tab_stops",
+ "trim_automatic_white_space",
+ "detect_indentation",
+ "draw_white_space",
+ "trim_trailing_white_space_on_save",
+ "always_show_minimap_viewport",
+ "color_scheme",
+ "font_face",
+ "font_options",
+ "gutter",
+ "rulers",
+ "draw_minimap_border",
+ "highlight_line",
+ "line_padding_top",
+ "line_padding_bottom",
+ "scroll_past_end",
+ "line_numbers",
+ "word_wrap",
+ "wrap_width",
+ "indent_subsequent_lines",
+ "draw_centered",
+ "match_brackets",
+ "match_brackets_content",
+ "match_brackets_square",
+ "match_brackets_braces",
+ "match_brackets_angle",
+]
}
diff --git a/Default (Linux).sublime-keymap b/Default (Linux).sublime-keymap
index 364e301..f3ad09e 100644
--- a/Default (Linux).sublime-keymap
+++ b/Default (Linux).sublime-keymap
@@ -1,30 +1,39 @@
[
- {
- "keys": ["ctrl+shift+;"],
- "command": "ace_jump_word"
- },
- {
- "keys": ["ctrl+shift+'"],
- "command": "ace_jump_char"
- },
- {
- "keys": ["ctrl+shift+."],
- "command": "ace_jump_line"
- },
- {
- "keys": ["ctrl+shift+,"],
- "command": "ace_jump_within_line"
- },
- {
- "keys": ["alt+;"],
- "command": "ace_jump_select"
- },
- {
- "keys": ["alt+'"],
- "command": "ace_jump_add_cursor"
- },
- {
- "keys": ["alt+."],
- "command": "ace_jump_after"
- }
+// Old defaults //
+ {"keys":["ctrl+shift+;" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+'" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+." ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+," ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+'" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+;" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+." ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+
+// Chained Keycap // keycap-based mnemonics w=word
+ {"keys":["ctrl+j","ctrl+w" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+c" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+l" ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+i" ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+// Chained Modes //
+ {"keys":["ctrl+j","c" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","s" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","a" ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+
+// Chained Home (more convenient home row mode keys)
+ {"keys":["ctrl+j","ctrl+k" ] , "command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+l" ] , "command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+;" ] , "command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+j" ] , "command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+// Chained Home Modes+: full chain, no need to press prefix key twice //
+ {"keys":["ctrl+j","ctrl+a","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
]
diff --git a/Default (OSX).sublime-keymap b/Default (OSX).sublime-keymap
index 428d8d7..f2252c7 100644
--- a/Default (OSX).sublime-keymap
+++ b/Default (OSX).sublime-keymap
@@ -1,30 +1,39 @@
[
- {
- "keys": ["super+shift+;"],
- "command": "ace_jump_word"
- },
- {
- "keys": ["super+shift+'"],
- "command": "ace_jump_char"
- },
- {
- "keys": ["super+shift+."],
- "command": "ace_jump_line"
- },
- {
- "keys": ["super+shift+,"],
- "command": "ace_jump_within_line"
- },
- {
- "keys": ["ctrl+;"],
- "command": "ace_jump_select"
- },
- {
- "keys": ["ctrl+'"],
- "command": "ace_jump_add_cursor"
- },
- {
- "keys": ["ctrl+."],
- "command": "ace_jump_after"
- }
+// Old defaults //
+ {"keys":["super+shift+;" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["super+shift+'" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["super+shift+." ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["super+shift+," ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+'" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+;" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+." ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+
+// Chained Keycap // keycap-based mnemonics w=word
+ {"keys":["super+j","super+w" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+c" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+l" ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+i" ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+// Chained Modes //
+ {"keys":["super+j","c" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["super+j","s" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["super+j","a" ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+
+// Chained Home (more convenient home row mode keys)
+ {"keys":["super+j","super+k" ] , "command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+l" ] , "command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+;" ] , "command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+j" ] , "command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+// Chained Home Modes+: full chain, no need to press prefix key twice //
+ {"keys":["super+j","super+a","super+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+a","super+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+a","super+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+a","super+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+s","super+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+s","super+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+s","super+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+s","super+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+f","super+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+f","super+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+f","super+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["super+j","super+f","super+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
]
diff --git a/Default (Windows).sublime-keymap b/Default (Windows).sublime-keymap
index 364e301..f3ad09e 100644
--- a/Default (Windows).sublime-keymap
+++ b/Default (Windows).sublime-keymap
@@ -1,30 +1,39 @@
[
- {
- "keys": ["ctrl+shift+;"],
- "command": "ace_jump_word"
- },
- {
- "keys": ["ctrl+shift+'"],
- "command": "ace_jump_char"
- },
- {
- "keys": ["ctrl+shift+."],
- "command": "ace_jump_line"
- },
- {
- "keys": ["ctrl+shift+,"],
- "command": "ace_jump_within_line"
- },
- {
- "keys": ["alt+;"],
- "command": "ace_jump_select"
- },
- {
- "keys": ["alt+'"],
- "command": "ace_jump_add_cursor"
- },
- {
- "keys": ["alt+."],
- "command": "ace_jump_after"
- }
+// Old defaults //
+ {"keys":["ctrl+shift+;" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+'" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+." ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["ctrl+shift+," ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+'" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+;" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+ {"keys":["alt+." ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_single","operator":"equal","operand":true},]},
+
+// Chained Keycap // keycap-based mnemonics w=word
+ {"keys":["ctrl+j","ctrl+w" ],"command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+c" ],"command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+l" ],"command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+i" ],"command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+// Chained Modes //
+ {"keys":["ctrl+j","c" ],"command":"ace_jump_add_cursor" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","s" ],"command":"ace_jump_select" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","a" ],"command":"ace_jump_after" ,"context":[{"key":"setting.ace_jump_key_chain","operator":"equal","operand":true},]},
+
+// Chained Home (more convenient home row mode keys)
+ {"keys":["ctrl+j","ctrl+k" ] , "command":"ace_jump_word" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+l" ] , "command":"ace_jump_char" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+;" ] , "command":"ace_jump_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+j" ] , "command":"ace_jump_within_line" ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+// Chained Home Modes+: full chain, no need to press prefix key twice //
+ {"keys":["ctrl+j","ctrl+a","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+a","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_add_cursor" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+s","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_select" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+k" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_word" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+l" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_char" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+;" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
+ {"keys":["ctrl+j","ctrl+f","ctrl+j" ],"command":"chain","args":{"commands":[{"command":"ace_jump_after" },{"command":"ace_jump_within_line" }]} ,"context":[{"key":"setting.ace_jump_key_chome","operator":"equal","operand":true},]},
]
diff --git a/Default.sublime-commands b/Default.sublime-commands
new file mode 100644
index 0000000..d789487
--- /dev/null
+++ b/Default.sublime-commands
@@ -0,0 +1,14 @@
+[
+{"caption":"Preferences: AceJump Settings" ,"command":"edit_settings" ,"args":{
+ "base_file":"${packages}/AceJump/AceJump.sublime-settings",
+ "user_file":"${packages}/User/AceJump.sublime-settings",
+ "default" :"{\n\t$0\n}\n"}},
+{"caption":"Preferences: AceJump Settings: User" ,"command":"open_file" ,"args":{"file":"${packages}/User/AceJump.sublime-settings"}},
+{"caption":"Preferences: AceJump Settings: Default" ,"command":"open_file" ,"args":{"file":"${packages}/AceJump/AceJump.sublime-settings"}},
+{"caption":"Preferences: AceJump Keybinds: Default" ,"command":"open_file" ,"args":{"file":"${packages}/AceJump/Default (${platform}).sublime-keymap"}},
+{"caption":"Preferences: AceJump Keybinds: User" ,"command":"open_file" ,"args":{"file":"${packages}/User/Default (${platform}).sublime-keymap"}},
+{"caption":"Preferences: AceJump Keybinds" ,"command":"edit_settings" ,"args":{
+ "base_file":"${packages}/AceJump/Default (${platform}).sublime-keymap",
+ "user_file":"${packages}/User/Default (${platform}).sublime-keymap",
+ "default" :"{\n\t$0\n}\n"}},
+]
diff --git a/README.md b/README.md
index f431ff5..0ef042a 100644
--- a/README.md
+++ b/README.md
@@ -105,12 +105,37 @@ In case there are more places to jump to than labels available, labels will be b
## Customization
-In order to access AceJump settings, go to ```Preferences > Package Settings > AceJump > Settings - User```.
+In order to access AceJump settings, go to ```Preferences > Package Settings > AceJump > Settings - User``` or open command palette commands:
+
+ - `Preferences: AceJump Settings` to open default and user settings side-by-side
+ - `Preferences: AceJump Settings: Default`
+ - `Preferences: AceJump Settings: User`
+ - `Preferences: AceJump Keybinds: Default` to open default and user (common `Default (OSX).sublime-keymap` file, not AceJump-specific) keybinds side-by-side
+ - `Preferences: AceJump Keybinds: User`
+ - `Preferences: AceJump Keybinds`
### Key bindings
-Go to ```Preferences > Package Settings > AceJump > Key Bindings - User```.
-You can then override the bindings for any of the following commands:
+Default keybindings are disabled to avoid conflicts with your other keybinds, you can enable them by adding __either__ of the following settings to your `Preferences.sublime-settings` file via `Preferences: Settings` command palette command (NOT `AceJump.sublime-settings`):
+
+ - `"ace_jump_key_single":true,` every command mapped to a single key combo
+ - `"ace_jump_key_chain" :true,` ⌃j as a prefix key (⌘ on a Mac) with letter-based "mnemonics" like `W`ord
+ - `"ace_jump_key_chome" :true,` ⌃j as a prefix key (⌘ on a Mac) with more convenient home-row based locations
+
+| Command | Single | Chain | CHome |
+|------------------------ |-------------------------------------- |-------------------------------------------------- |----------------------------------------------------------------------------------------------------------------------------- |
+| `ace_jump_word` | ⇧⌃; | ⌃j, ⌃w | ⌃j, ⌃k |
+| `ace_jump_char` | ⇧⌃' | ⌃j, ⌃c | ⌃j, ⌃l |
+| `ace_jump_line` | ⇧⌃. | ⌃j, ⌃l | ⌃j, ⌃; |
+| `ace_jump_within_line` | ⇧⌃, | ⌃j, ⌃i | ⌃j, ⌃j |
+| ↓ Modes | | | |
+| `ace_jump_add_cursor` | ⎇' | ⌃j, c | ⌃j, ⌃a, ⌃k[^1] or l or ; or j |
+| `ace_jump_select` | ⎇; | ⌃j, s | ⌃j, ⌃s, ⌃k[^1] or l or ; or j |
+| `ace_jump_after` | ⎇. | ⌃j, a | ⌃j, ⌃f, ⌃k[^1] or l or ; or j |
+
+[^1]: instead of enabling a mode completes the sequence in one keybind
+
+Or you can then override the bindings for any of the following commands via ```Preferences > Package Settings > AceJump > Key Bindings - User```:
- ```ace_jump_word```
- ```ace_jump_char```