oeasy教您玩转vim - 42 - # 剪切进入
Posted overmind1980
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oeasy教您玩转vim - 42 - # 剪切进入相关的知识,希望对你有一定的参考价值。
show: step
version: 1.0
enable_checker: true
剪切进入
回忆上节课内容????
- 上次我们了解到了各种寄存器
:reg
- 无名寄存器
""
- 数字寄存器
"0-"9
- 行内删除专用寄存器
"-
- 指定寄存器
"a-"z
、"A-"Z
- 3个只读寄存器
":
、".
、"%
".
里面存储着上次插入的内容"%
里面存储着当前文件的名字":
里面存储着刚刚执行的命令
- 轮换文件寄存器
"#
- 表达式寄存器
"=
- 选择和拖拽寄存器
"*
、"+
、"~
- 黑洞寄存器
"-
- 搜索模式寄存器
"/
- 无名寄存器
- 插入模式下<kbd>ctrl</kbd>+<kbd>r</kbd> 再加寄存器名称
- 可以粘贴指定寄存器中的内容
- <kbd>d</kbd>、<kbd>x</kbd>、<kbd>y</kbd>、<kbd>p</kbd>都在在正常模式
- 删除之后能否自动切换进入插入模式呢?????
- 翻帮助查到这个命令好像叫做 <kbd>s</kbd>
找到手册????
- 想要知道 <kbd>s</kbd> 的作用,就要查一查
- 也可以用
:h s
- 这个<kbd>s</kbd>和<kbd>x</kbd>有点像
- 都是删除当前字符
- 都是默认放入无名寄存器
""
- 如果设定某个命名寄存器,就放入命名寄存器
- 都可以通过
[count]
翻倍
- 不同在于删除之后的的模式
- <kbd>x</kbd> 保持在
普通模式
- <kbd>s</kbd>进入到了
插入模式
- <kbd>x</kbd> 保持在
- 这其实很爽
-
因为很多时候删除了之后就是希望进入插入模式的!!!
- <kbd>S</kbd>是删除当前这一行,然后进入
插入模式
- 相当于<kbd>d</kbd><kbd>$</kbd><kbd>i</kbd>
有用的c
c
的意思是change
- 这个<kbd>c</kbd>和<kbd>d</kbd>有点像
- 都是删除当前内容
- 都是默认放入无名寄存器
""
- 如果设定某个命名寄存器,就放入命名寄存器
- 都可以通过
[count]
翻倍 - 而且都支持
motion
- 不同之处就是就是完成工作后
- <kbd>d</kbd> 保持在
普通模式
- <kbd>c</kbd>进入到了
插入模式
- <kbd>d</kbd> 保持在
- 比如我想把
hello world!
变成hello oeasy
- 那么我需要
- <kbd>d</kbd><kbd>w</kbd>删除到当前单词word词尾
- <kbd>i</kbd>然后再进入插入模式
- 输入oeasy
- 然后<kbd>esc</kbd>完成
- 现在我只需要
- <kbd>c</kbd><kbd>w</kbd>删除到当前单词word词尾
- 直接进入插入模式
- 输入oeasy
- 然后<kbd>esc</kbd>完成,一气呵成
- 如果要删除的位置很远
- 可以考虑<kbd>c</kbd><kbd>f</kbd><kbd>t</kbd>
- 配合<kbd>.</kbd>来操作
配合重复
- n是下一个
-
.是cwfive<kbd>esc</kbd>
in操作
- 这次我们的光标位置在这个单词中间
- 我如果想要删除world怎么办?
- 我需要先<kbd>b</kbd>回词头
- <kbd>c</kbd><kbd>w</kbd>删除到词尾
- 这还是有点麻烦
- 现在只需要一句话
- <kbd>c</kbd><kbd>i</kbd><kbd>w</kbd>就可以一气呵成
in
- 不论光标在单词里面什么位置
- 只要是这个
word
范围内的都可以删除 - 这个时候如果是
ciW
意味着不是word
而是WORD
- 类似的还有·
- <kbd>c</kbd><kbd>i</kbd><kbd>(</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>(</kbd>删除小括号里面的
- <kbd>c</kbd><kbd>i</kbd><kbd>[</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>]</kbd>删除中括号里面的
- <kbd>c</kbd><kbd>i</kbd><kbd>"</kbd>删除双引号里面的
- <kbd>c</kbd><kbd>i</kbd><kbd>\'</kbd>删除单引号里面的
- 这在编程时是非常实用的!!!????
文字对象
- <kbd>c</kbd><kbd>i</kbd><kbd>s</kbd>删除当前这句
- <kbd>c</kbd><kbd>i</kbd><kbd>p</kbd>删除当前这段
tag块标签
git clone http://github.com/overmind1980/vimtutorial.git
cd vimtutorial
vi oeasy.html
- <kbd>c</kbd><kbd>i</kbd><kbd>t</kbd>
- 删除tag里面的内容
- <kbd>c</kbd><kbd>a</kbd><kbd>t</kbd>
- 删除包括标签本身
- <kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>t</kbd>删除两层标签里面的
- 这个功能在
html
、xml
很有效率
- 这个功能在
block块
- <kbd>c</kbd><kbd>i</kbd><kbd>{</kbd>、<kbd>c</kbd><kbd>i</kbd><kbd>}</kbd>
- 删除大括号里面的
- <kbd>c</kbd><kbd>i</kbd><kbd>B</kbd>
- 也有同样的效果
- <kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>{</kbd>、<kbd>c</kbd><kbd>2</kbd><kbd>i</kbd><kbd>}</kbd>删除两层大括号里面的
- 这个功能也可以和 <kbd>d</kbd>、<kbd>y</kbd>配合,非常爽!!
- 大规模程序块控制
关于i
和a
的整理
h aw
可以看到相关资料w
word 小词W
Word 大词s
sentence 句子p
paragraph 段落(
、)
小括号[
、]
中括号{
、}
大括号t
tag 标签it
标签内部 不包含标签at
标签外部 包含标签
"
、\'
引号
细节
-
<kbd>s</kbd>
- 相当于<kbd>c</kbd><kbd>l</kbd>
- 也相当于<kbd>d</kbd><kbd>l</kbd>,再进入插入模式
-
<kbd>S</kbd>
- 删除当前行<kbd>d</kbd><kbd>$</kbd>
- 再进入插入模式
-
<kbd>C</kbd>
- 相当于<kbd>c</kbd><kbd>$</kbd>
- 也相当于<kbd>d</kbd><kbd>$</kbd>,再进入插入模式
- 也就是<kbd>D</kbd>,再进入插入模式
-
<kbd>c</kbd><kbd>c</kbd>就是
- 删除当前行并进入插入模式
- 等同于<kbd>S</kbd>
- <kbd>2</kbd><kbd>C</kbd>
- 相当于删除两行,再进入插入模式
- 也就是<kbd>2</kbd><kbd>D</kbd>,再进入插入模式
总结
- 这次我们学到的最有用的就是<kbd>c</kbd>
- 他和<kbd>d</kbd>的区别就是删除之后进入到插入模式
- <kbd>c</kbd>可以配合
motion
- 可以用<kbd>c</kbd><kbd>i</kbd><kbd>w</kbd>来快速删除当前光标所在的单词
- 可<kbd>i</kbd>和<kbd>a</kbd>的文字块
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)
以上是关于oeasy教您玩转vim - 42 - # 剪切进入的主要内容,如果未能解决你的问题,请参考以下文章