Skip to content

Commit 79193c0

Browse files
nightwingmarijnh
authored andcommitted
[vim] fix s in visual block mode
1 parent 0514f28 commit 79193c0

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

keymap/vim.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@
6464
{ keys: '<C-[>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
6565
{ keys: '<C-c>', type: 'keyToKey', toKeys: '<Esc>', context: 'insert' },
6666
{ keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' },
67-
{ keys: 's', type: 'keyToKey', toKeys: 'xi', context: 'visual'},
67+
{ keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'},
6868
{ keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' },
69-
{ keys: 'S', type: 'keyToKey', toKeys: 'dcc', context: 'visual' },
69+
{ keys: 'S', type: 'keyToKey', toKeys: 'VdO', context: 'visual' },
7070
{ keys: '<Home>', type: 'keyToKey', toKeys: '0' },
7171
{ keys: '<End>', type: 'keyToKey', toKeys: '$' },
7272
{ keys: '<PageUp>', type: 'keyToKey', toKeys: '<C-b>' },

test/vim_test.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1045,6 +1045,20 @@ testVim('D_visual_block', function(cm, vim, helpers) {
10451045
eq('1\n5\na', cm.getValue());
10461046
}, {value: '1234\n5678\nabcdefg'});
10471047

1048+
testVim('s_visual_block', function(cm, vim, helpers) {
1049+
cm.setCursor(0, 1);
1050+
helpers.doKeys('<C-v>', '2', 'j', 'l', 'l', 'l', 's');
1051+
var replacement = fillArray('hello{', 3);
1052+
cm.replaceSelections(replacement);
1053+
eq('1hello{\n5hello{\nahello{fg\n', cm.getValue());
1054+
helpers.doKeys('<Esc>');
1055+
cm.setCursor(2, 3);
1056+
helpers.doKeys('<C-v>', '1', 'k', 'h', 'S');
1057+
replacement = fillArray('world', 1);
1058+
cm.replaceSelections(replacement);
1059+
eq('1hello{\n world\n', cm.getValue());
1060+
}, {value: '1234\n5678\nabcdefg\n'});
1061+
10481062
// Swapcase commands edit in place and do not modify registers.
10491063
testVim('g~w_repeat', function(cm, vim, helpers) {
10501064
// Assert that dw does delete newline if it should go to the next line, and

0 commit comments

Comments
 (0)