Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220990
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-09 10:55
个人简介

每天改变一点点,生活充满了惊喜。

文章分类

全部博文(42)

文章存档

2016年(8)

2015年(29)

2014年(5)

我的朋友

分类: LINUX

2015-10-09 20:59:27

持之以恒地使用VIM,因为通过训练,曾经很棘手的事情都将变成你的第二天性,你应该把“不加思考就能使用VIM完成你的操作”当成你的目标。
一旦你达到这种水平,就能以思考的速度编辑文本了。
——很喜欢《Practical Vim - Edit Text at the Speed of Thought》中的这段话。

VIM 发展
Unix 编辑器的发展: ed -> ex -> vi (visual) -> vim (vi improved)

模式分类

(1)普通模式
(2)插入模式
(3)可视化模式 用于对文本块做操作,在可视化模式中,所有按键都会完成一种不同功能。
(4)命令行模式  普通模式下,按冒号进入。

以上是常见的模式,还有一些不太常见的,其实也有他们的使用场景,来了解下:
(5) 操作符待决定模式(Operator-Pending Mode)     
          前面讲到vim的操作是通过 操作符 + 动作命令 实现的,而输入操作符和动作命令的这段时间,vim就处于操作符待决定模式。
          即它在调用操作符时被激活,只接受动作命令的状态,等待动作命令以完成操作,按可以返回普通模式。
(6)插入-普通模式    
         插入-普通模式是普通模式的一个特例,它能执行一次普通模式命令,然后返回到插入模式。
(7)选择模式    
         当进入可视模式后,按gh,再做输入,就会替换所选内容并切换到插入模式。
         因为在可视化模式下,如果直接输入,输入的字符会被解释成命令,当然要实现这个效果,用c命令先做删除也是可以的。

操作语法规则
(1) vim的操作 是通过 操作符 + 动作命令实现的;
(2) 当一个操作符被连续调用两次时,它会作用于当前行,如dd 删除当前行,>>缩进当前行;

操作原则
(1) 在做一系列可重复修改时,最好首选操作符命令,远离可视模式(可视模式命令被重复时,会影响相同数量的文本)。

文本对象
VIM 的文本对象分为两类,一类是操作分隔符的对象文本,另一类是操作文本块,如单词、句子和段落。
分隔符文本对象:
允许操作括号,被引用文本,XML标签以及其他文本中的常见结构。
a) 或 ab  一对圆括号(parentheses)
i) 或 ib 圆括号内部
a} 或 aB 一对花括号(braces)
i} 或 iB
a] 一对方括号(bracket), i]
a> 一对尖括号(angle bracket) , i>
a' i' a" i" a` i`    (single  quotes,double quotes,backticks)
at 和 it XML标签

范围文本对象(block object):
iw    当前单词
aw    当前单词及一个空格
iW    当前字符串
aW    当前字符串及一个空格
is    当前句子
as    当前句子及一个空格
ip    当前段落
ap    当前段落及一个空行

文本对象 结合 操作符待决定模式及可视模式,可以展现强大的能力。
一般来说,d{motion} 命令和 aw、as、ap配合起来比较好,而c{motion} 则配合iw、is、ip较好。

参考:
1.《Vim 实用技巧》《Practical Vim - Edit Text at the Speed of Thought》
阅读(1420) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~