oeasy教您玩转vim - 42 - # 剪切进入
剪切进入
回忆上节课内容🤔
上次我们了解到了各种寄存器
:reg
".
里面存储着上次插入的内容"%
里面存储着当前文件的名字":
里面存储着刚刚执行的命令数字寄存器
"0-"9
行内删除专用寄存器
"-
指定寄存器
"a-"z
、"A-"Z
3个只读寄存器
":
、".
、"%
轮换文件寄存器
"#
表达式寄存器
"=
选择和拖拽寄存器
"*
、"+
、"~
黑洞寄存器
"-
搜索模式寄存器
"/
无名寄存器
""
插入模式下ctrl+r再加寄存器名称
可以粘贴指定寄存器中的内容
d、x、y、p都在在正常模式
删除之后能否自动切换进入插入模式呢?🤔
翻帮助查到这个命令好像叫做s
找到手册📕
想要知道s的作用,就要查一查
也可以用
:h s

这个s和x有点像
都是删除当前字符
都是默认放入无名寄存器
""
如果设定某个命名寄存器,就放入命名寄存器
都可以通过
[count]
翻倍不同在于删除之后的的模式
x保持在
普通模式
s进入到了
插入模式
这其实很爽
因为很多时候删除了之后就是希望进入插入模式的!!!
S是删除当前这一行,然后进入
插入模式
相当于d$i
有用的c
c
的意思是change
这个c和d有点像
都是删除当前内容
都是默认放入无名寄存器
""
如果设定某个命名寄存器,就放入命名寄存器
都可以通过
[count]
翻倍而且都支持
motion
不同之处就是就是完成工作后
d保持在
普通模式
c进入到了
插入模式

比如我想把
hello world!
变成hello oeasy
那么我需要
dw删除到当前单词word词尾
i然后再进入插入模式
输入oeasy
然后esc完成
现在我只需要
cw删除到当前单词word词尾
直接进入插入模式
输入oeasy
然后esc完成,一气呵成
如果要删除的位置很远
可以考虑cft
配合.来操作
配合重复

n是下一个
.是cwfiveesc
in操作
这次我们的光标位置在这个单词中间

我如果想要删除world怎么办?
我需要先b回词头
cw删除到词尾
这还是有点麻烦
现在只需要一句话
ciw就可以一气呵成

in
不论光标在单词里面什么位置
只要是这个
word
范围内的都可以删除这个时候如果是
ciW
意味着不是word
而是WORD
类似的还有·
ci(、ci(删除小括号里面的

ci[、ci]删除中括号里面的
ci"删除双引号里面的
ci'删除单引号里面的
这在编程时是非常实用的!!!🤓
文字对象
cis删除当前这句
cip删除当前这段

tag块标签
git clone http://github.com/overmind1980/vimtutorial.git cd vimtutorial vi oeasy.html
cit
删除tag里面的内容
cat
删除包括标签本身
c2it删除两层标签里面的
这个功能在
html
、xml
很有效率

block块
ci{、ci}
删除大括号里面的
ciB
也有同样的效果
c2i{、c2i}删除两层大括号里面的
这个功能也可以和d、y配合,非常爽!!
大规模程序块控制

关于i
和a
的整理
h aw
可以看到相关资料w
word 小词W
Word 大词s
sentence 句子p
paragraph 段落(
、)
小括号[
、]
中括号{
、}
大括号t
tag 标签it
标签内部 不包含标签at
标签外部 包含标签"
、'
引号
细节
s
相当于cl
也相当于dl,再进入插入模式
S
删除当前行d$
再进入插入模式
C
相当于c$
也相当于d$,再进入插入模式
也就是D,再进入插入模式
cc就是
删除当前行并进入插入模式
等同于S
2C
相当于删除两行,再进入插入模式
也就是2D,再进入插入模式
总结
这次我们学到的最有用的就是c
他和d的区别就是删除之后进入到插入模式
c可以配合
motion
可以用ciw来快速删除当前光标所在的单词
可i和a的文字块
it
标签内部 不包含标签at
标签外部 包含标签w
word 小词W
Word 大词s
sentence 句子p
paragraph 段落(
、)
小括号[
、]
中括号{
、}
大括号t
tag 标签"
、'
引号还有没有更快速的办法进行编辑吗?🤔
下次再说 *
[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)