Vim:重新格式化和重新缩进注释的自动方式?

标签 vim formatting

我有一些代码文档,我想很好地格式化:

# book_id - integer
# chapter_id - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count - integer

我安装了 Tabular.vim,它让我走到了这一步:
# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the book's url
# view_count   - integer

我想要一些自动化的方式来生成这样的代码。也就是说,包装到 79 个字符,如果从前一条评论继续一行,则缩进。我得到的是这样的:
# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the
# book's url
# view_count   - integer

我要找的是这个:
# book_id      - integer
# chapter_id   - integer (Optional)
# relative_url - Text: the url of the screencast file on S3, relative to the
#                book's url
# view_count   - integer

是否可以在现有插件或热键序列中执行此操作?我知道 gq , 这会将文本重新格式化为 vim 中设置的字符宽度,但不会在注释等内容中添加缩进。

最佳答案

您可以使用 formatlistpat选项(:set fo+=n 需要工作):

1.删​​除#

:%s/^# //

2.设置flp选项
:setl flp=^[^-]*-\\s

3.进行格式化

嘎嘎嘎

4. 前置 #
:%s/^/# /

您也可以使用 indentexpr选项:

2a.套装inde选项
:setl inde=15

2b.插入空行
:g/^/pu_

5.删除空评论
:g/^# $/d

关于Vim:重新格式化和重新缩进注释的自动方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629551/

相关文章:

vim - gvim 的尾部功能

java - 格式化日期以用于 Java 中的文本到语音转换

android - Google Play 应用说明格式

css - HTML CSS 容器中并排的动态 DIV 数量,每个 div 具有动态高度

vim - 如何为 Vim 卸载/删除带有病原体的插件

VIM 键绑定(bind)在缩进整个文件后跳回到初始位置

c++ - vim + C++ : insert a uuid in a guard clause

Vim 技巧 - 如何将目录视为 "folder"?

java - NumberFormat/DecimalFormat 的线程安全动态模式

asp.net - 在 ASPX 页面中格式化 Gridview 显示