Skip to content
This repository has been archived by the owner on Aug 8, 2018. It is now read-only.

Commit

Permalink
NEW-STYLE KEYBINDINGS.
Browse files Browse the repository at this point in the history
  • Loading branch information
msiniscalchi committed Sep 17, 2012
1 parent df5f5ec commit cfe57a2
Show file tree
Hide file tree
Showing 6 changed files with 747 additions and 77 deletions.
94 changes: 76 additions & 18 deletions Default (Linux).sublime-keymap
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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":
Expand Down Expand Up @@ -160,6 +220,4 @@ LaTeX Package keymap for Linux
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }
]
}


]
165 changes: 165 additions & 0 deletions Default (Linux).sublime-keymap.OLD
Original file line number Diff line number Diff line change
@@ -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 }
]
}


]
Loading

0 comments on commit cfe57a2

Please sign in to comment.