傻子才会学,大佬全都会的VIM 学习记录 00
- 学习目的:
- 就像看到代数史的一样,一开始只是为了打发时间,没想到认识到的抽象的神圣.只是为了保存代码,用了一下
.md
,没想到PPT和博客都可以用它来写.- 我是想说,我学习一个工具,不是为了装逼(大家都不懂,觉得没用,你自己岂不是很小丑?),也很难说是为了效率(这其中要考虑一堆东西,很难说一定,但人们会选那些显而易见的一定).而是希望得到它所宣传的那样:
以思维的速度编辑文本
,其实是打磨时间,经营博客.
- 我是想说,我学习一个工具,不是为了装逼(大家都不懂,觉得没用,你自己岂不是很小丑?),也很难说是为了效率(这其中要考虑一堆东西,很难说一定,但人们会选那些显而易见的一定).而是希望得到它所宣传的那样:
- 就像看到代数史的一样,一开始只是为了打发时间,没想到认识到的抽象的神圣.只是为了保存代码,用了一下
- 学习材料:
1. VIM的基本操作
:h vimtutor
进入内置文档vim -u NONE -N
出厂配置 不加载vimrc
文件
vim解决问题的方式
- 本质上讲,我们的工作是重复性的,因此简化重复性的操作会成倍地节省时间.
- 解决重复性办法: 记录最近操作
技巧1 认识.
命令
-
.
命令重复上一次操作- 要理解 . 命令的强大,我们需要意识到这一点:
- “上次修改” 可以指很多东西,一次修改的单位可以是字符、整行,甚至是整个文件。
- 要理解 . 命令的强大,我们需要意识到这一点:
-
x
命令会删除 光标下的字符.
命令会重复u
撤回上述修改- 补充
dd
会将一行都删除
- 补充
-
.
相当于 一个 宏
技巧2 不要自我重复
-
对于在行尾添加内容这样的常见操作,如添加分号,Vim提供了一个专门的命令,可以把两步操作合并为一步。
-
-
具体操作:
-
常规操作:
$
移到行末- insert 模式 加入
;
- 重复 1,2
改善: j$.
j
向下$
句末.
重复上次操作
-
减少无关的移动:
- 用
A;
代替$a;
- 用
-
等效的复合命令
- 配合
.
使用
复合命令 | 等效长命令 | 含义 |
---|---|---|
A | $a | 在行尾进入插入模式 |
I | ^i | 在行首进入插入模式 |
o | A<CR> | 在下一行进入插入模式 |
O | ko(k$a<CR>) | 在上一行进入插入模式 |
S | ^c$ | 删除当前行并进入插入模式 |
C | c$ | 删除当前光标位置到行尾的内容并进入插入模式 |
s | cl | 删除光标后的一个字符并进入插入模式 |
技巧3 以退为进
-
我们可以用一种常用的Vim操作习惯在一个字符前后各添加一个空格。乍一看,这种方法有点古怪,不过其好处是可重复,这将使我们可以事半功倍地完成工作。
-
初始效果:
-
结果:
-
具体操作:
f+
当前行查找+
s +
删除光标 并添加+
;.
;
查找.
重复s +