Practical Vim 第一章 第二章
第一章:Vim 解决问题的方式
前言
本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间.
Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们最近的操作,让我们用一次按键就能重复上次的修改.
.--这个看似简单的命令是 Vim 中的瑞士军刀.
修改的定义
定义:
修改是改变文档内文本的任意操作,分为两类:
- 它可以是在普通模式、可视模式、命令行模式中所触发的指令.
- 插入模式在按 Esc 之前的操作,包括输入的文本.
将两个动作合并成一次按键——一箭双雕
复合命令 | 等效的长命令 |
---|---|
C | c$ |
S | cl |
S | c |
I | i |
A | $a |
o | A |
0 | ko |
重复 & 回退
在执行一个修改的时候,要想办法做到两点:
- 使修改可重复
- 使移动可重复
并且当发生错误,或者针对不同对象有不同的操作的时候,我们能够执行回退操作.
目的 | 操作 | 重复 | 回退 |
---|---|---|---|
作出一个修改 | {edit} | . | u |
在行内查找下一指定字符 | f{char}/t{char} | ; | , |
在行内查找上一指定字符 | F{char}/T{char} | ; | , |
在文档中查找下一处匹配项 | /pattern | n | N |
在文档中查找上一处匹配项 | ?pattern | n | N |
查找当前光标下的单词 | * | n | N |
执行替换 | :/target/replacement | & | u |
执行一系列修改 | qx{changes}q | @x | u |
“. 范式”
定义:使用 “.” 命令重复上一次的修改,并且只需一次按键就可以把光标移到下一个目标上.
即理想模式:用一键移动,另一键执行.
第二章:普通模式
导言
这一章节讲述了 Vim 中的默认模式:普通模式,探讨了如下问题:
- 在执行时可指定执行的次数的普通模式命令
- 普通模式命令将操作符与动作命令结合在一起的特点
- 普通模式命令执行简单的算术运算
构造「可重复的」修改
依据:使用这种手段的时候 ,需要的按键次数最少.
示例:
文中比对了三种命令的效果:
db-x, b-dw. daw 都是能够删除一个句子中的一个单词的命令,但是如果要重复执行操作,即执行 "." 命令的时候,
- db-x, 只重复 x 命令,即删除一个字符
- b-dw,重复 dw 命令,即删除下一个单词.
- daw, 删除一个单词.
<C-x>
&<C-a>
命令
定义:
<C-x>:把当前光标之上或者之后的数值加上 [count]
<C-a>:把当前光标之上或者之后的数值减去 [count]
控制粒度
普通模式的命令可以指定操作的次数,但是应该只在必要的时候使用次数,一般的情况下可以使用重复的命令.
operator 与 motion
operator 定义:进行操作的类型,其中控制的范围由 {motion} 来决定,
motion 定义: 字符l, 一个单词 aw, 一个段落 ap 等等.
语法
operation = operator + motion
例外:
当一个 operator 被连续调用两次的时候,它会作用于当前行,例如 : >>, dd 等等
操作符待决模式
格式:在按下 operator 和 motion 之间的一段时间.
本质:
如果我们把 Vim 想象成有限状态机,那么操作符待决模式就是一个只接受动作命令的状态.这个状态只在我们调用操作符时被激活,直到得到一个动作命令.
当操作符待决模式被激活时,我们可以按 返回到普通模式.
类别
目的 | 命令 |
---|---|
修改 | c |
删除 | d |
复制到寄存器 | y |
反转大小写 | g~ |
转换为小写 | gu |
转换为大写 | gU |
增加缩进 | > |
减小缩进 | < |
自动缩进 | = |
使用外部程序过滤 {motion} 所跨越的行 | ! |
转载于:https://www.cnblogs.com/FBsharl/p/10624580.html
Practical Vim 第一章 第二章相关推荐
- 《算法帝国》第一章第二章读书笔记
heeeeeeeeeeeeeeeeeeeeello! 好像有半个月都没好好写笔记了,经历了两次面试,一次败在单面,一次败在群面,哈啊-说明还完全有待努力! 稍微研究了一下,这本书好像并不需要什么代码记 ...
- 【Git】版本控制管理(第二版) 前言 第一章 第二章
版本控制管理 前言 第一章 第二章 资源 前言 本书结构 第一章 介绍 总结在开头 1.1 背景 1.2 Git的诞生 1.3 先例 1.4 时间线 第二章 安装Git 2.1 使用Linux上的二进 ...
- Day1ps设计基础作业第一章第二章
Day1 ps设计基础作业第一章第二章 1.1工作区和工作流程 3种调整人像照片亮度的方式:1图像-调整-亮度/对比度,2图像-调整-色阶,3获取图像亮度+混合模式,通道(右下)按ctrl RGB的缩 ...
- Java 北大青鸟 第一学期 第二章 上机练习
Java 北大青鸟 第一学期 第二章 上机练习 手中牌互换 华氏度摄氏度 银行定期储蓄业务 数据类型 源文件下载 手中牌互换 public static void main(String[] args ...
- 【吃瓜笔记】第一章第二章
[吃瓜笔记]第一章&第二章 一.基本术语 二.模型评估与选择 1.评估方法 (1).留出法 (2).交叉验证法 (3).自助法 2.选择依据 (1).性能度量 1).错误率与精度 2).查准率 ...
- 第一篇第二章火灾的基础知识
沿外墙面蔓延的情况 需要注意:层高要足够高 要不下层着火会直接蔓延到上层 喷头系统必须在轰然之前进行灭火 否则灭火失败 2019/1/3 [录播]2018一消精华班-实务-一级消防工程师-环球网校 h ...
- 谈谈在计算机系统中引入操作系统,初中信息技术第一册第二章第1节《操作系统简介》教学设计...
广州市初中信息技术第一册第二章第1节<操作系统简介>教学设计 一.学习者分析 学生通过第一章的学习,对计算机的软.硬件知识有了初步的了解,同时对操作系统的作用也有了简单的认识.但由于学生普 ...
- 《算法导论》学习总结 — 2.第一章 第二章 第三章
上一篇:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html 前三章基本没什么内容,所以合在一起总结. 第一章: 讲了算法( ...
- x86汇编-1(第一章—第二章)8086处理器基本情况
第一章:进制 1. 二进制(Binary):0.1 十进制(Decimal):0.1.-.9 十六进制(Hex.0x):0.1.--.9.A.--.F 第二章:处理器.内存.指令.地址.CPU-内存模 ...
最新文章
- 高通---GPUCPU频率和工作模式的获取设置
- ubuntu20分区_「图」Canonical希望Ubuntu 20.04 LTS Server Installer更快更舒适
- iview地区加载_LoadingBar 加载进度条
- Keil5 EventRecorder 的STDOUT输出丢包率较大现象
- 英特尔预计5年内将成智能手机芯片大厂
- VsCode git报错 git add -A -- xxx is outside repository
- 文档服务器 件排名,服务器排名
- linux 循环小时,shell脚本日期遍历(按天按小时)
- 杭州电子科技大学考研经验贴
- 【visio】visio绘制流程图教程
- 中科院计算机所沈阳待遇怎么样,中科院沈阳计算技术研究所计算机技术怎么样...
- 教师利用计算机中的视频图片,多媒体在计算机教学中的作用
- 华为ensp防火墙web登陆配置
- 在windows7下安装vs2008失败的解决办法
- CSS语法及其选择器
- vivado对mcs文件固化
- 大型电子商务网站架构
- Python处理第一类切比雪夫多项式
- 【语音处理】用于音频盲源分离的谐波矢量分析 (HVA)(Matlab代码实现)
- java drawstring 截断_java中怎要用线程不断重写drawstring 方法