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

- 比如我想把
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的文字块
w
word 小词W
Word 大词s
sentence 句子p
paragraph 段落(
、)
小括号[
、]
中括号{
、}
大括号t
tag 标签it
标签内部 不包含标签at
标签外部 包含标签
"
、'
引号
- 还有没有更快速的办法进行编辑吗?🤔
- 下次再说 👋
[Github地址] (https://github.com/overmind1980/vimtutorial) [Gitee地址] (https://gitee.com/overmind1980/vimtutorial) [蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)