Vim 解决问题的方式,以及 Vim 命令的组成结果

推荐:《Pratical Vim》 这本书绝对值得一读,我大概花费了三四天的时间基本上读完了,然后接下来每次都是重复着看一两章。

Vim 解决问题的方式是:针对重复性的操作进行优化。 vim可以记录我们最近的操作,让我按一次键就可以重复上一次对文件的修改。
vim 命令的组成: vim 命令有一些有规律的组成方式,需要好好琢磨。动作前缀啊(执行动作 +动作的对象),文本对象啊。

其中的关键是我们可以规划按键动作,否则对没有什么用。

首先我们看一下 结识 . 命令:. 命令可以重复我们上次的修改,它是Vim中最强大的多面手。
上次的修改可以是很多的东西:一次修改的单位可以使字符,整行,也可以是整个文件。

x 在普通模式下 删除一个当前光标下的字符,并且停留在普通模式。
. 重复删除 一个元素。
.. 依旧重复删除两个字符。




dd 命令可以删除整行。 (移动光标,不属于对文件的修改)
. 重复删除整行。
.. 删除两个行。


>G会增加从当前行到文档末尾的缩进层级。

我们每次进入插入模式的时候也会形成一次修改,从进入插入模式(比如说 i)的那一刻开始,直到返回普通模式为止(Esc),Vim 会记录每一个按键操作。做出这样的一个修改之后再用.命令,它将会重新执行所有这些按键操作。 (这里的重点是 Vim 会执行每一次按键操作,这里移动光标也属于一次按键操作。)


a 命令,可以进入插入模式 并且将光标移动到 当前字符之后。
$ 将光标移动到行尾。

A 命令 在当前行尾添加内容。无论光标位于什么位置,都可以输入A进入插入模式,并且将光标移动到行尾。A = $a

A 命令配合 . 命令可以实现:一键移动 另外一键来进行操作的方式,十分完美。

一箭双雕的命令:
C    c$      删除当前行,并且进入插入模式。
s     cl      删除当前字符,并且进入插入模式。
S
I      ^i    在行首进行插入。
A    $a    在行尾进行插入
o    A 在当前行尾 添加一行,并且进入插入模式。
O    ko   在当前行首插入一行,并且进入插入模式。



使用 Vim 在一个字符前后各添加一个空格。
var foo = "method("+argument1+","+argument2+")";  在 + 前后各添加一个空格。
f+ :  跳转到 + 这个位置。
s: 删除当前元素,并且进入插入模式。
 + : 输入 空格+空格
; : 跳转到下一个匹配的位置。
. : 重复修改文本的命令。
;.;.



;  调准到下一个匹配的位置。

一个键进行移动,另一个键进行操作。

. 命令会重复上次的修改,由于很多操作都被当成一次修改,因此命令.可以证明它的神通广大。
此外还有很多可以重复命令的方式:
     @: 可以用来重复任意的Ex 命令。
     & 可以用来重复上次的:substitutite 命令。
     ; 可以重复上次的字符查找操作。
     , 反向重复上次的字符查找操作。


重复 与 撤销的操作:
目的                                                  操作                         重复                      回退
做出一个修改                                    {edit}                          .                             u
在行内查找下一个制定字符               f{char}/t{char}              ;                               ,
在行内查找上一个制定字符               F{char}/T{char}              ;                              ,
在文档内查找下一处匹配项               /pattern                 n                              N
在文档内查找上一处匹配项              ?pattern                   n                              N
执行替换                                         :s/target/replacement      &                              u
执行一系列修改                              qx{changes}q                 @x                            u



cw: 删除从当前光标开始 到单词结尾的内容,不包含空格。


理想模式: 用一键进行移动,用另外一键执行动作。
我们把这个编辑模式成为点范式   ”.范式“。


总结:上面介绍的很多命令都是在 普通模式下的操作。

1. 可以看到,进入插入模式 有很多种方法,I, i, A, a, O, o。
2. 对于具有重复性操作的动作,才是Vim的拿手好戏,这也是Vim 的精髓所在。
3. 熟悉 一键移动,一键执行的操作模式。点范式。
4. 重复 + 回退的操作。

5  现在回复一下我们遇到的命令:

0 可以跳转到行首
$  跳转到行尾
A  在行尾进行插入
a  在当前光标后进行插入
I  在行首进行插入
i   在当前光标前进行插入
O  在当前行行首插入一个空行,并且进入插入模式。
o  在当前行行尾插入一个空行,并且进入插入模式。

方向键: j 下, k 向上,  h 左边, l 右边。 (记住方式:h ,l  分别位于左右,j 身子向下, k 身子向上)。

f{char}: 在当前行内查找 下一个字符
t{char}: 

/pattern
%s/pattern/replace/g

dd    删除整行,依旧保留在普通模式
x      删除当前字符,并且停留在普通模式
cw   删除从光标开始到单词结束的位置,进入插入模式。
cc   删除当前行,保留最后的换行符。







































你可能感兴趣的:(Vim)