vim高频实用命令整理

By heiry on 2019-09-11 [ in 技术 ]

进入编辑/输入模式

快捷命令 功能描述
i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令

光标移动操作

快捷命令 功能描述
w 向前移动,光标停留在下个单词词首,每次一个单词(单词中不含其他字符如:- \ = +等)在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
nw 向后移动n个word(n可以是任意整数数字,如2w)后续W、b、B、e、E都可这样使用
W 向前移动,光标停留在下个单词词首,每次一个字符串(字符串可以含有其字符如:- \ = +等,is-a word/and/bog 这种都是字串)
b 向后移动,光标停留在前个单词词首,每次一个单词
B 向后移动,光标停留在前个单词词首,每次一个字符串在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
e 向前移动,光标停留在前个单词词尾,每次一个单词
E 向前移动,光标停留在前个单词词尾,每次一个字符串在光标所在行的行尾插入随后输入的文本,相当于光标移动到行尾再执行 a 命令
Home 快速移动光标至当前行首
End 快速移动光标至当前行尾
:n 移动到第n行,如,:10可快速跳转到10行
gg 移动到文本开始处
G 移动到文本末尾处
nG 光标移动到第 n 行,n 为数字
0 或 ^ 移动至当前行的行首
$ 移动至当前行的行尾
n$ 移动至当前行只有 n 行的行尾,n为数字
fx 移动至当前行中下一个 x 字符处,如,fe,则移动到下一个e字母处
Fx 移动至当前行中上一个 x 字符处,如,fe,则移动到下上个e字母处
nj 向下移动n行,如,10j表示向下移动10行
ctrl+b 向上翻页
ctrl+f 向下翻页

撤销操作

快捷命令 功能描述
u 撤销上一次的操作
U 行撤销,撤销所有在前一个编辑行上的操作(行恢复)。

查找操作

快捷命令 功能描述
/str 在后面的文本中查找str。
?str 在前面的文本中查找str。
n 向后查找下一个。
N 向前查找下一个。

复制粘贴

快捷命令 功能描述
yy 单行复制
dd 单行删除(剪切)
p 粘贴
按esc键后,先按gg(到达顶部),然后dG 全部删除
按esc键后,先按gg,然后ggyG 全部复制
n 向后查找下一个。
N 向前查找下一个。
>> 阅读全文  >>

设计模式剖析系列之快照/备忘录模式

By heiry on 2019-08-23 [ in 技术 ]

快照/备忘录模式

快照模式也称为备忘录模式,其作用是将捕获对象的状态保存起来,在需要的时候可以进行恢复。

核心结构:

A.源发器 Originator类,对象的基本状态信息类,其含两个核心方法,其一是备份操作的setMemento()方法,该方法返回一个备份对象Memento实例。另一个是恢复操作的recovery(Memento m)方法,其需要传入一个已经备份的Memento实例。

B. 快照Memento类,用于创建源发器实例的快照。其属性包含了源发器所有属性。构造方法需要传入一个需要备份的源发器Originator类实例。

C. 快照管理类,用于关联已经创建的快照对象实例。

以上三者关系及客户端调用方法如下图所示: (更多…)

>> 阅读全文  >>

设计模式剖析系列之状态模式

By heiry on 2019-08-21 [ in 技术 ]

状态模式详解

当控制一个对象状态转换的条件表达式过于复杂,把状态的判断逻辑转移到对应的状态类中,实现复杂逻辑的简单化,这是状态模式的初衷。状态模式的核心组成要点:

1. 抽象状态接口或类State:封装状态行为。

2. 具体状态类 Concrete State:实现抽象State类或接口的行为,每个状态对应一个类。

3. 环境类 Context:用于实现状态的转换与客户端的调用,其包含了对一个对State实例的引用。

状态模式示意图

 

>> 阅读全文  >>

设计模式剖析系列之策略模式

By heiry on 2019-08-21 [ in 技术 ]

策略模式定义了一系列算法(算法族),各可以相互替换,客户端可根据实际情况选择使用哪一种算法,算法的变化不会影响使用算法的客户。

策略模式核心结构: (更多…)

>> 阅读全文  >>

设计模式剖析系列之责任链模式

By heiry on 2019-08-19 [ in 技术 ]

责任链模式

责任链模式是将请求发送者与处理者之间的耦合关系降低的一种行为模式。如,在公司中,研发部部长申请一笔部门活动经费,按照公司规定,经费在5万元内研发总监签字即可,经费在5万元至10万元的需要总经理批准,经费在10万元至20万元之间的需要副总裁批准。

按照一般思维,研发部部长必须很熟悉公司规章制度,自行根据金额大小去找不同领导签字,这就无形中增加了额外工作负荷。现在公司开发了一套系统,申请人只需要将金额等基本申请信息填写好,录入系统,系统根据公司规则自动判断该发送到哪个领导审批,相应领导接收到申请后审批,并将审批结果反馈回来。这样申请人无需去额外学习复杂的公司制度,也不需要关心是谁处理了这个申请,申请人和审批领导实现了解耦,提高了效率。这套系统就充当了责任链。 (更多…)

>> 阅读全文  >>

设计模式剖析系列之桥接模式

By heiry on 2019-08-18 [ in 技术 ]

桥接模式UML图

《待续》

>> 阅读全文  >>

设计模式剖析系列之动态代理及原理探究

By heiry on 2019-08-17 [ in 技术 ]

java动态代理剖析

动态代理与静态代理最大的不同在于,动态代理中,代理类对象由JVM生成,不再需要我们自己编写代理类。

核心实现:

1. java.lang.reflect.Proxy类动态生成代理类和对象,它提供用于创建动态代理类和实例的静态方法,是由这些方法创建的所有动态代理类的超类。

2.java.lang.reflect.InvocationHandler处理器接口,可以通过invoke方法实现对真实角色的访问。(每次通过Proxy生成代理类对象时都要指定该处理器接口) (更多…)

>> 阅读全文  >>
京ICP备15064511号 © 2009-2017 MOSANG.NET DESIGNED BY HEIRY WU