This is a sister implementation for "k" in order to behave like "j" when wrapping is on (see #748). The problem with the current implementation is that "k" moves caret to the last line of a wrapped line instead of the first one like "j".
@pcworld Can you check if it looks good to you? This one is a bit more complex because one has to either "iterate" over the wraps when going up (for the first line only) or go to the previous line and go down. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany-plugins/pull/754
-- Commit Summary --
* vimode: When wrapping is on, "k" should go to the first line of wrapping
-- File Changes --
M vimode/src/cmds/motion.c (48)
-- Patch Links --
https://github.com/geany/geany-plugins/pull/754.patch https://github.com/geany/geany-plugins/pull/754.diff
Sorry I don't have time to test currently. Feel free to merge without my feedback, users can still complain afterwards. ;)
The behavior is kind of weird anyway, with or without this (always jumping to first or last line). In original vim j or k go to the same position in the line regardless of wrapping. I.e. it doesn't reset the column counter at line wraps.
Btw the original arrow up / arrow down behavior from Geany is `gk` and `gj` in vim, respectively. It goes up/down display lines.
@pcworld Yeah, it behaves differently because of how Scintilla works - not much we can do unfortunately.
@frlan Would you merge this?
Merged #754 into master.
github-comments@lists.geany.org