neo有人能为Vim命令gqip提供详细描述吗

  • 本文关键字:描述 gqip 命令 Vim neo vim neovim
  • 更新时间 :
  • 英文 :


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

gq{motion}(:help gq(格式化{motion}覆盖的行。

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

:help text-objects列出了所有的文本对象,特别是:

ip;内部段落";,选择[count]段(请参阅|段落|(。异常:空行(仅包含空白(也是一个段落边界。在"视觉"模式下使用时,它将按线条显示。

这个问题说明了依赖从随机来源收集的随机、断开连接的信息片段而不是正确学习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

"带你到第一行,";gq";是格式运算符;G〃;这个跳到最后一行的动作。

如果你的段落没有明确定义,你可以只格式化行您可以手动选择。将光标移动到要设置格式的第一行。从命令";gqj";。这将格式化当前行和下面的行如果第一行是短的,下一行的单词会被追加。如果太长,单词将移到下一行。光标移动到第二行。现在您可以使用"quot;以重复该命令。继续这样做直到您到达要格式化的文本的末尾。

有了:help user-manual提供的基础知识,gqip不可能是个谜。

最新更新