Skip to content

Commit 65964cf

Browse files
Bharadmarijnh
authored andcommitted
[vim mode] Added yank command to yank the current line
1 parent 3682197 commit 65964cf

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

keymap/vim.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@
226226
{ name: 'sort', shortName: 'sor' },
227227
{ name: 'substitute', shortName: 's', possiblyAsync: true },
228228
{ name: 'nohlsearch', shortName: 'noh' },
229+
{ name: 'yank', shortName: 'y' },
229230
{ name: 'delmarks', shortName: 'delm' },
230231
{ name: 'registers', shortName: 'reg', excludeFromCommandHistory: true },
231232
{ name: 'global', shortName: 'g' }
@@ -4522,6 +4523,13 @@
45224523
nohlsearch: function(cm) {
45234524
clearSearchHighlight(cm);
45244525
},
4526+
yank: function (cm) {
4527+
var cur = copyCursor(cm.getCursor());
4528+
var line = cur.line;
4529+
var lineText = cm.getLine(line);
4530+
vimGlobalState.registerController.pushText(
4531+
'0', 'yank', lineText, true, true);
4532+
},
45254533
delmarks: function(cm, params) {
45264534
if (!params.argString || !trim(params.argString)) {
45274535
showConfirm(cm, 'Argument required');

test/vim_test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3725,6 +3725,14 @@ testVim('ex_noh_clearSearchHighlight', function(cm, vim, helpers) {
37253725
helpers.doKeys('n');
37263726
helpers.assertCursorAt(0, 11,'can\'t resume search after clearing highlighting');
37273727
}, { value: 'match nope match \n nope Match' });
3728+
testVim('ex_yank', function (cm, vim, helpers) {
3729+
var curStart = makeCursor(3, 0);
3730+
cm.setCursor(curStart);
3731+
helpers.doEx('y');
3732+
var register = helpers.getRegisterController().getRegister();
3733+
var line = cm.getLine(3);
3734+
eq(line + '\n', register.toString());
3735+
});
37283736
testVim('set_boolean', function(cm, vim, helpers) {
37293737
CodeMirror.Vim.defineOption('testoption', true, 'boolean');
37303738
// Test default value is set.

0 commit comments

Comments
 (0)