您的位置:首页 > 其它

Vim (五) 三种可视模式

2015-01-18 11:29 369 查看
Vim 的可视模式允许我们选中一块文本区域,并且在上面进行操作。

从表面看,这没什么区别,因为很多的编辑器都采用这样子的方式,但是Vim的可视模式的做法却截然不同。

在运行一个可视模式的命令之后,会退出可视模式,进入到普通模式。

1. Vim 有3中可视模式,分别用作操作字符文本,行文本,和块文本。

技巧20 深入理解可视模式

----------------------------------------------------------------------------------------------------------------------------------------

1. 在可视模式下面, h j k l 依旧可以当作光标键使用。

2. f{char}也可以跳转到某个字符上面, ; 和 ,来执行正向和反向的跳转

3. 使用查找命令,n和N执行正向和反向的跳转。

在可视模式下面 移动光标,就可以高亮选择区域的部分。

4. 和普通模式相同,c命令的功能也是一样的,删除指定的文本并且进入插入模式。

不过要指定所操作的范围,普通模式和可视模式的方式却是截然不同。

普通模式: 先触发修改命令,然后输入用动作命令指定其作用范围。 (成为操作符命令)

可视模式:先选中修改区域,然后触发修改命令。

(可以看到二者是次序颠倒的,但是在两个模式下面,很多字符都有相同的作用)

技巧21 选择高亮区域

----------------------------------------------------------------------------------------------------------------------------------------

1. 如何进入可视模式?(共有三种可视模式)

v: (小写v)激活面向字符的可视模式

V: (大写V)激活面向行的可视模式

<C-v>:
激活面向块的可视模式

gv: 重选上次的高亮区域。

2. 在不同的可视模式之间进行切换。

2.1 通过按键 对应的大写字母可以在不同的可视模式之间进行切换。

2.2 在面向字符的可视模式下面按键 v 可以返回普通模式。(面向块 和面向行的可视模式都是一样的)

<Esc> / <C-[> : 回到普通模式

o : 切换高亮选区的活动端

3. 切换选区的活动端

高亮选区由两个断点确定:一个固定的端点,一个活动的端点。

字符 o 可以在不同的的端点之间来回的切换。

技巧22 重复执行面向行的可视命令

----------------------------------------------------------------------------------------------------------------------------------------

其实也就是所说的点范式。

比如: 如果对某一行代码进行缩进, > 和 < 可以进行这样子的操作。

V : 选中行

> :对该行缩进一次

. : 可以重复上一次的命令,非常好用。

. 使用点范式的时候,它所操作的文本数量和上次被高亮选中的文本数量相同。

对于面向行的高亮选取来说(文本数量按照行来计算),这种做法往往符合我们的要求。

但是对于,面向字符的高亮选区来说,却可能会造成问题。

技巧24 只要有可能,最好用操作符命令,而不是用可视命令

----------------------------------------------------------------------------------------------------------------------------------------

vit: 选择标签里的内容,可以被解读为选中标签内部(inside)的内容。 it 是一种文本对象。
gU it : 操作符 + 动作命令

如果,我们想要使用点命令重复某些有用的操作,那么最好远离可视模式。作为一般的原则,

在做一系列的可重复的修改的时候,最好首选操作符命令,而不是其对应的可视模式命令。

技巧25 使用面向列块的可视模式
编辑表格区域


----------------------------------------------------------------------------------------------------------------------------------------

在任何的编辑器中我们都可以操作以行为单位的文本,但是以列为单位的文本我们就需要更加专业 的工具了。
Vim 面向列块的可视模式就提供了这种工具,可以对纯文本表格进行修改。

1. 在同一列插入一条丨。

<C-v>: 进入面向列的可视模式

jjjj : 选定一列。

x... : 删除列

gv : 重新选定删除区域

r| : 将那一列中的所有的 字符,替换为 |

2 . 修改列文本:

总之有些小神奇的样子。

技巧26 在长短不一的高亮块后面添加文本
----------------------------------------------------------------------------------------------------------------------------------------
列块 可视模式,不仅仅可以操作由列行组成的方形代码块,而且可以操作长短不一的文本。
<C-v>: 进入列块可视模式
jj : 选定接下来的两行
$: 把选区扩大的每行的结尾。 (虽然每行的长度不宜样,但是Vim 可以打破方形的限制,创造出右边界长短不一的文本选区)
A: 在选取的结尾添加字符串,进入插入模式。
<Esc>: 离开插入模式,进入普通模式。

Vim 对于 "i" 和 “a” 键的约定。
从普通模式进入插入模式: "i",把光标置于当前字符之前,"a"把光标置于当前字符之后。
I 命令:把光标置于当前行的行首
A 命令: 把光标置于当前行的结尾。

从列块可视模式进入到插入模式:
I : 把光标置于选区的开头
A : 把光标置于选取的结尾。

但是在可视模式,以及操作副待决模式中: ‘i’ 和 ‘a’ 沿用不一样的约定。
他们会被当作一个文本对象(后面讨论文本对象)的组成部分!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: