史上最简约的vi教程,复制和粘贴
上一篇博客,讲了“新手”如何“入门”vi,解决了“两眼一抹黑”的情况。知道在vi下如何进行基本的操作,如部署在Linux下的项目,修改配置文件等。
传送门: 史上最简约的vi教程,10分钟包教会
本篇,我们继续vi的学习之旅,主要包括复制和粘贴操作。
1.移动光标
对于用惯了可视化开发工具的读者,初次接触vi学习门槛还是有一些的。虽然上篇文章说明了,可以通过小键盘的“上下左右”箭头移动光标,但,这个是一个“骚操作”。
vi推荐的做法是:在Normal模式下,通过h j k l来移动光标。
这个无需多言,打开vi,多操作几次就上手了。
当然还有高级的移动光标,暂且不表。
2.复制一行和粘贴
刚接触vi,我尝试过不止一次,ctrl + c和ctrl + v来“想当然”进行复制和粘贴,结果你懂的!
[注] 下面谈的所有操作,均在Normal模式下。
复制
复制当前行是最基本的操作,
yy这个大家基本上都熟悉。粘贴
粘贴通过
p(小写p)或者P(大写P,通过shift + p输入)来实现的。其中
p是在光标所在行的下一行粘贴;P是在光标所在行的上一行粘贴。交换当前行和下(下)一行
我们可以组合“删除”和“粘贴”操作,实现交换上下行的操作。
ddp,可以实现交换当前行和下一行。请思考一下为什么?easy,dd是删除当前行,并复制到缓冲区,p是在当前行的下一行粘贴。
ddP,可以实现交换当前行和上一行。请思考一下为什么?
3.个性化复制
第2部分介绍了复制和粘贴,基本上可以满足大部分的操作。“个性化”复制,怎么办?如复制一个单词,选定后复制...
复制一个单词
可以通过
yw来说实现,这个前提是先将光标定位到单词的开头。复制到下一句的开始
可以通过
y)来说实现复制到下一段的开始
可以通过
y}来说实现快选择实现复制
可以通过
v、shift + v和ctrl + v来进行区块选择,然后通过y进行复制。这基本上可以实现你想要的所有情况的复制。
v操作: 先输入v,然后“通过hjkl或者上下箭头移动光标”会自动选择一个区域。如果需要复制这个区域,则按y即可,如果要删除则输入d即可。shift + v是在v的操作基础上,不过其操作是行级别的。ctrl + v这个就是列选择,用过ultraedit或者editplus的列操作,你会爱不释手的。操作方法同v!
4.总结
本篇博客是上篇博客的进阶,主要内容就是复制和粘贴。你需要知道的就是:
行操作: yy复制当前行,p粘贴到下一行;
块操作: 先输入v,然后“通过hjkl或者上下箭头移动光标”会选择一个区域。如果需要复制这个区域,则按 y 即可。移动光标到需要粘贴的目标处,p粘贴到光标所在处。
再次推荐vi教程:
- Learn Vim Progressively 个人认为这个是有史以来最好的vi教程,没有之一。
掌握vi并不难,方法就是,“用”起来就会了。虽然我用的是windows 10系统,我开发中,vs code和IntelliJ IDEA、visual studio都启用了vi的。
史上最简约的vi教程,复制和粘贴的更多相关文章
- 史上最简单的vi教程,10分钟包教会
从第一次接触vi/vim到现在已经十几年了,在这个过程中,来来回回,反反复复,学习vi很多次了. 虽然关于vi的使用,我还远未达到"专家"的水平,但对于vi的使用,我有话说. 1. ...
- 《史上最简单的MySQL教程》系列分享专栏
<史上最简单的MySQL教程>系列分享专栏 <史上最简单的MySQL教程>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read ...
- 整理:史上最简单的 MySQL 教程
1 前言 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成 ...
- Vue2.0史上最全入坑教程(下)—— 实战案例
书接上文 前言:经过前两节的学习,我们已经可以创建一个vue工程了.下面我们将一起来学习制作一个简单的实战案例. 说明:默认我们已经用vue-cli(vue脚手架或称前端自动化构建工具)创建好项目了 ...
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...
- 史上最简单的 SpringCloud 教程
史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)史上最简单的Spri ...
- 史上最简单的 SpringCloud 教程 | 终章
https://blog.csdn.net/forezp/article/details/70148833转载请标明出处:http://blog.csdn.net/forezp/article/det ...
- 史上最简单的 GitHub 教程
史上最简单的 GitHub 教程 温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行Star和Fork操作! 1 简介 GitHub 是一个面 ...
- (转) 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
随机推荐
- [学习笔记]k短路
A*:我已经忘了怎么写了,反正n=30,m=1000都能卡掉... 正解:可持久化左偏树+堆维护可能集合 原论文:http://www.docin.com/p-1387370338.html 概括: ...
- P1079 好朋友
题目描述 小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数.很多同学都有一个"好朋友" .如果 A 的序列号的约数之和恰好等于B 的序 ...
- 【50.40%】【BZOJ 4553】[Tjoi2016&Heoi2016]序列
Time Limit: 20 Sec Memory Limit: 128 MB Submit: 371 Solved: 187 [Submit][Status][Discuss] Descript ...
- SSH框架 通用 错误(404,500等)返回页面设置
在web.xml里面加入
- vue+element-ui实现分页
我使用得是el-table+el-pagination来实现的, 话不多说,直接上代码 html代码部分 <!-- table --> <el-table :data="s ...
- shell 脚本文件十六进制转化为ascii码代码, Shell中ASCII值和字符之间的转换
Shell中ASCII值和字符之间的转换 1.ASCII值转换为字符 方法一: i=97 echo $i | awk '{printf("%c", $1)}' ...
- Linux: 在某个路径及其子目录下查找所有包含“hello abcserver”字符串的文件。
find /etc -name “*” | xargs grep “hello abcserver” 在 / 及其子目录下查找所有包含UNEXPECTED_SCHEMA find / -name * ...
- 更新到@vue/cli 4.1.1版本的前端开发前的准备
一.概念简述 1.node.js目的是提供一个JS的运行环境. 2.npm(node package manager)是一个JS包管理器. 二.检查自己的电脑是否已安装相关配置 1.查看node.js ...
- TCP/IP||Traceroute
1.概述 由Van jacobson编写的工具,用于探索tcp/ip协议,使用ICMP报文和首部TTL字段,TTL字段由发送端设置一个8bit字段,初始值为RFC指定,当前值为64, 每个处理数据的路 ...
- poj-1511
从1节点到所有节点的最短路和,加上所有节点返回1节点的最短路和,刚开始的方法时间复杂度有毒啊 其实只要把边全反向重装一次就好了哈哈哈 好了就是这样,套路了一个dijkstra+优先队列 #includ ...