|
50 | 50 | (function() { |
51 | 51 | var sdir = "f"; |
52 | 52 | var buf = ""; |
53 | | - var yank = 0; |
54 | 53 | var mark = {}; |
55 | 54 | var repeatCount = 0; |
56 | 55 | function isLine(cm, line) { return line >= 0 && line < cm.lineCount(); } |
|
70 | 69 | } |
71 | 70 | function countTimes(func) { |
72 | 71 | if (typeof func == "string") func = CodeMirror.commands[func]; |
73 | | - return function(cm) { iterTimes(function () { func(cm); }); }; |
| 72 | + return function(cm) { iterTimes(function (i, last) { func(cm, i, last); }); }; |
74 | 73 | } |
75 | 74 |
|
76 | 75 | function iterObj(o, f) { |
|
220 | 219 | var l = cm.getCursor().line, start = i > l ? l : i, end = i > l ? i : l; |
221 | 220 | cm.setCursor(start); |
222 | 221 | for (var c = start; c <= end; c++) { |
223 | | - pushInBuffer("\n"+cm.getLine(start)); |
| 222 | + pushInBuffer("\n" + cm.getLine(start)); |
224 | 223 | cm.removeLine(start); |
225 | 224 | } |
226 | 225 | } |
|
232 | 231 | } |
233 | 232 | var l = cm.getCursor().line, start = i > l ? l : i, end = i > l ? i : l; |
234 | 233 | for (var c = start; c <= end; c++) { |
235 | | - pushInBuffer("\n"+cm.getLine(c)); |
| 234 | + pushInBuffer("\n" + cm.getLine(c)); |
236 | 235 | } |
237 | 236 | cm.setCursor(start); |
238 | 237 | } |
|
339 | 338 | // so only incremenet once |
340 | 339 | ++lineN; |
341 | 340 |
|
342 | | - iterTimes(function(i) { |
| 341 | + iterTimes(function() { |
343 | 342 | pushInBuffer(cm.getLine(lineN)); |
344 | 343 | cm.removeLine(lineN); |
345 | 344 | }); |
|
353 | 352 | enterInsertMode(cm); |
354 | 353 | }, |
355 | 354 | "M": function(cm) {cm.setOption("keyMap", "vim-prefix-m"); mark = {};}, |
356 | | - "Y": function(cm) {cm.setOption("keyMap", "vim-prefix-y"); emptyBuffer(); yank = 0;}, |
| 355 | + "Y": function(cm) {cm.setOption("keyMap", "vim-prefix-y"); emptyBuffer();}, |
357 | 356 | "Shift-Y": function(cm) { |
358 | 357 | emptyBuffer(); |
359 | | - mark["Shift-D"] = cm.getCursor(false).line; |
360 | | - cm.setCursor(cm.getCursor(true).line); |
361 | | - yankTillMark(cm,"Shift-D"); mark = {}; |
| 358 | + iterTimes(function(i) { pushInBuffer("\n" + cm.getLine(cm.getCursor().line + i)); }); |
362 | 359 | }, |
363 | 360 | "/": function(cm) {var f = CodeMirror.commands.find; f && f(cm); sdir = "f";}, |
364 | 361 | "'?'": function(cm) { |
|
477 | 474 |
|
478 | 475 | CodeMirror.keyMap["vim-prefix-d"] = { |
479 | 476 | "D": countTimes(function(cm) { |
480 | | - pushInBuffer("\n"+cm.getLine(cm.getCursor().line)); |
| 477 | + pushInBuffer("\n" + cm.getLine(cm.getCursor().line)); |
481 | 478 | cm.removeLine(cm.getCursor().line); |
482 | 479 | cm.setOption("keyMap", "vim"); |
483 | 480 | }), |
|
537 | 534 | mark[m] = cm.getCursor().line; |
538 | 535 | }; |
539 | 536 | CodeMirror.keyMap["vim-prefix-d'"][m] = function(cm) { |
540 | | - delTillMark(cm,m); |
| 537 | + delTillMark(cm, m); |
541 | 538 | }; |
542 | 539 | CodeMirror.keyMap["vim-prefix-y'"][m] = function(cm) { |
543 | | - yankTillMark(cm,m); |
| 540 | + yankTillMark(cm, m); |
544 | 541 | }; |
545 | 542 | CodeMirror.keyMap["vim-prefix-r"][m] = function (cm) { |
546 | 543 | var cur = cm.getCursor(); |
|
574 | 571 | setupPrefixBindingForKey("Space"); |
575 | 572 |
|
576 | 573 | CodeMirror.keyMap["vim-prefix-y"] = { |
577 | | - "Y": countTimes(function(cm) { |
578 | | - pushInBuffer("\n"+cm.getLine(cm.getCursor().line+yank)); yank++; |
| 574 | + "Y": countTimes(function(cm, i, last) { |
| 575 | + pushInBuffer("\n" + cm.getLine(cm.getCursor().line + i)); |
579 | 576 | cm.setOption("keyMap", "vim"); |
580 | 577 | }), |
581 | 578 | "'": function(cm) {cm.setOption("keyMap", "vim-prefix-y'"); emptyBuffer();}, |
|
0 commit comments