当前位置:  开发笔记 > 开发工具 > 正文

在VIM中,如何将一条很长的线分成多行?

如何解决《在VIM中,如何将一条很长的线分成多行?》经验,为你挑选了6个好方法。

假设我在VIM编辑器中有超长行(比如大约300多个字符).如何将其分成多行,使单词边界大致突破80个字符?

例:

This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line This is a really long line

This is a really long line 
This is a really long line
This is a really long line
This is a really long line
This is a really long line
This is a ...

he_the_great.. 243

Vim非常容易这样做(在字边界处断线).

gq{motion} % format the line that {motion} moves over
{Visual}gq % format the visually selected area
gqq        % format the current line
...

我建议你检查:help gq:help gw.

设置textwidth(tw)还会在键入时超出时自动换行.它也被使用gq,但如果禁用gq中断窗口大小或79取决于哪个先出现.

:set tw=80

通过设置格式选项以包括文本宽度,vim将在tw设置时自动中断.

:set fo+=t

只是为了找到这个的下一个人,gq只会拆分一行纯文本,它需要空格来做它的事情 (10认同)

Vim从未停止让我惊讶.这是纯金. (9认同)

这与Ctrl + j相反(将多行合并为一行). (6认同)

所以对于你的情况,`gq`命令将是``(退出插入/替换/等模式),然后是`gq80l` (5认同)

[运行`gqq`] aaaahhh,它是_beautiful_ (2认同)


小智.. 82

首先设置你的vim,以便它理解你想要80个字符:

:set tw=80

然后,暮光之城:

V

并使vim重新格式化:

gq


Wernsey.. 17

这与VIM并不真正相关,但您可以使用fmt程序

$ fmt myfile

:%!fmt%"可以让它与vim相关:) (38认同)

虽然我更喜欢vim上的gqq,但对vi很有用. (2认同)


smokedice.. 12

对于实线文本,在正常模式下使用v突出显示区域,然后按

:s/\v(.{80})/\1\r/g

这将在每个第80个字符的末尾添加换行符.

:s/       replaces within the current select
\v        uses regular expressions
(.{80})   selects 80 characters & placed them into group one
\1\r      replaces group one with group one and a newline


Michael Ande.. 6

如果你在*nix上,你可能已经fold有了.

选择您想要使用的区域v,然后您可以使用以下方法中断宽度为80的空格:

!fold --spaces --width=80

这与使用完全相同gq.

但是,如果您只想在字符80处中断而不限于空格,则可以使用:

!fold --width=80

如果你只需要一次按键就可以设置一个映射 - 我已经用过了

vmap !fold --width=80



1> he_the_great..:

Vim非常容易这样做(在字边界处断线).

gq{motion} % format the line that {motion} moves over
{Visual}gq % format the visually selected area
gqq        % format the current line
...

我建议你检查:help gq:help gw.

设置textwidth(tw)还会在键入时超出时自动换行.它也被使用gq,但如果禁用gq中断窗口大小或79取决于哪个先出现.

:set tw=80

通过设置格式选项以包括文本宽度,vim将在tw设置时自动中断.

:set fo+=t


只是为了找到这个的下一个人,gq只会拆分一行纯文本,它需要空格来做它的事情
Vim从未停止让我惊讶.这是纯金.
这与Ctrl + j相反(将多行合并为一行).
所以对于你的情况,`gq`命令将是``(退出插入/替换/等模式),然后是`gq80l`
[运行`gqq`] aaaahhh,它是_beautiful_

2> 小智..:

首先设置你的vim,以便它理解你想要80个字符:

:set tw=80

然后,暮光之城:

V

并使vim重新格式化:

gq



3> Wernsey..:

这与VIM并不真正相关,但您可以使用fmt程序

$ fmt myfile


:%!fmt%"可以让它与vim相关:)
虽然我更喜欢vim上的gqq,但对vi很有用.

4> smokedice..:

对于实线文本,在正常模式下使用v突出显示区域,然后按

:s/\v(.{80})/\1\r/g

这将在每个第80个字符的末尾添加换行符.

:s/       replaces within the current select
\v        uses regular expressions
(.{80})   selects 80 characters & placed them into group one
\1\r      replaces group one with group one and a newline



5> Michael Ande..:

如果你在*nix上,你可能已经fold有了.

选择您想要使用的区域v,然后您可以使用以下方法中断宽度为80的空格:

!fold --spaces --width=80

这与使用完全相同gq.

但是,如果您只想在字符80处中断而不限于空格,则可以使用:

!fold --width=80

如果你只需要一次按键就可以设置一个映射 - 我已经用过了

vmap !fold --width=80



6> Olivier Fauc..:

要在完整文档中拆分长行而不删除现有的换行符,请使用:

:set formatoptions+=w
:set tw=80
gggqG

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有