第一章:Vim 解决问题的方式

前言

本质上讲,我们的工作是重复性的.凡是可以简化重复性操作的方式,都会成倍地节省我们的时间.

Vim 对重复性操作进行了优化.它之所以能高效地重复,是因为它会记录我们最近的操作,让我们用一次按键就能重复上次的修改.

.--这个看似简单的命令是 Vim 中的瑞士军刀.

修改的定义

定义:

修改是改变文档内文本的任意操作,分为两类:

  1. 它可以是在普通模式、可视模式、命令行模式中所触发的指令.
  2. 插入模式在按 Esc 之前的操作,包括输入的文本.

将两个动作合并成一次按键——一箭双雕

复合命令 等效的长命令
C c$
S cl
S c
I i
A $a
o A
0 ko

重复 & 回退

在执行一个修改的时候,要想办法做到两点:

  1. 使修改可重复
  2. 使移动可重复

并且当发生错误,或者针对不同对象有不同的操作的时候,我们能够执行回退操作.

目的 操作 重复 回退
作出一个修改 {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 中的默认模式:普通模式,探讨了如下问题:

  1. 在执行时可指定执行的次数的普通模式命令
  2. 普通模式命令将操作符与动作命令结合在一起的特点
  3. 普通模式命令执行简单的算术运算

构造「可重复的」修改

依据:使用这种手段的时候 ,需要的按键次数最少.
示例:
文中比对了三种命令的效果:
db-x, b-dw. daw 都是能够删除一个句子中的一个单词的命令,但是如果要重复执行操作,即执行 "." 命令的时候,

  1. db-x, 只重复 x 命令,即删除一个字符
  2. b-dw,重复 dw 命令,即删除下一个单词.
  3. 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 第一章 第二章相关推荐

  1. 《算法帝国》第一章第二章读书笔记

    heeeeeeeeeeeeeeeeeeeeello! 好像有半个月都没好好写笔记了,经历了两次面试,一次败在单面,一次败在群面,哈啊-说明还完全有待努力! 稍微研究了一下,这本书好像并不需要什么代码记 ...

  2. 【Git】版本控制管理(第二版) 前言 第一章 第二章

    版本控制管理 前言 第一章 第二章 资源 前言 本书结构 第一章 介绍 总结在开头 1.1 背景 1.2 Git的诞生 1.3 先例 1.4 时间线 第二章 安装Git 2.1 使用Linux上的二进 ...

  3. Day1ps设计基础作业第一章第二章

    Day1 ps设计基础作业第一章第二章 1.1工作区和工作流程 3种调整人像照片亮度的方式:1图像-调整-亮度/对比度,2图像-调整-色阶,3获取图像亮度+混合模式,通道(右下)按ctrl RGB的缩 ...

  4. Java 北大青鸟 第一学期 第二章 上机练习

    Java 北大青鸟 第一学期 第二章 上机练习 手中牌互换 华氏度摄氏度 银行定期储蓄业务 数据类型 源文件下载 手中牌互换 public static void main(String[] args ...

  5. 【吃瓜笔记】第一章第二章

    [吃瓜笔记]第一章&第二章 一.基本术语 二.模型评估与选择 1.评估方法 (1).留出法 (2).交叉验证法 (3).自助法 2.选择依据 (1).性能度量 1).错误率与精度 2).查准率 ...

  6. 第一篇第二章火灾的基础知识

    沿外墙面蔓延的情况 需要注意:层高要足够高 要不下层着火会直接蔓延到上层 喷头系统必须在轰然之前进行灭火 否则灭火失败 2019/1/3 [录播]2018一消精华班-实务-一级消防工程师-环球网校 h ...

  7. 谈谈在计算机系统中引入操作系统,初中信息技术第一册第二章第1节《操作系统简介》教学设计...

    广州市初中信息技术第一册第二章第1节<操作系统简介>教学设计 一.学习者分析 学生通过第一章的学习,对计算机的软.硬件知识有了初步的了解,同时对操作系统的作用也有了简单的认识.但由于学生普 ...

  8. 《算法导论》学习总结 — 2.第一章 第二章 第三章

    上一篇:http://www.cnblogs.com/tanky_woo/archive/2011/04/09/2010263.html 前三章基本没什么内容,所以合在一起总结. 第一章: 讲了算法( ...

  9. x86汇编-1(第一章—第二章)8086处理器基本情况

    第一章:进制 1. 二进制(Binary):0.1 十进制(Decimal):0.1.-.9 十六进制(Hex.0x):0.1.--.9.A.--.F 第二章:处理器.内存.指令.地址.CPU-内存模 ...

最新文章

  1. 高通---GPUCPU频率和工作模式的获取设置
  2. ubuntu20分区_「图」Canonical希望Ubuntu 20.04 LTS Server Installer更快更舒适
  3. iview地区加载_LoadingBar 加载进度条
  4. Keil5 EventRecorder 的STDOUT输出丢包率较大现象
  5. 英特尔预计5年内将成智能手机芯片大厂
  6. VsCode git报错 git add -A -- xxx is outside repository
  7. 文档服务器 件排名,服务器排名
  8. linux 循环小时,shell脚本日期遍历(按天按小时)
  9. 杭州电子科技大学考研经验贴
  10. 【visio】visio绘制流程图教程
  11. 中科院计算机所沈阳待遇怎么样,中科院沈阳计算技术研究所计算机技术怎么样...
  12. 教师利用计算机中的视频图片,多媒体在计算机教学中的作用
  13. 华为ensp防火墙web登陆配置
  14. 在windows7下安装vs2008失败的解决办法
  15. CSS语法及其选择器
  16. vivado对mcs文件固化
  17. 大型电子商务网站架构
  18. Python处理第一类切比雪夫多项式
  19. 【语音处理】用于音频盲源分离的谐波矢量分析 (HVA)(Matlab代码实现)
  20. java drawstring 截断_java中怎要用线程不断重写drawstring 方法

热门文章

  1. iOS开发使用Unwind Segue进行返回
  2. sql server 2008 故障转移群集
  3. Apache2 + Tomcat6配置负载均衡
  4. 详细讲解SQL Server索引的性能问题
  5. FPGA设计中MEMORY型数据怎么综合到blockRAM里面(二)
  6. 低通采样和带通采样定理
  7. 9个点的所有解锁图_黔隆科技刷机教程酷派C1068忘记密码刷机解锁降级救砖解屏幕锁账户锁教程...
  8. 系统无法正确检测到盘符
  9. VMware下redhat9.0的上网设置
  10. 如何固化预训练模型的参数