Vim 命令将硬换行转换为保留格式的视觉换行

Vim 命令将硬换行转换为保留格式的视觉换行

给定以下字符串,每个字符串都在单独的行上(我通过在行号前加上前缀来指示)以及特定于语法的缩进:

1 Standard string with only text or code from some programming language.
2          Standard string with only text or code from some programming language.
3          Standard string with only text or code from some programming language.
4          Standard string with only text or code from some programming language.
5 Standard string with only text or code from some programming language.

这些当然是硬包装线。但有时*我会将示例中的段落显示为一行,同时保留使用 Vim=运算符获得的例如语法特定缩进。因此,我希望该段落在视觉上以与最初硬包装的结构相同的结构进行包装:

Standard string with only text or code from some programming language.
         Standard string with only text or code from some programming language.
         Standard string with only text or code from some programming language.
         Standard string with only text or code from some programming language.
Standard string with only text or code from some programming language.

有没有办法在 Vim 中做到这一点。我更喜欢一个类似于 的简单命令{visual}gq

* 原因主要是我使用 Vim 将代码行或段落发送到 repl 会话(PythonR你有什么)。

答案1

在最近的 Vim 7.4 版本中,您可以

:set wrap breakindent

并使软包裹线缩进(由选项控制'breakindentopt')。然而,这是一个简单的、固定的缩进;您不能动态地影响它(这是维护语法所必需的)。

或者,您可以在将其发送到 REPL 之前使用gq、 然后:join或重新格式化(即硬包装) 。:undo

相关内容