有没有办法用 Vim 自动重新格式化大括号?

2024-05-01

我想重新格式化一些代码,如下所示:

if (cond) {
  foo;
}

to

if (cond)
{
  foo;
} 

由于这是C代码,所以我一直在看cindent/cinoptions与使用=但它似乎不处理多行规则。

我一直在看formatoptions与使用gq,而且似乎也不可能。

那么是否可以使用默认的 Vim 选项,或者我应该使用特定的插件或功能?


:%s/^\(\s*\).*\zs{\s*$/\r\1{/

分解:

^\(\s*\)= 捕获行首的空白

.*= 其他一切

\zs= 此后开始更换

{= 左大括号

\s*$= 行结束前的尾随空格

\r\1{= 换行符、捕获的空格、大括号

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

有没有办法用 Vim 自动重新格式化大括号? 的相关文章

  • 在Vim中,如何删除单词的后缀?

    在vim中 在正常模式下 如果光标位于单词中 而不是最后一个字母 de从光标位置删除单词的后缀 如果光标位于最后一个字母上 x也这样做 同时de会跳到下一个单词的末尾 您将使用什么命令在这两种情况下都有效 无论最后一个字母与否 目的是将命令
  • 在 Vim 中搜索并替换为递增值

    假设我写了一个简单的 CSS 规则 如下所示 star 10 background url stars png no repeat 0 0 而我需要10个 所以我复制了9次 star 10 background url stars png
  • 如何在vim中将菜单键(“应用程序键”)映射到Escape键?

    我认为使用菜单键退出 vim 的插入模式将是一件很棒的事情 使用 Super 键也很好 但我不确定是否可能 因为 Super 键是一个修饰符 无论如何 我找不到任何与此相关的内容 寻求您的帮助并提前致谢 我认为没有任何方法可以配置 Vim
  • .NET 电话号码解析库

    有谁知道 NET 的通用电话号码解析库吗 理想情况下 我正在寻找类似于 Ruby 的东西Phone http github com carr phone图书馆 我会选择 Google libphonenumber 库的 C 端口 https
  • 我如何在 C# 中将 07/03/2012 格式化为 2012 年 3 月 7 日 [重复]

    这个问题在这里已经有答案了 请任何人帮忙 我需要将日期 03 03 2012 显示为 2012 年 3 月 3 日等 您可以创建自己的自定义格式提供程序来执行此操作 public class MyCustomDateProvider IFo
  • 有没有办法在 Vim 中映射 Ctrl 句点和 Ctrl 逗号?

    我似乎找不到绘制地图的方法
  • ASP.NET 图表控件根据 X 轴标签上的 int 值设置月份名称

    我想用相应的月份名称替换图表 X 轴上的数字 1 2 3 这是我的实际图表 On the DataView填充的Series我有 MONTH 列 其中包含从 1 到 12 的值 我还必须手动设置Minimum and Maximum值设置为
  • 如何在 HTML/CSS 中进行制表符停止

    我想用 HTML 呈现一些文本的格式 这是一张图片 请注意带有项目符号点和段落编号的灰线 项目符号应位于页面中央 并且数字应正确对齐 我一直在尝试思考如何在 HTML 中做到这一点 但一无所获 您将如何捕获这种格式 您可以使用 before
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • vim - 如何删除 netrw?

    我正在测试https github com skwp dotfiles https github com skwp dotfiles 不幸的是它确实安装了很多我不想要的东西 例如 现在 使用空的 vimrc 当我打开 vim 时 我得到 N
  • 在 Vim 中的缩进线上按“Home”

    我有一个坏习惯 就是使用 home 键返回到行首 当我最近开始使用 vim 时 我注意到当我在缩进的行上按 home 键时 它会让我回到该行的开头 在 Notepad 我曾经使用的编辑器 中 它会让我返回到该行代码的开头 就在缩进之后 有没
  • 带有 Viper 和 Vimpulse 的 Emacs 缺少哪些 Vim 功能?

    Emacs 的一些重要功能在 Vim 中是缺失的 例如 comint 模式 并且没有脚本 插件可以替代它们 与 Emacs 相比 Vim 也有一些优点 例如模式编辑和通常更好的默认快捷键 然而 Viper 模式让我两者兼而有之 Vimpul
  • Redhat Vim 中的可视化块插入

    我的 ec2 服务器附带了 redhat vim ec2 user vim version VIM Vi IMproved 7 2 2008 Aug 9 compiled Jul 7 2012 08 03 48 Included patch
  • 将水平线添加到 html rmarkdown 文档隐藏文本部分

    我正在制作一个与 HTML 页面结合的 Rmarkdown 文档 我不想用标题或项目符号分隔某些文本部分 而是想在它们之间绘制水平线 根据http rmarkdown rstudio com authoring basics html ht
  • 在键盘快捷键上插入预定义文本

    我经常插入binding pry当我调试我的 ruby 文件时 当我使用 Vim 时 我希望将其自动化 以避免每次都重新输入 我怎样才能做到呢 我想要映射的确切顺序是 插入新行 Insert binding pry到新创建的行 返回正常模式
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • 在后台从 gVim 运行 :make

    我在 Windows 中使用 gVim 来编辑我的代码 主要是 C 我在 gVim 中使用 make 来编译项目 但这是一个阻塞操作 在编译完成之前我无法使用 gVim 我怎样才能异步执行 make 并仍然获得将错误读回 Vim 并跳转到源
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • vim 上有 cit、dit、yit(更改、删除、拉入标签内)...是否有类似坑(粘贴在标签内)之类的东西?

    使用 vim 我习惯了像这样的运动命令cit dit yit编辑 html xml 文件时 我喜欢 使用此命令后甚至更多 因为我只需按一下按键即可重复我所做的事情 我想知道是否有类似坑 粘贴在标签内 的东西已经可用 它会删除标签内并粘贴我想

随机推荐

  • 为什么Java禁止内部接口的继承?

    IE 为什么以下 循环依赖 不可能 public class Something implements Behavior public interface Behavior 由于接口不引用外部类 因此应该允许这样做 然而 编译器强迫我在类之
  • 有没有办法使用无服务器框架来验证路径

    我在后端使用无服务器框架 使用AWS 我的 serverless yml 像这样 functions getBrand handler functions brand getBrand handler events http path se
  • Rails:基于关联值的ActiveRecord查询

    我有 2 个型号 Report and Server具有belongs to 和has many 关系 我使用创建了一个访问器方法delegate这允许Report来查找其关联的Server company id 现在 我想运行一个查询Re
  • ASP.Net Web Api 未在 POST 上绑定模型

    我正在尝试将 JSON 数据发布到 Web Api 方法 但 JSON 数据未绑定到模型 这是我的模型 DataContract public class RegisterDataModel DataMember IsRequired tr
  • 在 VB.NET 中对对象列表进行排序

    我有一个乘客 对象 列表 它具有不同的属性 passenger name passenger age passenger surname 我想按年龄标准对这个列表进行排序 我该怎么做 我知道在整数 字符串列表中 List Sort 有效 但
  • 在一个 Servlet 中同时处理

    我有一个 Servlet 它接收请求 必须处理 5 个任务 从外部服务器获取数据 并将所有数据发送回订购的客户端 如何同时处理5个任务并在5个任务全部完成后继续执行servlet代码 您可以使用CoundDownLatch http doc
  • Java 双epsilon

    我目前需要一个epsilon http en wikipedia org wiki Machine epsilon类型的double 首选 java 库中的常量 而不是自己的实现 定义 据我所知Double has MIN VALUE an
  • 如何在 C# 日期时间选择器中设置最大时间和最小时间

    我在 C Windows 窗体应用程序中使用日期时间选择器 如何设置最短时间和最长时间 我有一个字符串 07 52 22 我想将其设置为最大或最短时间 我怎样才能做到这一点 DatetimePicker MinDate TimeOfDay
  • ASCII - 代码点与字符编码

    我发现一篇有趣的文章 字符代码问题教程 http jkorpela fi chars html code http jkorpela fi chars html code 解释了术语 字符代码 代码点 和 字符编码 前者只是分配给一个字符的
  • 我是否使用 jQuery noconflict 来避免插件冲突?

    UPDATE 我发现jquery bxslider http bxslider com插件本身会克隆并附加 前置导致问题的 LI 但没有解决这个问题 除非使用另一个脚本 我不得不让 jQuery 插件部分地相互冲突 盒子滑块 http bx
  • 检查运行的代码是否为单元测试用例

    我想检查正在运行的代码是否是单元测试用例 或者不为结果执行不同的代码 例如 if unit test case is running do something else do other thing 对此有什么想法吗 这是一个糟糕的方法 您
  • ActionScript 3 中的圆形滑块

    我希望在 ActionScript 中添加一个圆形滑块 非常类似于这一页 http interface eyecon ro demos drag vr html shows 它最终会改变对象的色调 返回 CMY 值 但如果它只是吐出程度 我
  • 如何通过按删除按钮从 ListView 中删除选定的项目?

    我想从 ListView 中删除一个或多个选定的项目 最好的方法是什么 我正在使用 C 和 dotnet Framework 4 您可以通过迭代来删除所有选定的项目ListView SelectedItems http msdn micro
  • Python 3.1:C3 方法解析顺序

    钻石型继承的一个非常简单的例子 class Root def f self print Root class A Root pass class B Root def f self print B class AB A B pass AB
  • 当使用 async_write_some 和 async_write 时

    我正在阅读 Boost Asio 的文档 它说 boost asio async write some可能不会将所有数据传输到对等方 考虑使用async write如果您需要确保在异步操作完成之前写入所有数据 请使用该函数 所以这是我的问题
  • VS安装时找不到符合以下参数的产品

    我已经尝试了 StackOverflow 和 VS 开发人员社区中提供的所有解决方案 但无法解决该错误 A product matching the following parameters cannot be found channelI
  • 我在 iText 中的希伯来语文本是左对齐的

    我使用以下代码在 iText 中生成希伯来语文本 它工作得很好 创建希伯来字体 并使文本从右到左流动 但文本是左对齐而不是右对齐 谁能帮我让它右对齐吗 请注意 我尝试使多列文本右对齐 并使段落右对齐 但无济于事 Thanks static
  • 设置 setAttribute() 进行行格式、line_spacing、SPACING_AFTER、SPACING_BEFORE

    我正在尝试从模板文件在 Google 文档中生成报告 当它复制文档时 它会将所有格式重置为用户的默认格式 而不是原始文档中的格式 我尝试了以下方法来尝试在文档 tableRow 和 tableCell 级别上设置格式 但创建报告时行距为 1
  • 了解 AVCaptureSession 会话预设的分辨率

    我正在 iOS 中访问相机并使用会话预设 如下所示 captureSession sessionPreset AVCaptureSessionPresetMedium 相当标准的东西 但是 我想提前知道由于此预设而获得的视频的分辨率 特别是
  • 有没有办法用 Vim 自动重新格式化大括号?

    我想重新格式化一些代码 如下所示 if cond foo to if cond foo 由于这是C代码 所以我一直在看cindent cinoptions与使用 但它似乎不处理多行规则 我一直在看formatoptions与使用gq 而且似