在 Vim 中滚动长换行

2024-03-16

Problem:在写散文时,使用时滚动会以意想不到的方式工作j向下滚动。当我在文本的两个长段落(vim 中的换行)之间滚动时,使用j,当到达下一个长段落(行)时,文本从屏幕底部“跳”到顶部,将段落(行)的第一个单词与屏幕顶部对齐(参见下面的屏幕截图)。

Affected:热爱 Vim 并想用它来写散文的人。

Expected:我希望段落(行)跳到屏幕中间或继续滚动光标在底部。否则跳跃太刺耳了——我失去了背景。两个问题:1)是否可以更改 .vimrc 中的默认行为?2)如果不是,那么编写一个插件来改变行为有多可行?

相关资源:

  • http://vim.1045645.n5.nabble.com/Long-lines-and-scrolling-td1183898.html http://vim.1045645.n5.nabble.com/Long-lines-and-scrolling-td1183898.html
  • http://vim.wikia.com/wiki/Move_through_wrapped_lines http://vim.wikia.com/wiki/Move_through_wrapped_lines
  • http://vim.1045645.n5.nabble.com/Scrolling-Long-Lines-Revisited-Again-td5031203.html http://vim.1045645.n5.nabble.com/Scrolling-Long-Lines-Revisited-Again-td5031203.html

For example: here I am scrolling down some dummy text: frame1.

After jj the next paragraph has moved up to the top of the screen: frame2

我的 .vimrc 是here https://github.com/denten/.dotfiles/blob/master/。散文模式是:

command! Prose setlocal linebreak nolist wrap wrapmargin=0
nnoremap k gk
nnoremap j gj

Vim 本质上是一个基于行的编辑器。你正在使用:set wrap显示整个长行。尽管如此,Vim 仍然试图保持开始当前长线可见(对于诸如:set number),它显示了整条线的大部分内容。如果行过长(占据了大部分窗口,如屏幕截图所示),则会导致当前行滚动到窗口顶部。恐怕没有什么可以阻止这一点。您只能通过增加 Vim 窗口的大小或在文本中使用硬换行符进行编辑来解决此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Vim 中滚动长换行 的相关文章

  • 如何在 Vim 中创建行号和文本之间的边框

    我希望在行号右侧和文本左侧有一条细边框线 您可以使用不同的颜色来突出显示LineNr 例如 hi LineNr cterm bold ctermbg gray ctermfg black gui bold guibg gray guifg
  • 在 Vim 中,选择、删除或注释掉大部分多屏幕文本的最佳方法是什么?

    在像 Eclipse 这样的 IDE 中选择延伸到多个屏幕的大量文本相当容易 因为您可以使用鼠标 但是最好的方法是什么 例如 选择并删除多屏幕文本块或写入例如三个大方法导出到另一个文件 然后在 Vim 中删除它们以进行测试 当通过 putt
  • 不将所需的文件包含到 vim 全方位补全中

    如果我尝试在具有 require xxx 语句的 Ruby 文件中自动完成 它会开始扫描所需的所有文件 以及所需文件所需的文件 它每次都会这样做 是否可以使 vim 自动完成功能不扫描所需文件或仅扫描特定路径中的文件 例如仅 app 以下之
  • Linux/Ubuntu 目录位置 ~/.vim/syntax/

    文件夹的默认位置在哪里 vim syntax 在Linux系统上 我正在尝试添加一个 Python 插件 您正在寻找 runtimepath 选项 该文档非常详细 使用 help runtimepath 但我会尝试在这里总结一下 The 运
  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • Vim 和 snipMate(插件)- 添加新代码片段不起作用

    我正在尝试为我的 snipMate 插件创建一个新的片段 我使用一些名为 即 myfile endfile 的文件 所有 endfile 文件都应具有与 html 文件相同的 片段 所以我做了 cp html snippet endfile
  • 如何在Vim中正确显示UTF-8字符

    我想要 需要编辑包含 UTF 8 字符的文件 并且我想使用 Vim 在我被指责问以前问过的问题之前 我已经阅读了有关编码 文件编码 s 术语编码等的 Vim 文档 用 google 搜索了该主题 并阅读这个问题 https stackove
  • 使用关键字启动 syn 区域

    我想用 virtual 启动一个区域 以用不同的颜色突出显示所有虚拟方法 但是 virtual 已经在 cpp vim 文件中定义为关键字 因此永远不会执行区域匹配 我尝试了以下方法 syn region cVirtualMethod st
  • Vim:领导不工作

    当尝试使用时vim latexsuite的映射 使用的是Leader不工作 nmap n
  • 在 Vim 中粘贴拉出的行后,为什么不能再次粘贴它?

    这个问题以前可能已经回答过 但我尝试搜索 但找不到任何答案 我对 Vim 有点陌生 遇到以下问题 一旦我拉出一行并粘贴它 我就无法再次粘贴它 例如 假设在Word环境中您将复制文本 粘贴它 然后您可以进一步粘贴它 但在 Vim 中 一旦我粘
  • gvim中的鼠标输入

    标准鼠标输入可以在 vim 中自定义吗 在我的例子中是 vim 插件也是可以接受的选择 我特别感兴趣的是 覆盖 双击某个单词 这样 gvim 就不仅仅是突出显示该单词 而是进行搜索 从而突出显示文件中该单词的所有实例 我在其他编辑器中看到过
  • 使用 Vim 作为 HTML 编辑器

    您知道 Notepad 如何具有此功能 当您单击标签 例如 时 它也会自动突出显示结束标签 它叫什么 如何调整 Vim 使其也具有此功能 还有其他方法可以将 Vim 变成强大且高效的 HTML 编辑器吗 我在 vim 中完成所有 HTML
  • 在 vim 中设置文本宽度而不覆盖特定于文件类型的内容

    我希望 vim 中默认的文本宽度为 80 但如果特定文件类型有自己的文本宽度 特别是 gitcommit 其中 tw 72 我希望 vim 尊重该宽度 在我的 vimrc 中 我有以下行 set tw 80 我也尝试过 setlocal t
  • Vim 重复点(“.”)命令缓冲区?

    我真的很喜欢 YankRing 的行为 它让我可以访问我最近完成的几件事y固定或d已删除或c不假思索地被吊死了 然而 这样的补充功能对于 重复命令 最常见的是当我键入我真正想重复的内容时 然后按x清理一些东西 通常 可以通过视觉模式拉动我刚
  • 如何在 VIm 和终端中始终拥有相同的当前目录?

    我希望我的终端当前目录跟随我的 VIM 目录 Example 在终端中 gt pwd gt Users rege gt vim 然后在VIM中 cd Users rege project
  • 如何在 Vim 中使 shift+空格键向上翻页?

    我的 vimrc 中有一个条目 当我按空格键时 它会在视口中向下翻页 它看起来像这样 map
  • vim 将输出重定向到quickfix

    是否可以将命令的输出重定向到快速修复窗口 我正在运行的命令是 java r 并希望输出能够进入快速修复窗口 我建议两个选项之一 配置makeprg像您想要的那样运行 java 或者创建映射或命令来填充快速修复列表而不更改任何其他内容 选项
  • VIM语法折叠:禁用折叠多行注释

    我在 vim 7 3 中使用 语法 折叠方法 在 vimrc中 set foldmethod syntax 当我打开 Test cpp 时 包含 A function with a multi line comment This takes
  • Vim:无法让病原体加载包

    我在 Stackoverflow 和 github 等上阅读了有关此问题的其他五个问题 但一直无法解决这个问题 此时我完全迷失了 我使用的是 Ubuntu 11 10 和 Vim 7 3 这是我的 vimrc set nocp call p
  • 改变 vim 'gutter' 颜色

    请参阅下面我如何配置 vim 的屏幕截图 gutter 即出现 和 符号的位置 使用 vim 的这个令人惊叹的 sublime text 端口显示我的 git 状态 https github com airblade vim gitgutt

随机推荐

  • 使用 ACL 的 Redis Docker 镜像

    我正在尝试测试新的 Redis 6 ACL 配置 我想使用尽可能简单的配置来运行测试以熟悉配置 我的 Redis 将作为 Docker 容器运行 请考虑一下我是一个 Redis 新手 My Dockerfile FROM redis 6 2
  • “旧版”和“稳定版”有什么区别?

    我正在使用 JQuery Mobile 有两个可用版本 稳定版本和旧版本 我对后一种不太熟悉 什么是旧版本 或者说和稳定版有什么区别 生产现场推荐使用哪一种 非常感谢 遗留版本是旧的稳定版本 仍然可用 并且可能受支持 因为有人可能需要它 例
  • 在 angularJS2 项目中哪里放置/找到 systemjs.config.js 文件?

    我是 Angular 2 的新手 并尝试在我的项目中使用 ng2 datetime picker 现在 在安装 ng2 datetime picker 包后 当我运行该项目时 得到了404 错误指出未找到 ng2 datetime pick
  • GWT 中的 Java 8 支持

    这似乎是一个非常基本的问题 但我到处搜索 发现几乎没有任何地方提到它 所以 我就在这里问一下 目前在 GWT 中支持 Java 8 新语言结构的计划是什么 此外 提议的 Java 8 库的哪些子集将用于客户端模拟 流 API 新的日期 时间
  • 在 C/C++ 中解析二进制消息流

    我正在编写二进制协议 Javad GRIL 协议 的解码器 它由大约一百条消息组成 数据格式如下 struct MsgData uint8 t num float x y z uint8 t elevation 这些字段是 ANSI 编码的
  • 如何在运行时跳过单元测试?

    提前致谢 我们使用 selenium Web 驱动程序进行了一些自动化测试 这些测试非常棒 并且提供了非常好的回归包 问题是现在我们的代码中有功能切换 所以我需要说忽略这些测试 除非该功能切换已打开 关闭 我在谷歌上找不到任何真正的东西 理
  • 用 C 将文本文件中的数字读取到数组中

    我是一个编程菜鸟 所以请耐心等待 我正在尝试将文本文件中的数字读取到数组中 文本文件 somenumbers txt 仅包含 16 个数字 例如 5623125698541159 include
  • Laravel 5:在服务器环境上运行迁移,而不是在本地

    我在 Laravel 5 应用程序中创建了一组简单的数据库迁移 它们在我的本地开发环境中运行良好 现在是时候在我的新生产服务器环境上运行迁移了 我已经配置了数据库连接并部署了应用程序 并且应用程序可以看到数据库 但没有表 因此需要运行迁移
  • 使用分类数据作为 sklearn Logistic 回归中的特征

    我试图了解如何使用分类数据作为特征sklearn linear model s LogisticRegression 我当然知道我需要对其进行编码 我不明白的是如何将编码特征传递给逻辑回归 以便将其作为分类特征进行处理 而不是将其在编码为标
  • Vim swp 文件干扰存储库 vimdiff

    我的设置是使用 vim 特别是图形模式下的 MacVim 编辑源文件 然后使用 vimdiff 再次在图形模式下 进行 mercurial 存储库差异 有时 当我进行 diff 时 vim 会给出错误 交换文件 nn src imm mod
  • 将 SharedPreferences 传递给 doInBackground()

    我试图将 SharedPreferences 首选项作为参数传递给 AsyncTask 中的 doInBackground 函数 我已经将一个字符串 url 传递给它 所以我需要将首选项也作为字符串传递 我可以简单地使用 prefs toS
  • Python tkinter 通过单选按钮输入小部件状态切换

    一个简单的问题 对于像我这样的 tkinter 新手来说不是那么简单 我正在构建一个 GUI 我想要有两个单选按钮来驱动 Entry 小部件的状态 启用或禁用 用户将在其中输入数据 当按下第一个单选按钮时 我希望禁用该条目 当按下第二个单选
  • 春季侦探行李传播未传播/工作

    我们当前使用的是 sleuth 2 2 3 RELEASE 我们看不到 http 标头中传递的 userId 字段没有传播 下面是我们的代码 BaggageField REQUEST ID BaggageField create x vca
  • 找不到 ProfileCommon

    我在我的代码中收到错误 ProfileCommon 无法找到 我不知道如何修复该错误 我使用 system Web Profile 放置命名空间 但这里仍然出现错误 有人可以帮忙怎么做吗 如果您知道请帮助我 谢谢 public partia
  • CSS Flexbox - 根据屏幕尺寸组织弹性项目

    我有一个弹性项目容器 我试图根据屏幕尺寸以不同的布局组织不同数量的弹性项目 例如 在桌面上 我想要有 4 个容器 每个容器有 2 个项目 布局在 2x4 网格中 每个单元格为 1x2 我似乎无法理解的是纯粹使用 Flexbox 在平板电脑上
  • gnuplot:在 y 轴上绘制 4 列的文件

    我有一个包含 4 个数字 最小值 最大值 平均值 标准差 的文件 我想用 gnuplot 绘制它 Sample 24 31 29 0909 2 57451 12 31 27 2727 5 24129 14 31 26 1818 5 0419
  • Python 多重处理是否从父级复制所有模块?

    我注意到我可以访问子进程中位于子进程函数 目标之外的函数和模块 所以我想知道当我在 python 中创建子进程时它是否会复制当前进程中的所有内容 为什么我可以访问子目标之外的函数和导入的模块 from multiprocessing imp
  • 测试时如何访问request.user?

    我刚刚从 Django 1 3 1 迁移到 Django 1 4 这样做之后 我的大量测试开始出现这些错误 Traceback most recent call last File Volumes Data ADay Website Bac
  • 为什么使用 Spark Direct Stream 从 kafka 接收的元组的第一个成员为 null

    当使用KafkaUtils createDirectStream从kafka读取消息时 Tuple2的v1 1成员为null KafkaUtils createDirectStream streamingContext String cla
  • 在 Vim 中滚动长换行

    Problem 在写散文时 使用时滚动会以意想不到的方式工作j向下滚动 当我在文本的两个长段落 vim 中的换行 之间滚动时 使用j 当到达下一个长段落 行 时 文本从屏幕底部 跳 到顶部 将段落 行 的第一个单词与屏幕顶部对齐 参见下面的