亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述oeasy教您玩转vim - 39 - # 剪切粘贴相关的知识,希望能为你提供帮助。
剪切粘贴
回忆上节课内容????
- 我们大幅度地复习了整个
motion
:
- 直接运动
- < kbd> h< /kbd> < kbd> j< /kbd> < kbd> k< /kbd> < kbd> l< /kbd>
- 行运动
- 首行< kbd> g< /kbd> < kbd> g< /kbd>
- 末行< kbd> G< /kbd>
- 第n行< kbd> n< /kbd> < kbd> G< /kbd>
- 单词运动
wbe
- <
kbd>
w<
/kbd>
是到下一个
word
的开头 - <
kbd>
b<
/kbd>
是到当前
word
的开头 - <
kbd>
e<
/kbd>
是到当前
word
的结尾 - 除了
word
之外还有WORD
- <
kbd>
w<
/kbd>
是到下一个
- 行头行尾
- < kbd> ^< /kbd> 是到本行第一个非空字符
- < kbd> 0< /kbd> 是到本行第一个字符,不管是不是空格
- < kbd> g< /kbd> < kbd> _< /kbd> 是到本行最后一个非空字符
- < kbd> $< /kbd> 跳到本行最后一个字符,即使他是空格
- 行内跳跃和贴靠
- 向
前
跳跃是< kbd> f< /kbd> - 向
后
跳跃是< kbd> F< /kbd> - 向
前
贴靠是< kbd> t< /kbd> - 向
后
贴靠是< kbd> T< /kbd>
- 向
- 全文查找
- 查找的话就是 < kbd> /< /kbd>
- 反向查找的话就是 < kbd> ?< /kbd>
- 文本区块
- < kbd> {< /kbd> 、< kbd> }< /kbd> 按段落移动
- < kbd> (< /kbd> 、< kbd> )< /kbd> 按句子移动
- 这些
motion
都可以 < kbd> d< /kbd> 配合使用,完成快速删除的工作 - 过程中还可以使用
[count]
进行翻倍 - 删除的内容,放在
""
寄存器中 - 可以配合重复< kbd> .< /kbd>
- 而且以前的一些命令可以有了新的理解
- 一些原来的操作可以有了新的写法
- D 对应的d$
- x 对应 dl
- X 对应 dh
- 体会多多运动左手无名指的快乐
- 删除的内容,放在
""
寄存器中 - 那这个东西删了
- 放在寄存器里
- 我想粘贴到别的地方
- 怎么办呢?????
- 粘贴的话,应该离这个删除
d
的位置不远 h d
找到剪切的帮助文件在change.txt
- 文件中的
5.copying and moving text
中 - 可以找到 < kbd> p< /kbd> 应该就是粘贴对应的命令
文章图片
- 不是
paste
p
对应的是put
放上去- 把什么放上去呢?
- 把
d
到寄存器的东西放上去
- 我们试一试
- 我们输入一行
oeasy
然后对他进行 < kbd> d< /kbd> < kbd> d< /kbd> - 这个时候
oeasy
这一行就进入了寄存器""
了 - 然后 <
kbd>
p<
/kbd>
一下,就会出现一个
oeasy
- <
kbd>
9<
/kbd>
<
kbd>
p<
/kbd>
就会出现
9
行oeasy
- 真的可以!!!????
- 我们输入一行
- 但是这里面有两个 <
kbd>
p<
/kbd>
- 一个叫做 <
kbd>
p<
/kbd>
说是
after cursor
- 另一个叫做 <
kbd>
P<
/kbd>
说是
before cursor
- 一个叫做 <
kbd>
p<
/kbd>
说是
文章图片
- 啥意思呢?
- 先都删除 < kbd> g< /kbd> < kbd> g< /kbd> < kbd> d< /kbd> < kbd> G< /kbd>
- 我们首先把标尺调出来
:ru
- 然后插入
1
行9
个1
- < kbd> 9< /kbd>
- < kbd> i< /kbd> 进入插入模式
- 输入
1
- < kbd> esc< /kbd> 退回到普通模式
- < kbd> o< /kbd> 换行回车
- 然后再插入
1
行9
个2
- 先< kbd> esc< /kbd> 进入正常模式(目的是打断输入状态)
- < kbd> i< /kbd> 进入插入模式
- 输入
2
- < kbd> esc< /kbd> 退回到普通模式
- < kbd> 8< /kbd> < kbd> .< /kbd>
- 把插入2这个事重复
8
次 - < kbd> o< /kbd> 换行
- < kbd> esc< /kbd>
- 然后再尝试插入
1
行3
- 方法和上面一样
- 最后插入一行
oeasy
- 并用< kbd> d< /kbd> < kbd> d< /kbd> 把他删除
- 也就是把他放到了
""
默认寄存器里面了
文章图片
体会上下
- 我们把光标移动到第
2
行 - < kbd> p< /kbd> 这个时候
- 寄存器
""
中的oeasy
会放到2222222...
的下
面
文章图片
- 用<
kbd>
u<
/kbd>
撤销刚才的操作
- 我们再试试 <
kbd>
P<
/kbd>
,大写的这个
- 我们把光标移动到第
2
行 - < kbd> P< /kbd> 这个时候
- 寄存器
""
中的oeasy
会放到2222222...
的上
面
- 我们把光标移动到第
文章图片
- 他怎么知道这是一行?
- 如果寄存器里面的不是一整行呢?????
- 我们先
:reg
看一下寄存器""
文章图片
- 寄存器中除了
oeasy
还有个^J
意思是包括换行符 - 我们这次不用< kbd> d< /kbd> < kbd> d< /kbd>
- 我们用<
kbd>
d<
/kbd>
<
kbd>
$<
/kbd>
motion
是$
意味着到行尾- 这样就把
oeasy
放进了寄存器""
- 看一下
:reg
^J
换行这个消失了!- p一把!
文章图片
- 这个p也分大小写么?
前后
- 把光标移动到
222222...
第5
个2
- 然后< kbd> p< /kbd>
文章图片
- 他就在第
5
个2
后面
插入寄存器内容 - <
kbd>
u<
/kbd>
回来,还放在第
5
个2
上 - 然后< kbd> P< /kbd>
- 他就在第
5
个2
前面
插入
文章图片
常规操作
文章图片
- dw是删除单词
- 这里删的没有换行符
- 注意把后面的空格也删除了
- 一并放入寄存器
- wel是移动位置
- 下一个word头 到 to的t
- 下个word尾 到 to的o
- 向右一格 到空格
- p是粘贴到光标之后
文章图片
- x删除当前字符
- p是在后面粘贴
- 我们这次的内容是粘贴
- 粘贴的内容是
:reg
中的内容 - 内容放在
""
寄存器中 - 如果
:reg
删除的是一整行或者多行- 那么粘贴的时候就在当前行上面或者下面粘贴
- 如果
:reg
删除的是不包括换行符- 那么粘贴的时候就在当前位置前面或者后面粘贴
- <
kbd>
p<
/kbd>
- 如果剪贴板里面是行
- 那么在光标下面粘贴
- 如果剪贴板里面不是行
- 那么在光标后面粘贴
- 如果剪贴板里面是行
- <
kbd>
P<
/kbd>
- 如果剪贴板里面是行
- 那么在光标上面粘贴
- 如果剪贴板里面不是行
- 那么在光标前面粘贴
- 如果剪贴板里面是行
- 大小写对应的是粘贴位置
- 有了删除和粘贴,我们其实可以做剪切的操作了
- 但是如果我想要复制粘贴,那应该怎么办呢?????
- 下次再说 ????
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)
推荐阅读
- Centos 7 常用命令收集 (持续更新)
- 根据带有”NOT EXISTS”的meta_query从搜索结果中排除post不再起作用
- 通过自定义查询排除精选文章不起作用
- 结合并显示博客文章结果和自定义分类法
- 子主题不读取模板部分文件
- 在网站上动态点击YouTube订阅按钮
- 检查用户是否具有Gravatar
- 更改auth_redirect()页面
- 我们可以在woocommerce的商店页面上添加媒体框吗()