有人能提供Vim命令gqip的详细描述吗?

有人能提供Vim命令gqip的详细描述吗?,vim,neovim,Vim,Neovim,我的理解是,在正常模式下,命令gqip告诉vim使用formatoptions作为规则格式化当前段落,以空格分隔。但是我找不到任何关于命令本身的信息来查看其他类似的可能用例。更具体地说,我想知道的是,如果您将命令gqip分解为g、q、I和p,那么这些单独的组件是如何赋予命令其行为的?gq{motion}(:help gq)格式化{motion}所涵盖的行的格式的 运动通常可以是移动光标的任何命令,在这种情况下,它覆盖了光标初始位置和最终位置之间的所有内容,或“文本对象” :帮助文本对象列出所有文

我的理解是,在正常模式下,命令
gqip
告诉vim使用
formatoptions
作为规则格式化当前段落,以空格分隔。但是我找不到任何关于命令本身的信息来查看其他类似的可能用例。更具体地说,我想知道的是,如果您将命令
gqip
分解为
g
q
I
p
,那么这些单独的组件是如何赋予命令其行为的?

gq{motion}
:help gq
)格式化
{motion}所涵盖的行的格式的

运动通常可以是移动光标的任何命令,在这种情况下,它覆盖了光标初始位置和最终位置之间的所有内容,或“文本对象”

:帮助文本对象
列出所有文本对象,特别是:

ip“内部段落”,选择[计数]段落(参见 |第|)段)。 例外情况:空行(仅包含空白) 也是一个段落边界。 当在视觉模式下使用时,它是按线条设置的

gq{motion}
:help gq
)格式化
{motion}
所涵盖的行

运动通常可以是移动光标的任何命令,在这种情况下,它覆盖了光标初始位置和最终位置之间的所有内容,或“文本对象”

:帮助文本对象
列出所有文本对象,特别是:

ip“内部段落”,选择[计数]段落(参见 |第|)段)。 例外情况:空行(仅包含空白) 也是一个段落边界。 当在视觉模式下使用时,它是按线条设置的


这个问题说明了一个最大的问题,即依赖从随机来源收集的随机、不连续的信息片段,而不是正确地学习Vim

gqip
实际上是
gq
,一个操作符,
ip
,一个动作

“操作员”和“运动”的概念在
$vimtutor
的第2课中介绍,并在用户手册的第4章中进一步讨论:
:help 04.1
,而文本对象的概念在同一章中进一步介绍:
:help 04.8

学习Vim甚至不“像”学习一门语言,而是学习一门语言,用户手册的结构遵循常见的语言教学技巧:开始时,给用户一些基本命令(“删除”、“扬克”、“下一个单词”等,一个词汇表),并演示如何编写它们(语法)影响文件中的文本。我们的想法是从简单开始,逐步引入更多的词汇和语法规则

一旦用户内化了一些词汇和语法,他们就可以轻松地获得新的命令,并立即将它们与以前获得的命令组合成更复杂的“句子”,就像语言学习者一样

还有,FWIW,这里是整个
:help 10.7
,它恰好涵盖了
gqap
,这很容易推断到任何
gq
+运动,这要感谢您之前在第4章中所学的内容:

10.7文本格式

当您键入纯文本时,如果每行的长度为 自动修剪以适应窗口。让这一切在 插入文本时,请设置“文本宽度”选项:

:set textwidth=72
您可能还记得,在示例vimrc文件中,该命令用于 每个文本文件。因此,如果您正在使用该vimrc文件,那么您已经 使用它。要检查“textwidth”的当前值,请执行以下操作:

:set textwidth
现在,行将被打断,最多只包含72个字符。但是当你 在一行的中间插入文本,或者在删除几个单词时,插入行 会变得太长或太短。Vim不会自动重新格式化文本。要告诉Vim设置当前段落的格式:

gqap
这从“gq”命令开始,它是一个操作符。以下是“ap”, 表示“段落”的文本对象。一段与另一段分开 下一段用空行隔开

注: 包含空格的空行不会分隔 段落。这很难注意到

您可以使用任何运动或文本对象来代替“ap”。如果你的段落 如果正确分隔,可以使用此命令格式化整个文件:

gggqG
“gg”带您到第一行,“gq”是格式运算符,“G”是 跳到最后一行的运动

如果您的段落没有明确定义,您可以只设置行的格式 您可以手动选择。将光标移动到要格式化的第一行。 从命令“gqj”开始。这将格式化当前行和下面的行 信息技术如果第一行很短,则将附加下一行中的单词。 如果太长,单词将移到下一行。光标移动到 第二行。现在可以使用“.”重复该命令。继续这样做 直到到达要格式化的文本的末尾


有了
:帮助用户手册
提供的基础知识,
gqip
就不会是一个谜了。

这个问题说明了依赖从随机来源收集的随机、断开连接的信息而不是正确学习Vim的最大问题之一

gqip
实际上是
gq
,一个操作符,
ip
,一个动作

“操作员”和“运动”的概念在
$vimtutor
的第2课中介绍,并在用户手册的第4章中进一步讨论:
:help 04.1
,而文本对象的概念在同一章中进一步介绍:
:help 04.8

学习Vim甚至不“像”学习一门语言,而是学习一门语言,用户手册的结构遵循常见的语言教学技巧:开始时,用户只需掌握一些基本命令