@@ -188,20 +188,24 @@ $(function() {
188
188
const mac = CodeMirror . keyMap . default === CodeMirror . keyMap . macDefault ;
189
189
const modifier = mac ? "Cmd" : "Ctrl" ;
190
190
191
- var cmOptions = {
192
- extraKeys : CodeMirror . normalizeKeyMap ( {
191
+ defaultKeyMap = CodeMirror . normalizeKeyMap ( {
193
192
"Shift-Enter" : function ( cm ) { runFun ( cm . getValue ( ) ) ; } ,
194
193
"Shift-Ctrl-Enter" : function ( cm ) { runFun ( cm . getValue ( ) ) ; } ,
195
194
"Tab" : "indentAuto" ,
196
195
"Ctrl-I" : reindentAllLines ,
197
- "Esc Left" : "goBackwardSexp" ,
198
196
"Alt-Left" : "goBackwardSexp" ,
199
- "Esc Right" : "goForwardSexp" ,
200
197
"Alt-Right" : "goForwardSexp" ,
201
198
"Ctrl-Left" : "goBackwardToken" ,
202
199
"Ctrl-Right" : "goForwardToken" ,
203
200
[ `${ modifier } -/` ] : "toggleComment" ,
204
- } ) ,
201
+ } ) ;
202
+ CPO . noVimKeyMap = CodeMirror . normalizeKeyMap ( {
203
+ "Esc Left" : "goBackwardSexp" ,
204
+ "Esc Right" : "goForwardSexp" ,
205
+ } ) ;
206
+
207
+ var cmOptions = {
208
+ extraKeys : defaultKeyMap ,
205
209
indentUnit : 2 ,
206
210
tabSize : 2 ,
207
211
viewportMargin : Infinity ,
@@ -221,6 +225,8 @@ $(function() {
221
225
cmOptions = merge ( cmOptions , options . cmOptions || { } ) ;
222
226
223
227
var CM = CodeMirror . fromTextArea ( textarea [ 0 ] , cmOptions ) ;
228
+ // we do this separately so we can more easily add and remove it for vim mode
229
+ CM . addKeyMap ( CPO . noVimKeyMap ) ;
224
230
225
231
function firstLineIsNamespace ( ) {
226
232
const firstline = CM . getLine ( 0 ) ;
0 commit comments