Closed yyy33 closed 2 years ago
There is no bug here: ,
/;
do not behave like ,
and ;
in vanilla Vim. You can only go back to the "start point" (the first target you reached with ;
), but not beyond - it is like pushing and popping from a stack.
The reason why it works like this is briefly mentioned in the Readme (;/,
works the same way as S/F/T
):
S, F and T, on the other hand, always revert the previous repeat. Note that in the case of T (or X, if mapped), this results in a different, and presumably more useful behaviour than what you are used to in clever-f and Sneak: it does not repeat the search in the reverse direction, but puts the cursor back to its previous position - before the previous match -, allowing for an easy correction when you accidentally overshoot your target.
What this means in practice, regarding your example:
If you have safe labels, you will auto-jump to the first target, and that will be the start point for ;/,
. If you set safe_labels = {}
, you will not auto-jump, so if you press a label, then you actually exit the plugin. If you jumped to the second match (by selecting the label f
), then the match after that will be the first one that ;
finds (the one in log.DebugLevel
on line 12), and thus the "reference" point for the ;/,
sequence.
This is my config file
This is test text
My cursor at the beginning of the file with
When I type
sogf
, my cursor is at line 12I type
;
multiple times, the cursor is at the lastog
in the screen, which is line 17After I typed
,
multiple times, the cursor finally came to the 12th line and couldn't go back, normally it should go back to theog
of the 6th line5.When I don't set the
safe_labels = {}
option, everything works fine