在 Vim 中将长行换行?

2024-01-04

I've noticed that gq does not work when I paste in a long line. For example, with a textwidth=72 and formatoptions=tcroqbnl, gq refuses to wrap this (in insert mode, I pasted the entire label contents, and then exited insert mode with ESC):

<label for="contact_reason_1">To get assistance with or to confirm a tire replacement recommendation</label>

如果我添加换行符(例如,在“to”之后),它就会换行。有趣的是,如果我把线重新连接在一起,它会很高兴地再次包裹它。所以 VIM 似乎在某种程度上记住了“哦,这是一个粘贴,不要包裹它”。

我如何关闭该功能?我希望 gq 在命令模式下always工作。服用l out of formatoptions似乎没有帮助(也不应该,这不是插入模式)。


澄清

Yes, I'm using a motion command, in particular, gq<Right>. formatexpr and formatprog are both unset. If it matters, this is in gvim on Debian GNU/Linux, vim version 7.2p284.

重现步骤

  1. 在打开的文件上弹出 gvim。
  2. Press i to get into insert mode, then type This is a long line. A long line. But not wrappable yet. Or yet. Soon.
  3. Press ESC, then I. Type Now putting text in front of the long line. note: there is a space after the final period, can't get SO to show it, except when this note is here. FUN.
  4. Press ESC, then A. Type And some after. note: space before the And, same SO problem.
  5. Press ESC one last time. Now try gq<Left>, note it only wraps And some after.; I can't get vim to wrap the rest of the line (without going into insert mode and doing a line break by hand, then it works).

修复这种状态是可行的;在“now”后面添加一个换行符,然后单击“撤消”可以使换行再次起作用。 WTF。


gq isn't enough to wrap the text. You have to give it a motion over which to wrap (like gqj) or tell it to wrap the current line with gqq. Are you sure you're not just mistyping it?

如果不是,那是什么formatexpr and formatprg选项设置为,如果有的话?

Update
问题是 b 设置formatoptions。这告诉 Vim 仅对上次插入期间添加的文本进行换行。

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

在 Vim 中将长行换行? 的相关文章

  • 如何让 vim 很好地对齐三元 ?: 运算符?

    我喜欢使用三元 运算符编写代码 如下所示 std string result input empty createNewItem processInput input 我如何配置vim 以便在输入后按回车键createNewItem 缩进下
  • 将文本粘贴到 Macintosh 上的 emacs 中

    我使用的是 Macintosh 并且使用 终端 作为我的 shell 当我从任何窗口复制文本 通过鼠标拖动 然后鼠标右键菜单 gt 复制 然后将文本 鼠标右键 gt 粘贴 粘贴到运行 emacs 的终端中时 它不会充当粘贴 相反 它就像输入
  • Vim 状态栏预测/完成?

    昨天我玩了一些 vim 脚本 并设法对我目前正在输入的内容进行一些超出状态栏的预测 通过循环 请参阅屏幕截图 灰色 黄色条 问题是 我不记得我是如何得到它或找到我用于 vim 魔法的代码片段 我记得它非常简单 它要么是文档中的示例 要么是我
  • 使用关键字启动 syn 区域

    我想用 virtual 启动一个区域 以用不同的颜色突出显示所有虚拟方法 但是 virtual 已经在 cpp vim 文件中定义为关键字 因此永远不会执行区域匹配 我尝试了以下方法 syn region cVirtualMethod st
  • 在 Vim 中粘贴拉出的行后,为什么不能再次粘贴它?

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

    我一直在尝试编译vim 7 3 with 蟒蛇2 7支持苹果系统 X 10 6 Vim 本身编译得很好 但嵌入的 python 编译得不太好 我已采取的步骤 hg clone https vim googlecode com hg vim
  • 如何使用 system() 函数的第二个参数(输入)

    vim 的文档system函数对第二个参数是这样说的 当给出 input 时 该字符串将写入文件并作为标准输入传递给命令 我从中了解到的是 如果你system通话看起来像这样 call system node something js fi
  • 如何在 VIm 和终端中始终拥有相同的当前目录?

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

    我的 vimrc 中有一个条目 当我按空格键时 它会在视口中向下翻页 它看起来像这样 map
  • VIM 分块插入

    我想在 VIM 中选定的文本块的开头插入一个哈希 Ruby 注释 我在可视模式下选择了线条 但如何对所有线条执行相同的操作 您有两个主要选择 在块视觉模式中选择 ctrl v 然后使用I沿着整个块的左侧插入相同的东西 相似地A追加 看分块运
  • 如何在 Vim 中仅在某些上下文中启用语法隐藏?

    我想隐藏名称基于希腊符号的变量 并将它们转换为 Unicode 等效符号 类似于vim 可爱的 python https github com ehamberg vim cute python作品 例如 我有这个 syntax match
  • Vim:设置 ctag 很困难。子目录中的源代码在项目根目录中看不到标签文件

    我今天试图在 Vim 上设置 丰富的 ctags 但很难让它正常工作 我在命令行上使用以下命令生成 ctags 文件 cd myproj ctags R 这会将标签文件放在 myproj 根目录中 然而 当我处理位于根目录中的源代码时 Vi
  • 按文件类型设置 Vim 空白首选项

    在我的工作中 我需要遵循房屋风格进行缩进 如下所示 编码 html 和 ruby 时有 2 个空格 编码 javascript 时使用制表符 建议使用 tabwidth 4 为每个文件类型指定不同的空白首选项的最佳方法是什么 方法有很多 但
  • 如何中断一个花费太多时间的 Vim 命令?

    有时 Vim 命令需要花费太多时间来执行 典型示例 gf通过网络发送具有巨大路径的命令 最多可能需要 30 秒才能结束 我想在执行过程中中断它 有没有办法取消命令执行并返回到正常模式 无需杀死 Vim 并重新启动 您可以中断它发送 SIGI
  • 在 Vim 中撤消光标移动

    假设我的光标位于下面的代码中 internal static SingleSelectList
  • Vim 插入模式下光标线颜色变化

    有一个很好的片段可以改变光标颜色 if term xterm rxvt use an orange cursor in insert mode let t SI
  • C#/WPF:禁用 RichTextBox 的文本换行

    有谁知道如何禁用文本换行RichTextBox 例如 如果我有一个大字符串不适合窗口 RichTextBox将字符串中无法显示的部分放在新行中 我想禁用它 并使其仅通过使用Scrollbar 多谢 Cheers A RichTextBox
  • vim 脚本“input()”函数不需要用户按 Enter 键

    我想让用户调用我的函数 然后让该函数请求用户输入 但我不希望用户在输入 input 函数所需的字母后必须输入 enter 例如 用户应该能够键入 h j k l 等单字母命令 并且键入的每个字母都会在我的函数中循环 直到用户键入 x 退出
  • jqgrid长文本换行

    在jqgrid中 我们从数据库获取长文本 但在JQgrid中显示时需要换行 有什么方法可以换行长文本 没有任何空格 我们只有 110px 的空间用于收款人姓名字段 因为我们有多个列需要显示 我们的代码就像 name firstPayeeNa
  • 代码折叠未保存在我的 vimrc 中

    我将以下代码添加到我的 vimrc 中 save and restore folds when a file is closed and re opened autocmd BufWinLeave mkview autocmd BufWin

随机推荐

  • HttpWebRequest 对象的诊断转储

    有没有什么好方法 除了繁琐地查询每个属性之外 在 C 中为 HttpWebRequest 构建诊断转储字符串 对于简单的对象 人们可以使用new JObject theObject 但这不适用于 HttpWebRequest 并且toStr
  • 使用 url 创建 yii2 动态页面:www.example.com/pageName

    在我的系统中 用户需要有他们的个人资料页面 我要求这些页面将显示在 url 中 如下所示 www example com John Doe www example com Mary Smith 如何在 yii2 中实现这些 URL 这些 J
  • 使用VBA获取word中的所有交叉引用

    我有一个相当大的 Word 文档 gt 400 页 其中有很多标题的交叉引用 到目前为止 我一直引用标题的标题 但现在我想更改它并引用标题所在的页面 我没有通过 GUI 找到解决方案 当然 手动处理除外 所以我正在考虑编写一些 VBA 不幸
  • XPATH获取text_1和text_2之间的所有节点

    我有这样的 HTML div text1 a link 1 a a link 2 a text2 a link 3 a text3 div 我想获取之间的所有节点text1 and text2 问题是没有p or span标签 只有纯文本
  • Google App Engine 在处理信号后终止:术语

    我有一个应用程序部署为 GCP 上的应用程序引擎 它调用 API 创建 Bytes IO 流并将数据上传到云存储 有 4 个文件 大约 44mb 需要上传 文件是 URL 列表 然后将其提供给数据流 但这并不重要 一开始 我为每个文件创建了
  • 带有负秒的奇怪 mktime 逻辑

    我一直在使用 mktime localtime 进行时间管理 包括一些关于日期 时间的繁重算术 当向 mktime 提供包含负值的 struct tm 时 我注意到一些非常奇怪的事情 采取下面的代码 2013 年 11 月 3 日 洛杉矶的
  • 如何在C中分配和释放对齐内存

    如何分配与 C 中特定边界 例如缓存行边界 对齐的内存 我正在寻找类似 malloc free 的实现 理想情况下应尽可能可移植 至少在 32 位和 64 位架构之间 编辑添加 换句话说 我正在寻找一些行为类似的东西 现在已经过时了 mem
  • 在 R / Rmarkdown 中同步两个传单地图

    JS 传单允许需要同步的两个地图 https github com turban Leaflet Sync 查看同步传单地图示例here http blog thematicmapping org 2013 06 creating sync
  • 在同时活动的多个进程中更新 Java 中的数据

    我正在创建一个带有传感器的令牌环 其中每个传感器都是一个独立的进程 当我启动传感器时 它与网关通信并获取系统上已有的实际传感器的列表 问题是 每次我开始一个新进程时 我希望每个现有的传感器都能获取更新的列表 以便了解其他传感器已被添加 并且
  • 如何制作无限分页的UICollectionView?

    我有一个包含 6 页且启用分页的 UICollectionView 和一个 UIPageControl 我想要的是 当我来到最后一页时 如果我向右拖动 UICollectionView 会从第一页无缝地重新加载 void scrollVie
  • VS 2017 的 .net Core Webpack 发布失败

    我正在尝试将 net Core Angular 4 项目从 Visual Studio 发布到 Azure 在发布过程中 我收到以下错误 ERROR in gendir angular tree component dist compone
  • 求和与分组

    我有一个如下所示的数据框 全部控股基金 BrokerBestRate notional current DistanceBestRate 0 CITI 7 859426e 05 0 023194 1 WFPBS 3 609674e 06 0
  • 如何避免 Observable 中超出最大调用堆栈大小?

    我已经过滤了列表 public filteredEvents new BehaviorSubject 以及反转属性的方法checked export并将更改推回 public checkAll void this filteredEvent
  • Qt 5.5 - 触摸屏事件仅在初始(第一个)窗口中工作

    我已经设置了一个基本的 Qt Widgets Application Qt 5 5 社区 其中包含一个简单的 QWidget MainWindow 和一个附加的 QWidget SettingsScreen 在 MainWindow 中 触
  • Django - 与模型无关的自定义管理页面

    我正在使用 Django 1 7 和 Mezzanine 我希望在管理中有一些页面 工作人员可以在其中使用按钮和其他控制元素调用一些操作 管理命令等 我还想避免创建新模型 或手动创建模板并添加指向它的链接 如果可能 实现这一目标的最常见 最
  • 在 pthread_mutex_init 之前调用 pthread_mutex_lock 是否安全?

    我以前从未有机会使用 pthreads 库 但我正在审查一些涉及 pthread 互斥体的代码 我检查了文档pthread mutex lock and pthread mutex init 通过阅读这两个函数的手册页 我的理解是我必须调用
  • ES6 模块和继承

    我有以下 JavaScript 文件 src js classes Lexus js import Car from src js classes Car export class Lexus extends Car constructor
  • 两个 .NET 线程和硬件访问的问题

    我正在创建一个通过 FT2232H USB RS232 转换器与设备通信的应用程序 为了进行通信 我使用 FTDI 网站上的 FTD2XX NET dll 库 我正在使用两个线程 第一个线程不断从设备读取数据 第二个线程是Windows窗体
  • 使用自定义哈希函数插入 unordered_set

    我有以下代码来制作unordered set
  • 在 Vim 中将长行换行?

    I ve noticed that gq does not work when I paste in a long line For example with a textwidth 72 and formatoptions tcroqbn