Skip to content

Commit cc81e48

Browse files
authored
fix , in visual mode (#256)
1 parent 2f03564 commit cc81e48

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/vim.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2682,11 +2682,9 @@ export function initVim(CM) {
26822682
var repeat = motionArgs.repeat;
26832683
var forward = motionArgs.forward === lastSearch.forward;
26842684
var increment = (lastSearch.increment ? 1 : 0) * (forward ? -1 : 1);
2685-
cm.moveH(-increment, 'char');
26862685
motionArgs.inclusive = forward ? true : false;
2687-
var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter);
2686+
var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter, offsetCursor(head, 0, -increment));
26882687
if (!curEnd) {
2689-
cm.moveH(increment, 'char');
26902688
return head;
26912689
}
26922690
curEnd.ch += increment;

test/vim_test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3877,6 +3877,23 @@ testVim('vFT', function(cm, vim, helpers) {
38773877
helpers.doKeys('F', '1');
38783878
helpers.assertCursorAt(0, 0);
38793879
}, { value: '1123 123 123'});
3880+
testVim('vf,;', function(cm, vim, helpers) {
3881+
helpers.doKeys('0', 'v')
3882+
helpers.doKeys('f', '.');
3883+
eq('ab.', cm.getSelection());
3884+
helpers.doKeys(';');
3885+
eq('ab.cd.', cm.getSelection());
3886+
helpers.doKeys(';');
3887+
eq('ab.cd.ef.', cm.getSelection());
3888+
helpers.doKeys(',');
3889+
eq('ab.cd.', cm.getSelection());
3890+
helpers.doKeys(';');
3891+
eq('ab.cd.ef.', cm.getSelection());
3892+
helpers.doKeys('2', ',');
3893+
eq('ab.', cm.getSelection());
3894+
helpers.doKeys('2', ',');
3895+
eq('ab.', cm.getSelection());
3896+
}, { value: 'ab.cd.ef.g'});
38803897
testVim('page_motions', function(cm, vim, helpers) {
38813898
var value = "x".repeat(200).split("").map((_, i)=>i).join("\n");
38823899
cm.setValue(value);

0 commit comments

Comments
 (0)