CodeMirror
x
1
// The bindings defined specifically in the Sublime Text mode
2
var bindings = {
3
"Alt-Left": "goSubwordLeft",
4
"Alt-Right": "goSubwordRight",
5
"Ctrl-Up": "scrollLineUp",
6
"Ctrl-Down": "scrollLineDown",
7
"Shift-Ctrl-L": "splitSelectionByLine",
8
"Shift-Tab": "indentLess",
9
"Esc": "singleSelectionTop",
10
"Ctrl-L": "selectLine",
11
"Shift-Ctrl-K": "deleteLine",
12
"Ctrl-Enter": "insertLineAfter",
13
"Shift-Ctrl-Enter": "insertLineBefore",
14
"Ctrl-D": "selectNextOccurrence",
15
"Shift-Ctrl-Space": "selectScope",
16
"Shift-Ctrl-M": "selectBetweenBrackets",
17
"Ctrl-M": "goToBracket",
18
"Shift-Ctrl-Up": "swapLineUp",
19
"Shift-Ctrl-Down": "swapLineDown",
20
"Ctrl-/": "toggleCommentIndented",
21
"Ctrl-J": "joinLines",
22
"Shift-Ctrl-D": "duplicateLine",
23
"Ctrl-T": "transposeChars",
24
"F9": "sortLines",
25
"Ctrl-F9": "sortLinesInsensitive",
26
"F2": "nextBookmark",
27
"Shift-F2": "prevBookmark",
28
"Ctrl-F2": "toggleBookmark",
29
"Shift-Ctrl-F2": "clearBookmarks",
30
"Alt-F2": "selectBookmarks",
31
"Alt-Q": "wrapLines",
32
"Ctrl-K Ctrl-Backspace": "delLineLeft",
33
"Backspace": "smartBackspace",
34
"Ctrl-K Ctrl-K": "delLineRight",
35
"Ctrl-K Ctrl-U": "upcaseAtCursor",
36
"Ctrl-K Ctrl-L": "downcaseAtCursor",
37
"Ctrl-K Ctrl-Space": "setSublimeMark",
38
"Ctrl-K Ctrl-A": "selectToSublimeMark",
39
"Ctrl-K Ctrl-W": "deleteToSublimeMark",
40
"Ctrl-K Ctrl-X": "swapWithSublimeMark",
41
"Ctrl-K Ctrl-Y": "sublimeYank",
42
"Ctrl-K Ctrl-G": "clearBookmarks",
43
"Ctrl-K Ctrl-C": "showInCenter",
44
"Ctrl-Alt-Up": "selectLinesUpward",
45
"Ctrl-Alt-Down": "selectLinesDownward",
46
"Ctrl-F3": "findUnder",
47
"Shift-Ctrl-F3": "findUnderPrevious",
48
"Shift-Ctrl-[": "fold",
49
"Shift-Ctrl-]": "unfold",
50
"Ctrl-K Ctrl-J": "unfoldAll",
51
"Ctrl-K Ctrl-0": "unfoldAll",
52
"Ctrl-H": "replace",
53
}
54
55
// The implementation of joinLines
56
function joinLines(v){var B=v.listSelections(),z=[];for(var y=0;y<B.length;y++){var A=B[y],x=A.from();var C=x.line,w=A.to().line;while(y<B.length-1&&B[y+1].from().line==w){w=B[++y].to().line}z.push({start:C,end:w,anchor:!A.empty()&&x})}v.operation(function(){var J=0,K=[];for(var G=0;G<z.length;G++){var I=z[G];var E=I.anchor&&o(I.anchor.line-J,I.anchor.ch),F;for(var H=I.start;H<=I.end;H++){var D=H-J;if(H==I.end){F=o(D,v.getLine(D).length+1)}if(D<v.lastLine()){v.replaceRange(" ",o(D),o(D+1,/^\s*/.exec(v.getLine(D+1))[0].length));++J}}K.push({anchor:E||F,head:F})}v.setSelections(K,0)})}
57