Permalink
Browse files

NEW-STYLE KEYBINDINGS.

  • Loading branch information...
1 parent df5f5ec commit cfe57a2a83ef3955dc62d9680145c3d64efdcd7b @msiniscalchi msiniscalchi committed Sep 17, 2012
@@ -2,21 +2,81 @@
LaTeX Package keymap for Linux
*/
[
- // { "keys": ["ctrl+alt+t"], "command": "make_pdf" }, // now bound to Command-B via the standard build system
- { "keys": ["ctrl+alt+s"], "command": "tex_sections" },
- /* why not use TextMate's keybindings?
- we only clobber next-tab and previous-tab, whihc are also bound
- to arrow keys */
- { "keys": ["super+shift+right_bracket"], "command": "latexcmd"},
- { "keys": ["super+shift+left_bracket"], "command": "latexenv"},
- { "keys": ["super+shift+period"], "command": "latex_env_closer"},
- /* can't use forward slash or period; also, why not CMD? */
- { "keys": ["super+alt+forward_slash"], "command": "tex_macro"},
- /* alternatives: the second is reminiscent of super+B for build */
- { "keys": ["ctrl+alt+v"], "command": "view_pdf"},
- { "keys": ["ctrl+alt+r"], "command": "tex_ref"},
- { "keys": ["super+shift+j"], "command": "jump_to_pdf"},
- { "keys": ["super+shift+b"], "command": "view_pdf"},
+
+ // New-style keybindings use "ctrl+l" as a prefix
+ // This overrides "extend selection to line", which is remapped to
+ // "ctrl+l","ctrl+l" [?]
+ // However, keybindings are scoped to the text.tex.latex selector, so they do not
+ // pollute the standard bindings
+
+ // Reassign expand_selection to ctrl+l, ctrl+l
+ { "keys": ["ctrl+l","ctrl+l"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "expand_selection", "args": {"to": "line"} },
+
+ // Insert latex command or environment, and close current environment
+ { "keys": ["ctrl+l","c"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "latexcmd"},
+ { "keys": ["ctrl+l","e"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "latexenv"},
+ { "keys": ["ctrl+l","."],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "latex_env_closer"},
+
+ // Complete reference or citation
+ { "keys": ["ctrl+l","ctrl+space"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "latex_ref_cite"},
+
+ // View PDF, jump to point, toggle editor/viewer focus
+ { "keys": ["ctrl+l","v"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "view_pdf"},
+ { "keys": ["ctrl+l","j"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "jump_to_pdf"},
+ { "keys": ["ctrl+l","t","f"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "toggle_focus"},
+
+ // Wrap selected text in command or environment
+ { "keys": ["ctrl+l","ctrl+c"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "insert_snippet", "args": {"name":"Packages/LaTeXTools/Wrap in command.sublime-snippet"}},
+ { "keys": ["ctrl+l","ctrl+n"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "insert_snippet", "args": {"name":"Packages/LaTeXTools/Wrap in environment.sublime-snippet"}},
+
+ // Wrap selected text in emph, bold or underline
+ { "keys": ["ctrl+l","ctrl+e"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "insert_snippet", "args": {"name":"Packages/LaTeXTools/Text emphasize.sublime-snippet"}},
+ { "keys": ["ctrl+l","ctrl+b"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "insert_snippet", "args": {"name":"Packages/LaTeXTools/Text boldface.sublime-snippet"}},
+ { "keys": ["ctrl+l","ctrl+u"],
+ "context": [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"}],
+ "command": "insert_snippet", "args": {"name":"Packages/LaTeXTools/Text underline.sublime-snippet"}},
+
+
+
+
+
// Auto-pair ``$''
// Lifted from default file
@@ -61,7 +121,7 @@ LaTeX Package keymap for Linux
]
},
- // overlay specifications (Tobias Schmidt)
+ // overlay specifications (Tobias Schmidt)
// FIXME: the scope for the four following should actually be text.tex.latex.beamer, but for some reason this does not seem to work
{ "keys": ["<"], "command": "insert_snippet", "args": {"contents": "<${1:+-}>$0"},
"context":
@@ -160,6 +220,4 @@ LaTeX Package keymap for Linux
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
]
}
-
-
]
@@ -0,0 +1,165 @@
+/*
+LaTeX Package keymap for Linux
+*/
+[
+ // { "keys": ["ctrl+alt+t"], "command": "make_pdf" }, // now bound to Command-B via the standard build system
+ { "keys": ["ctrl+alt+s"], "command": "tex_sections" },
+ /* why not use TextMate's keybindings?
+ we only clobber next-tab and previous-tab, whihc are also bound
+ to arrow keys */
+ { "keys": ["super+shift+right_bracket"], "command": "latexcmd"},
+ { "keys": ["super+shift+left_bracket"], "command": "latexenv"},
+ { "keys": ["super+shift+period"], "command": "latex_env_closer"},
+ /* can't use forward slash or period; also, why not CMD? */
+ { "keys": ["super+alt+forward_slash"], "command": "tex_macro"},
+ /* alternatives: the second is reminiscent of super+B for build */
+ { "keys": ["ctrl+alt+v"], "command": "view_pdf"},
+ { "keys": ["ctrl+alt+r"], "command": "tex_ref"},
+ { "keys": ["super+shift+j"], "command": "jump_to_pdf"},
+ { "keys": ["super+shift+b"], "command": "view_pdf"},
+
+ // Auto-pair ``$''
+ // Lifted from default file
+ // insert matching $
+ // note the "key": "selector" line!
+ { "keys": ["$"], "command": "insert_snippet", "args": {"contents": "\\$$0\\$"},
+ "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ /*{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|])", "match_all": true },*/
+ { "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
+ { "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double", "match_all": true }
+ ]
+ },
+ // wrap in $
+ { "keys": ["$"], "command": "insert_snippet", "args": {"contents": "\\$${0:$SELECTION}\\$"}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
+ ]
+ },
+ // move over closing $
+ { "keys": ["$"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^\\$", "match_all": true }
+ ]
+ },
+ // delete $ pair
+ { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Left Right.sublime-macro"}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "preceding_text", "operator": "regex_contains", "operand": "\\$$", "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^\\$", "match_all": true }
+ ]
+ },
+
+ // overlay specifications (Tobias Schmidt)
+ // FIXME: the scope for the four following should actually be text.tex.latex.beamer, but for some reason this does not seem to work
+ { "keys": ["<"], "command": "insert_snippet", "args": {"contents": "<${1:+-}>$0"},
+ "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "preceding_text", "operator": "regex_contains", "operand": "\\item|only|textbf|color|onslide|only|uncover|visible|invisible|alt|temporal$", "match_all": true }
+ ]
+ },
+ // wrap in <>
+ { "keys": ["<"], "command": "insert_snippet", "args": {"contents": "<${0:$SELECTION}>"}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
+ ]
+ },
+ // move over closing >
+ { "keys": [">"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^>", "match_all": true }
+ ]
+ },
+ // delete <> pair
+ { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Left Right.sublime-macro"}, "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "preceding_text", "operator": "regex_contains", "operand": "<$", "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^>", "match_all": true }
+ ]
+ },
+ // autopair quotation marks (`')
+ { "keys": ["`"], "command": "insert_snippet", "args": {"contents": "`$0'"}, "context":
+ [
+ { "key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
+ ]
+ },
+ { "keys": ["`"], "command": "insert_snippet", "args": {"contents": "`${0:$SELECTION}'"}, "context":
+ [
+ { "key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
+ ]
+ },
+ { "keys": ["'"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
+ [
+ { "key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true }
+ ]
+ },
+ { "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Left Right.sublime-macro"}, "context":
+ [
+ { "key": "selector", "operator": "equal", "operand": "text.tex.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
+ { "key": "preceding_text", "operator": "regex_contains", "operand": "`$", "match_all": true },
+ { "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true }
+ ]
+ },
+ // automatic addition of new \items when hitting Shift+Enter in a list environment
+ { "keys": ["shift+enter"], "command": "insert_snippet", "args": {"contents": "\n\\item $0"},
+ "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "meta.function.environment.list.latex"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
+ ]
+ },
+
+
+ // shift+super+{up,down} for super/subscripts with braces
+ // (courtesy of Tobias Schmidt; I only changed the keybindings)
+ { "keys": ["shift+super+down"], "command": "insert_snippet", "args": {"contents": "_{$1}$0"},
+ "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex string.other.math"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
+ ]
+ },
+
+ { "keys": ["shift+super+up"], "command": "insert_snippet", "args": {"contents": "^{$1}$0"},
+ "context":
+ [
+ {"key": "selector", "operator": "equal", "operand": "text.tex.latex string.other.math"},
+ { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
+ { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
+ ]
+ }
+
+
+]
Oops, something went wrong. Retry.

0 comments on commit cfe57a2

Please sign in to comment.