oeasy教您玩转vim - 10 - # 插入新行
插入新行
回忆上节课内容
- i、I 在前面插入文本
- a、A 在后面插入文本
- o、O 换行插入文本
- o 其实是 A 回车
- O 其实是 k o
- O 也是 k A 回车
模式切换小技巧
比如你在一句话的中间,并处于插入模式,此时你想要写下一行
- 从插入模式到正常模式要用 esc
- 但是 esc 距离基本起手势太遥远了
- 可以用 ctrl + c 来替代
- 左手小拇指 ctrl + c
- 然后 A 回车
- 有没有更有效率的方法呢?

插入-普通模式
- 可以 ctrl + o 进入插入普通模式
- 然后执行 o 继续进行插入
插入普通模式就是让你执行一次普通模式的命令- 然后继续保持在
插入模式 插入普通模式相关帮助在:h Normal的intro.txt中查到
下素材
#首先找个素材,找个一个网页下载下来
wget github.com/overmind1980
#然后看看下载了个啥
ls
#最后用vim打开这个网页
vim overmind1980

- 下好了之后打开
- 把手放到键盘上
命令分布
我们首先看看正常模式下的命令键盘图

- 基本上个按键都有对应的命令
- 命令可以分为大写和小写两种
iao进入插入模式(已经解锁)hjkl进行移动(已经解锁)
起手势

- 记不住命令怎么办?
- 淘宝可以搜索 vim 的键盘膜或者贴纸
但我感觉没用
- 字太小
- 伤屏幕
- 依赖性
还得靠自己熟练之后自然记忆
- 左手食指放在f
- 右手食指放在j
不管是游泳、弹琴、跑步还是打乒乓球
- 正确的基本姿势会减少运动伤害
- 让你的上限更高
- 肌肉记忆沉淀下来,逐渐变为某些标准
这些标准是每个新手都要遵循的
- 这可不是简单的循规蹈矩
- 而是体会着前人的智慧和经验
- 这会让你后期更厉害
移动命令

- 起手势是盲打的基本姿势
- 手轻轻放在中间那行上方一点点
- 我们知道由于历史的原因
hjkl对应着移动的命令 正常模式下
- 有必要把右手四指基本位从
jkl;移动到hjkl吗?
- 有必要把右手四指基本位从
保持起手势
我认为没有必要改变盲打姿势
- 右手食指是可以控制两个方向位的
- 继续保持起手势
hjkl右手默认位使用概率非常大保持指尖的敏感性
- 手指会比眼睛更早知道打错字了
- 还有更多神奇的移动命令等待你来解锁

强制起手式
- 打开当前用户的vim配置文件
vi ~/.vimrc
在前面添加上四句
map <Left> <Nop>map <Right> <Nop>map <Up> <Nop>map <Down> <Nop>
map是按键映射
- 我们把上下左右方向键映射为<Nop>
- 就是什么也不做
- 保存并关闭vim
- 然后我们发现上下左右方向键都不好用了
总结
- 我们这次强化了起手势
- 回忆了基本的移动方式
hjkl - 除
hjkl外,还有什么移动命令效率更高吗? - 我们下次再说!
oeasy教您玩转vim - 10 - # 插入新行的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- 在vim中插入命令行的输出结果
vim是linux中常见的编辑器,这里讲讲如何在vim中插入命令行的输出结果. 基本用法: 在指令模式下运行 :!command ,如!date将日期显示在vim底部,!ls列出当前目录 将命令结果插 ...
- SQL-表的操作(创建表,删除表,更改列,插入新行,更改行的值,删除表中数据)
一,操作表及列 1.创建表: CREATE TABLE test (ID int PRIMARY KEY IDENTITY,Name varchar(20) ) 2.删除表 DROP TABLE t ...
- insert into 的另一种添加插入新行方式
语法 1 插入一行 insert into table (field1,field2.....) select value1,value2........; 2 插入多行 insert into ta ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
随机推荐
- C# XML转Json Json转XML XML 转对象 对象转XML
对象转XML对象时,只能是一个JObject对象,不能是一个集合对象.如果对象是一个列表集合,需要定义一个根对象比如这样:var obj =new { Root = ListLogs[ListLogs ...
- Android 13 - Media框架(21)- ACodec(三)
关注公众号免费阅读全文,进入音视频开发技术分享群! 这一节我们一起来了解 ACodec 是如何通过 configureCodec 方法配置 OMX 组件的,因为 configureCodec 代码比较 ...
- 基于 Kubernetes 的 CICD 基础设施即代码
在上一篇基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以 ...
- SpringBoot自定义注解失效原因(2022-10-3)
长话短说,我负责的是一个多模块项目,接手的时候没有注意 @ComponentScan 注解的扫描范围,所以打包的时候,没有扫到我新加包. 所以,重点检查下 @ComponentScan 注解的范围
- 音视频学习--H264解析渲染
一.H264文件获取 下载一段MP4文件,通过FFMPEG转换成MP4 ffmpeg -i Gravity.mp4 -vcodec h264 out_2.264 二.通过解析H264成帧,然后刷新 这 ...
- 基于WebSocket的modbus通信(一)- 客户端
上一篇已经实现了ModbusTcp服务器和8个主要的功能码,只是还没有实现错误处理功能. 但是在测试客户端时却发现了上一篇的一个错误,那就是写数据成功,服务器不需要响应. 接下来要做的就是实现Modb ...
- OpenCV笔记(5) Rect类
看项目代码时,发现了Rect的神奇用法,rect = rect + point.于是了解了一下Rect类. 1. 构造函数 public Rect(Point location, Size size) ...
- itestwork(爱测试) 一站式接口测试&敏捷测试工作站 9.0.1 发布,ui 及Bug fix
(一)itest 简介 itest work (爱测试) 一站式工作站让测试变得简单.敏捷.itest work 包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1 ...
- Java常用的三个方法 `wait ` `notify` `notifyAll`
常用的三个方法 wait notify notifyAll wait();方法使当前线程进入等待状态,直到另一个线程调用该对象的notify()或notifyAll()方法来唤醒它 notify(); ...
- 为什么魂斗罗只有128KB却能实现那么长的剧情有答案了
PPU 首发公号:Rand_cs 本文继续讲述 NES 的基本原理,承接上文的 CPU,本文来讲述 PPU,较为复杂,慢慢来看.例子基本都是使用的魂斗罗,看完本文相信对那问题"为什么魂斗罗只 ...