diff --git a/keymap/vim.js b/keymap/vim.js index 2763b5134f4ba3c52cd34f95b60632e00471028b..0310baded7d2571bae6c30d8a41111ec8b5114d3 100644 --- a/keymap/vim.js +++ b/keymap/vim.js @@ -986,9 +986,6 @@ } RegisterController.prototype = { pushText: function(registerName, operator, text, linewise, blockwise) { - if (linewise && text.charAt(0) == '\n') { - text = text.slice(1) + '\n'; - } if (linewise && text.charAt(text.length - 1) !== '\n'){ text += '\n'; } diff --git a/test/vim_test.js b/test/vim_test.js index d107e82cac9214b1548cef99a974f2ad1e52cebe..86a544756ac19bcff1354bdb6b3c19f3ce803bc1 100644 --- a/test/vim_test.js +++ b/test/vim_test.js @@ -955,6 +955,10 @@ testVim('yy_multiply_repeat', function(cm, vim, helpers) { is(register.linewise); eqCursorPos(curStart, cm.getCursor()); }); +testVim('2dd_blank_P', function(cm, vim, helpers) { + helpers.doKeys('2', 'd', 'd', 'P'); + eq('\na\n\n', cm.getValue()); +}, { value: '\na\n\n' }); // Change commands behave like d commands except that it also enters insert // mode. In addition, when the change is linewise, an additional newline is // inserted so that insert mode starts on that line.