我试图从关于Vim的OReilly一书中澄清这一点,但所提供的示例不够清楚。通过示例/用例而不是直接解释来澄清将是非常有帮助的。
示例文本可以是:
With a
screen editor,
you can
scroll the page, move the cursor.
发布于 2013-05-07 18:39:32
假设文档中有foo
,并且光标在f
上。
现在,按rb
会将其更改为boo
,您将返回到命令模式。按sb
键也可以完成同样的操作,但您处于插入模式,可以插入更多字符。最后,c
需要某种形式的动作;例如,您可以输入cw
来删除整个单词并进入插入模式。另一方面,cl
本质上与s
相同。
发布于 2013-05-08 03:55:10
:help c
:help s
:help r
很简单。
与其在这本书上浪费时间,不如学习如何使用Vim令人敬畏的内部文档:
:h s
:h :command
:h 'option'
:h function()
:h ctrl-x
:h i_ctrl-x
:h subject
:h foo<Tab>
:helpgrep foo
发布于 2018-08-14 14:43:36
描述
s
(的替换)将删除当前字符,并将用户置于插入模式,同时将光标置于两个周围字符之间。例如,3s
将删除接下来的三个字符,并将用户置于插入模式。
c
(change)采用vi/vim运动(如w
、j
、b
等)。它删除从当前光标位置到移动结束为止的字符。请注意,这意味着s
等同于cl
(vim文档本身声称它们是同义词)。
r
(replace)根本不会进入插入模式。相反,它需要另一个字符,然后使用该字符替换当前光标下的字符。
示例
获取示例文本,并将光标显示在单词“can
”的开头(第3行)。
在vi/vim中键入spl<Esc>
。
这里,我们有用于的替代的s
。pl
是要插入的文本,<Esc>
将退出插入模式。综合起来,它会将can
更改为plan
,如下所示:
With a
screen editor,
you plan
scroll the page, move the cursor.
在vi/vim中键入cwcould<Esc>
。
c
代表change,w
通过下一个单词can
告诉c
删除。接下来,我们键入插入模式的文本could
。最后,我们需要再次输入<Esc>
以退出插入模式。该命令会将can
更改为could
,如下所示:
With a
screen editor,
you could
scroll the page, move the cursor.
在vi/vim中键入rf
。
在这里,我们键入r
表示replace,然后键入f
作为r
用来替换原始字符的新字符。这会将can
更改为fan
,如下所示:
With a
screen editor,
you fan
scroll the page, move the cursor.
备注
vi/vim中的简单命令有很多隐藏的用法,这些用法突出了这些命令之间的更多差异。因为我几乎总是使用vim而不是vi,所以这些特性可能是vim独有的,我不确定。
要最大限度地利用c
、y
和d
等采取动作的命令,需要很好地掌握文本对象(在vim中键入help text-objects
。这些都不在vi中。)
因为r
接受一个字符,而不是进入插入模式,所以您可以输入原本难以添加的字符。输入ctrl(即r
,然后输入r<C-R>
-r
)将当前字符替换为ctrl-r字符。这可能令人惊讶,因为在插入模式下按ctrl-r会等待另一个要粘贴的键,即寄存器。
这三个命令都可以使用.
命令重复执行,用给定的文本替换、更改或替换与光标相关的相同区域。
在命令前键入数字n
时,s
和c
会删除n
项目(字符表示s
,移动表示c
),然后插入一次文本。但是,如果在r
之前使用数字n
,则会用所选字符的相同数量的副本替换下一个n
字符。例如,4r0
可以一次性将1234
替换为0000
。
https://stackoverflow.com/questions/16416758
复制相似问题