c、i 和 s 命令合并为 VIM
c, i and s commands combined in VIM
我已经使用 VIM 一段时间了,每次都让我感到惊讶。在这个 tutorial 的 "Building Sentences" 部分下,我看到了命令 cis
和 yip
的组合。我使用 Vim 已经有一段时间了,我熟悉普通模式下的大多数命令。我也知道以有意义的方式组合命令以产生组合动作。
然而,我上面展示的例子(cis
和yip
)完全打破了我对正常模式下VIM命令系统的理解。 "c" 代表更改,"i" 代表插入,"s" 代表替代,但组合操作与我预期的不同。我还查看了 VIM 帮助文件,但从未看到说明给定用法的示例。
有人可以澄清一下是怎么回事吗?
在这种情况下,i 不代表 Insert,s 不代表 substitute。
cis = 改变内句。
理解了基本原理后,这就完全合乎逻辑了。每个命令就像一个句子,需要一个Verb(Action)和一个Noun(Object),还有修饰语。
所以第一个按钮是您的操作 C(更改)。现在接下来的击键将不会是动作,直到 c 动作结束(直到提供对象或插入无效序列)。 I(内部)在这里是修饰语,S 是宾语(句子)。
我发现这对更改单词特别有用。如果你只在一个单词上按 cw,你必须将光标放在单词的开头。
使用 ciw 你可以改变整个单词而不考虑光标位置(注意如果你在单词中有 / 或其他一些分隔符,你可能需要 ciW)
顺式
在vim帮助中是这样描述的
:help c
"Delete {motion} text [into register x] and start insert …"
命令c的下一部分是参考"motion"部分。这些命令用于文本对象 selection。关于不同类型的文本对象的解释 selections 你可以在这里找到:
:help text-objects
例如为了
是 – "inner sentence", select [计数] 句……
类比上面的解释和yip一样
:help y
"Yank {motion} text [into register x] … "
与正文selection部分yip
ip – "inner paragraph", select [计数] 段(见段落)…
同一个字母可以有不同的含义。例如。 (/{
移至 sentences/paragraph 返回,但 ci( or ci{
表示 change in (...)/{...}
。
与您的 s
情况相同,s
单独在正常模式下 delete & start insert
,但在 cis, das
中表示 sentence
。
p
情况:仅在普通模式下,表示 paste
,但在 cip, yap ...
中表示 paragraph
.
:h text-objects
将向您展示text-objects的概念。这是 vim 用户的 必须 技能。 ;-)
我已经使用 VIM 一段时间了,每次都让我感到惊讶。在这个 tutorial 的 "Building Sentences" 部分下,我看到了命令 cis
和 yip
的组合。我使用 Vim 已经有一段时间了,我熟悉普通模式下的大多数命令。我也知道以有意义的方式组合命令以产生组合动作。
然而,我上面展示的例子(cis
和yip
)完全打破了我对正常模式下VIM命令系统的理解。 "c" 代表更改,"i" 代表插入,"s" 代表替代,但组合操作与我预期的不同。我还查看了 VIM 帮助文件,但从未看到说明给定用法的示例。
有人可以澄清一下是怎么回事吗?
在这种情况下,i 不代表 Insert,s 不代表 substitute。 cis = 改变内句。
理解了基本原理后,这就完全合乎逻辑了。每个命令就像一个句子,需要一个Verb(Action)和一个Noun(Object),还有修饰语。
所以第一个按钮是您的操作 C(更改)。现在接下来的击键将不会是动作,直到 c 动作结束(直到提供对象或插入无效序列)。 I(内部)在这里是修饰语,S 是宾语(句子)。
我发现这对更改单词特别有用。如果你只在一个单词上按 cw,你必须将光标放在单词的开头。 使用 ciw 你可以改变整个单词而不考虑光标位置(注意如果你在单词中有 / 或其他一些分隔符,你可能需要 ciW)
顺式
在vim帮助中是这样描述的
:help c
"Delete {motion} text [into register x] and start insert …"
命令c的下一部分是参考"motion"部分。这些命令用于文本对象 selection。关于不同类型的文本对象的解释 selections 你可以在这里找到:
:help text-objects
例如为了 是 – "inner sentence", select [计数] 句……
类比上面的解释和yip一样
:help y
"Yank {motion} text [into register x] … "
与正文selection部分yip
ip – "inner paragraph", select [计数] 段(见段落)…
同一个字母可以有不同的含义。例如。 (/{
移至 sentences/paragraph 返回,但 ci( or ci{
表示 change in (...)/{...}
。
与您的 s
情况相同,s
单独在正常模式下 delete & start insert
,但在 cis, das
中表示 sentence
。
p
情况:仅在普通模式下,表示 paste
,但在 cip, yap ...
中表示 paragraph
.
:h text-objects
将向您展示text-objects的概念。这是 vim 用户的 必须 技能。 ;-)