Monday, October 13, 2025

Re: Scrolling behavior when using gj and gk is jumpy

> I understand that, but my main point is that positioning the cursor serves as a way to scroll in basically every other text editor on earth and it would be nice if it did here, too.

Moving the cursor and scrolling are two different things, with the former _sometimes_ causing the latter.
Doing the former in order to obtain the latter is, well… not a very efficient use of your tools.
Especially when a) there is a whole set of commands and widgets for doing the latter (<C-e>/<C-y>/etc., scrollbars, mousewheel, trackpad…) and b) it doesn't work particularly well to begin with.

It is the same side effect at play in every text editor and every multi-line text input widget on every platform, Vim included: you are moving the cursor to a line that is outside the viewport so the viewport is moved to include that line.
Where Vim's behavior might be different from other editors in that case is how it handles wrapped lines.
And how it does it makes perfect sense given the actual purpose of jkgjgk: the full _line_ is displayed so that you can _edit_ it comfortably.

> Plus, even if I scroll with ctl-e etc, the second I move my cursor into the "paragraph," it'll do that jerky jump. 

Not with :set smoothscroll.

If you want to _scroll_, use scrolling commands (in Vim and elsewhere).
They exist for that specific purpose and they will always be better than unrelated commands that may or may not cause scrolling.
If you want pixel-perfect scrolling, use a modern non-terminal based editor.

On Monday, October 13, 2025 at 3:23:32 PM UTC+2 Marc Adler wrote:
I understand that, but my main point is that positioning the cursor serves as a way to scroll in basically every other text editor on earth and it would be nice if it did here, too.

Plus, even if I scroll with ctl-e etc, the second I move my cursor into the "paragraph," it'll do that jerky jump. 

On Sunday, October 12, 2025 at 1:47:22 AM UTC-5 Romain Lafourcade wrote:
The purpose of j, k, gj, and gk is to _position the cursor_ for the next editing command.

They might also move the buffer up or down relative to the viewport, but that is only a _side effect_ of having the cursor at the top or bottom of the window.

:help 'smoothscroll' works perfectly, but _for actual "scrolling" commands_, which j, k, gj, and gk are not. 

Use Ctrl-E, Ctrl-Y, etc. to _scroll_.

See :help scrolling.

On Saturday, October 11, 2025 at 11:25:03 AM UTC+2 Yee Cheng Chin wrote:
I don't think the issue is asymmetric as you claimed? gj/gk exhibits
the same jumping behavior both up and down (which is also shown in
your video). When you go to a new line, Vim tries to fit the entire
wrapped line with the cursor in the whole screen which is why it feels
jumpy. I don't think there is a builtin way to fix this. You could
write a script to re-scroll the text using Ctrl-E/Ctrl-Y when you do
gj/gk to get around this issue though. You could of course file an
issue to Vim to see if there will be an appetite to add this as an
option.

On Fri, Oct 10, 2025 at 2:38 PM Marc Adler <marc....@gmail.com> wrote:
>
> I use Vim to write text, ie prose with paragraphs.
>
>
> Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.
>
>
> The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.
>
>
> Smoothscroll fixes this, but only when you're scrolling down.
>
>
> Is there a way to make it work when scrolling up?
>
>
> Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor.
>
>
> Vim:
>
> https://imgur.com/a/u83V2TA
>
>
> VSCode:
>
> https://imgur.com/a/8dhcXo1
>
>
> Is there a way to fix this? Like I said, this behavior is unique to Vim.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/52467ea1-1a18-4b33-91e8-4b509fb7e9f4n%40googlegroups.com.

Re: Scrolling behavior when using gj and gk is jumpy

I understand that, but my main point is that positioning the cursor serves as a way to scroll in basically every other text editor on earth and it would be nice if it did here, too.

Plus, even if I scroll with ctl-e etc, the second I move my cursor into the "paragraph," it'll do that jerky jump. 

On Sunday, October 12, 2025 at 1:47:22 AM UTC-5 Romain Lafourcade wrote:
The purpose of j, k, gj, and gk is to _position the cursor_ for the next editing command.

They might also move the buffer up or down relative to the viewport, but that is only a _side effect_ of having the cursor at the top or bottom of the window.

:help 'smoothscroll' works perfectly, but _for actual "scrolling" commands_, which j, k, gj, and gk are not. 

Use Ctrl-E, Ctrl-Y, etc. to _scroll_.

See :help scrolling.

On Saturday, October 11, 2025 at 11:25:03 AM UTC+2 Yee Cheng Chin wrote:
I don't think the issue is asymmetric as you claimed? gj/gk exhibits
the same jumping behavior both up and down (which is also shown in
your video). When you go to a new line, Vim tries to fit the entire
wrapped line with the cursor in the whole screen which is why it feels
jumpy. I don't think there is a builtin way to fix this. You could
write a script to re-scroll the text using Ctrl-E/Ctrl-Y when you do
gj/gk to get around this issue though. You could of course file an
issue to Vim to see if there will be an appetite to add this as an
option.

On Fri, Oct 10, 2025 at 2:38 PM Marc Adler <marc....@gmail.com> wrote:
>
> I use Vim to write text, ie prose with paragraphs.
>
>
> Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.
>
>
> The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.
>
>
> Smoothscroll fixes this, but only when you're scrolling down.
>
>
> Is there a way to make it work when scrolling up?
>
>
> Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor.
>
>
> Vim:
>
> https://imgur.com/a/u83V2TA
>
>
> VSCode:
>
> https://imgur.com/a/8dhcXo1
>
>
> Is there a way to fix this? Like I said, this behavior is unique to Vim.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/963d9b1f-8033-4ce6-a999-44007c1686a2n%40googlegroups.com.

Re: Scrolling behavior when using gj and gk is jumpy

"You could of course file an issue to Vim to see if there will be an appetite to add this as an option."

I just found the vim dev group. I'll post there. It's a little weird that Vim is the only text editor that has this behavior.

On Saturday, October 11, 2025 at 4:25:03 AM UTC-5 Yee Cheng Chin wrote:
I don't think the issue is asymmetric as you claimed? gj/gk exhibits
the same jumping behavior both up and down (which is also shown in
your video). When you go to a new line, Vim tries to fit the entire
wrapped line with the cursor in the whole screen which is why it feels
jumpy. I don't think there is a builtin way to fix this. You could
write a script to re-scroll the text using Ctrl-E/Ctrl-Y when you do
gj/gk to get around this issue though. You could of course file an
issue to Vim to see if there will be an appetite to add this as an
option.

On Fri, Oct 10, 2025 at 2:38 PM Marc Adler <marc....@gmail.com> wrote:
>
> I use Vim to write text, ie prose with paragraphs.
>
>
> Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.
>
>
> The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.
>
>
> Smoothscroll fixes this, but only when you're scrolling down.
>
>
> Is there a way to make it work when scrolling up?
>
>
> Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor.
>
>
> Vim:
>
> https://imgur.com/a/u83V2TA
>
>
> VSCode:
>
> https://imgur.com/a/8dhcXo1
>
>
> Is there a way to fix this? Like I said, this behavior is unique to Vim.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/49470204-89b2-436c-be22-98a1aea2753dn%40googlegroups.com.

Saturday, October 11, 2025

Re: Scrolling behavior when using gj and gk is jumpy

The purpose of j, k, gj, and gk is to _position the cursor_ for the next editing command.

They might also move the buffer up or down relative to the viewport, but that is only a _side effect_ of having the cursor at the top or bottom of the window.

:help 'smoothscroll' works perfectly, but _for actual "scrolling" commands_, which j, k, gj, and gk are not. 

Use Ctrl-E, Ctrl-Y, etc. to _scroll_.

See :help scrolling.

On Saturday, October 11, 2025 at 11:25:03 AM UTC+2 Yee Cheng Chin wrote:
I don't think the issue is asymmetric as you claimed? gj/gk exhibits
the same jumping behavior both up and down (which is also shown in
your video). When you go to a new line, Vim tries to fit the entire
wrapped line with the cursor in the whole screen which is why it feels
jumpy. I don't think there is a builtin way to fix this. You could
write a script to re-scroll the text using Ctrl-E/Ctrl-Y when you do
gj/gk to get around this issue though. You could of course file an
issue to Vim to see if there will be an appetite to add this as an
option.

On Fri, Oct 10, 2025 at 2:38 PM Marc Adler <marc....@gmail.com> wrote:
>
> I use Vim to write text, ie prose with paragraphs.
>
>
> Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.
>
>
> The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.
>
>
> Smoothscroll fixes this, but only when you're scrolling down.
>
>
> Is there a way to make it work when scrolling up?
>
>
> Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor.
>
>
> Vim:
>
> https://imgur.com/a/u83V2TA
>
>
> VSCode:
>
> https://imgur.com/a/8dhcXo1
>
>
> Is there a way to fix this? Like I said, this behavior is unique to Vim.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/de12bf6e-8999-47a5-bdfa-3be9e7f6c724n%40googlegroups.com.

Friday, October 10, 2025

Re: Scrolling behavior when using gj and gk is jumpy

I don't think the issue is asymmetric as you claimed? gj/gk exhibits
the same jumping behavior both up and down (which is also shown in
your video). When you go to a new line, Vim tries to fit the entire
wrapped line with the cursor in the whole screen which is why it feels
jumpy. I don't think there is a builtin way to fix this. You could
write a script to re-scroll the text using Ctrl-E/Ctrl-Y when you do
gj/gk to get around this issue though. You could of course file an
issue to Vim to see if there will be an appetite to add this as an
option.

On Fri, Oct 10, 2025 at 2:38 PM Marc Adler <marc.adler@gmail.com> wrote:
>
> I use Vim to write text, ie prose with paragraphs.
>
>
> Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.
>
>
> The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.
>
>
> Smoothscroll fixes this, but only when you're scrolling down.
>
>
> Is there a way to make it work when scrolling up?
>
>
> Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor.
>
>
> Vim:
>
> https://imgur.com/a/u83V2TA
>
>
> VSCode:
>
> https://imgur.com/a/8dhcXo1
>
>
> Is there a way to fix this? Like I said, this behavior is unique to Vim.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CAHTeOx_iK55vy2xeOk7UCy%3DK-eeC%2B%2BVU_24Ri5zZLUKqMFg%3D5A%40mail.gmail.com.

Re: Vimdiff counting dark blue lines

What is a "unique" line in your example? All the lines in each diff block are different. That's why they are in the diff to begin with. The "dark blue" lines are just the lines that are extra compared to the other side in this example. Vim doesn't by default do line similarity tests, and it doesn't know that "Bookmarks" and "Bookmarks Toolbar" are similar lines. Maybe I don't understand what you are asking here.

Note: I said Vim doesn't do line similarity tests by default because if you do "diffopt+=linematch:100" it does do that but I don't think you are using that.

On Tue, Oct 7, 2025 at 11:24 PM Ben Yip <yebenmy@gmail.com> wrote:
`git diff --numstat A B` is a bit easier.

On Mon, Oct 6, 2025, 17:26 K otgc <konthegoldcoast@gmail.com> wrote:
'Tis not so simple as sideX minus sideY.
Out of screenshot, Bookmarks1 indeed has unique added lines that Bookmarks2 doesn't have.
However Bookmarks2 also has unique added lines that Bookmarks1 doesn't have.

I solved this 3 ways:
1:
manual count

2.
$ diff Bookmarks1 Bookmarks2 | grep '^<' | wc -l 42 $ diff Bookmarks1 Bookmarks2 | grep '^>' | wc -l 22

3.
$ diff <(sed '1,2d' Bookmarks1) <(sed '1,2d' Bookmarks2) | grep '^>' | wc -l 21 $ diff <(sed '1,2d' Bookmarks1) <(sed '1,2d' Bookmarks2) | grep '^<' | wc -l 41

On Sunday, 5 October 2025 at 08:54:15 UTC+2 Yee Cheng Chin wrote:
I'm imagining your diffopt does not have "inline:char" or "inline:word" right? In this case, the "dark blue lines" are basically "added lines" that are just the number of lines on the left minus the number of lines on the right. You just need to subtract them.

In order to count number of added/changed lines, you need some way of querying them using Vimscript, and currently Vim has pretty limited APIs for querying the diff structures. The one that you may want to use is `diff_hlID`. For example you can use diff_hlID(4321, 1)->synIDattr("name") and check if it's non-empty and count the lines between two sides. It requires a bit of scripting to work. There isn't a simple command to count this. I think it's more helpful if you explain exactly why you need to count these lines to begin with though.

On Fri, Oct 3, 2025 at 4:07 AM K otgc <kontheg...@gmail.com> wrote:
So not simply adding numbers to lines/rows, but totalling the unique added lines on the left and the right windows.

On Thursday, 2 October 2025 at 09:19:07 UTC+2 K otgc wrote:
The dark blue lines would be unique added lines.screenshot_20251002_091657.png

On Tuesday, 30 September 2025 at 18:43:47 UTC+2 K otgc wrote:
Hello,
would there be a command to count the dark blue lines on the vimdiff Bookmarks1 and Bookmarks2 please?

Once I figured out how many extra lines there are, I can then work on some type of merge.

At the bottom of the vimdiff Bookmarks1 and Bookmarks2, there's some information showing:
Bookmarks1  4675,1  Bot and Bookmarks2  4655,1  Bot
I guess this means Bookmarks1 has 20 more lines thank Bookmark2.
However this isn't much help.
What I really need is Bookmarks1 has these dark blue lines for lines of data which isn't in Bookmarks2.
Vice versa too.

Then the fun bit merging or manually diffget and diffput each and every single line, which might be out of the question if too many.

Many thanks for any suggestions.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/4302280d-2e8f-45d9-bcda-7b0f7100490en%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/187336f2-b018-447f-88c5-63e23021f940n%40googlegroups.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CAOhRes8hePMRdkzgO1n25hAbY4TQ4j8GOyi2xr7OeoX1MQncgg%40mail.gmail.com.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/CAHTeOx8%3DyjK7fd5jq84CtxVr%3DzXBOTSb456CVOOrHBbdosAZdw%40mail.gmail.com.

Scrolling behavior when using gj and gk is jumpy

I use Vim to write text, ie prose with paragraphs.


Vim interprets a paragraph as a single line, but it's good at displaying line breaks anyway.


The problem is that it skips up and down by paragraph when you scroll up and down with gj and gk, making the text jerky and difficult to read.


Smoothscroll fixes this, but only when you're scrolling down.


Is there a way to make it work when scrolling up?


Here's an example of what I'm talking about. The first is Vim (Neovim) and the second is VSCode. The VSCode behavior is what you see in every other text editor. 


Vim:

https://imgur.com/a/u83V2TA


VSCode:

https://imgur.com/a/8dhcXo1


Is there a way to fix this? Like I said, this behavior is unique to Vim. 

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/vim_use/6ac646eb-a298-4540-be5f-5e5b884a1803n%40googlegroups.com.