diff --git a/src/main/java/com/maddyhome/idea/vim/helper/EditorHelper.java b/src/main/java/com/maddyhome/idea/vim/helper/EditorHelper.java index 8ee54e3fb..564ac8f0d 100644 --- a/src/main/java/com/maddyhome/idea/vim/helper/EditorHelper.java +++ b/src/main/java/com/maddyhome/idea/vim/helper/EditorHelper.java @@ -342,7 +342,7 @@ public class EditorHelper { final int offset = y - ((screenHeight - lineHeight) / lineHeight / 2 * lineHeight); final @NotNull VimEditor editor1 = new IjVimEditor(editor); - final int lastVisualLine = EngineEditorHelperKt.getVisualLineCount(editor1) - 1; + final int lastVisualLine = EngineEditorHelperKt.getVisualLineCount(editor1) + editor.getSettings().getAdditionalLinesCount(); final int offsetForLastLineAtBottom = getOffsetToScrollVisualLineToBottomOfScreen(editor, lastVisualLine); // For `zz`, we want to use virtual space and move any line, including the last one, to the middle of the screen. diff --git a/src/main/java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt b/src/main/java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt index e3c84cc8b..066e9d0ab 100644 --- a/src/main/java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt +++ b/src/main/java/com/maddyhome/idea/vim/helper/ScrollViewHelper.kt @@ -59,7 +59,7 @@ internal object ScrollViewHelper { // that this needs to be replaced as a more or less dumb line for line rewrite. val topLine = getVisualLineAtTopOfScreen(editor) val bottomLine = getVisualLineAtBottomOfScreen(editor) - val lastLine = vimEditor.getVisualLineCount() - 1 + val lastLine = vimEditor.getVisualLineCount() + editor.settings.additionalLinesCount // We need the non-normalised value here, so we can handle cases such as so=999 to keep the current line centred val scrollOffset = injector.options(vimEditor).scrolloff