在 Vim 中模拟打字机滚动

在 Vim 中模拟打字机滚动

我一直使用 WriteRoom 来满足我不受干扰的写作需求。但自从我最近决定改用 Vim(或者更具体地说是 MacVim)以来,我尝试减少对其他文本编辑器的使用。

Vim 可以重现 WriteRoom 的大部分功能,但唯一让我无法切换的是“打字机滚动”模式。对于那些没有使用过 WriteRoom 的人来说,此功能可让您始终在同一行上书写(非常像打字机),因此您始终专注于正在写的内容,而不会被已写的内容分散注意力。当您开始新行时,所有文本都会向上滚动。

我已经做好了准备,用谷歌搜索了所有我认为相关的内容,但我只找到了“插件”和其他 Vim配置它们让 Vim 看起来像 WriteRoom,但从未提供过这个神圣的功能(也许我使用了错误的关键词,因为我不是母语人士)。

虽然我发现了文章说通过一个简单的设置就可以了,但我无法让它工作,无论是在终端还是在 MacVim 中......如果这对你有用,我很高兴听到如何(我已经从一个空白的 .vimrc 开始,也许你需要激活一些其他的东西)。

就代码而言,此功能不是很有用,因此如果它无法开箱即用,我也不会感到惊讶。在这种情况下,如果您有任何关于如何编写脚本的线索(尽管我不熟悉 Vim 脚本,但我可以研究一下),那么我可能会尝试为此制作一个小插件。

答案1

set scrolloff=999在这里一直运行良好,但从长远来看我发现它很烦人。

它不依赖于除 Vim 未处于compatible模式之外的任何其他东西。只需将其添加到您的~/.vimrc就足够了。

答案2

我尝试过set setscrolloff=999,这似乎是官方的解决方案,但正如评论中指出的那样,它只在我创建了以下几行之后才起作用光标的。

我使用 Vim 才一周,所以我不是专家,我也不知道这是否是最好的选择,但你可以将其添加:inoremap <CR> <CR><Esc>zzi到你的 vimrc 中。这样,至少当你到达屏幕中间时,你的当前行(即段落)就会始终居中。

答案3

以下是在 vim 中获得完整打字机滚动效果的解决方法。以及

 :set scrolloff=999

在 .vimrc 中,在文件末尾添加一堆空白行或注释行,这样最后一行下面总会有一些“上下文”。您可以通过在 .vimrc 中使用包含空白行(以及您想要的其他内容)的模板文件和插入模板的命令来自动执行此操作,如下所示:

com New :0r ~/lib/templates/new.txt

相关内容