总结 
进入插入模式
i: 进入插入模式,并定位光标至当前字符之前I: 进入插入模式,并定位光标至当前行首a: 进入插入模式,并定位光标至当前字符之后A: 进入插入模式,并定位光标至当前行尾o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行
进入普通模式
<esc>: 过于偏远,按键不方便。<ctrl-[>: 推荐这个<ctrl-c>: 在命令行中不太好用,所以推荐上面的
提问 
- [x] 1. 如何进入 insert mode 
i: 进入插入模式,并定位光标至当前字符之前I: 进入插入模式,并定位光标至当前行首a: 进入插入模式,并定位光标至当前字符之后A: 进入插入模式,并定位光标至当前行尾o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行
 - [x] 2. 如何退出 insert mode 
<esc>: 过于偏远,按键不方便。<ctrl-[>: 推荐这个,有时候<ctrl-c>有其它占用<ctrl-c>: 在命令行中不太好用,所以推荐上面的
 
1. 前提提要、场景 
都听说过 vim 的好处,操作起来十分便捷,但由于前期的学习负担较大,转换过程十分痛苦,很多人在黎明到来前就放弃了。
我适应了两个星期,现在日常开发也是用 vscode 的 vim 插件,感觉没有那么难了,基本可以抛弃鼠标和方向键,真香。后期的开发效率还会随着熟练度逐步提高,上限较高。所以熬一熬吧,挺值的。
推荐看这个视频,了解个大体的概念。https://prezi.com/view/RKhL17TysQ2tqvADpZDV/
自己新建一个文档,不要一股脑跟着网上抄,吃不消。该文档只用来记录日常使用的快捷键,在开发时遇到痛点,再去找对应的解决方案并记下。这样负担小,且这个文档也能被自己慢慢吸收。
vim可以将你手的活动范围控制在主区域即字母区域,但需要有良好的键盘使用习惯。例如两个食指在fj处,且各个手指负责各个区块,各司其职,不会出现类似中指去按o,食指去按,的情况。可以通过 https://www.typingclub.com/(科学上网) 去练习键盘使用习惯。十分推荐,该网站做的超级棒。甚至可以单独锻炼某根手指,可以每天安排 10 分钟练习。
2. 文件中的基础练习 
sh
# 新建一个文件 Readme.md,输入字符
$ vim Readme.md
vim Readme.md: 新建并打开一个文件Readme.md,此时处于normal mode。i: 进入insert mode,此时可正常编辑文字。# hello, vim: 此时处于insert mode,输入字符# hello, vim<esc>: 退出insert mode,此时处于normal mode。:: 进入command mode。:wq: 在command mode下继续输入:wq,保存退出。
已经接触了三种模式:
normal: 普通模式,刚进入vim的默认模式,也是最重要的模式。 确保大部分操作在普通模式下完成,而不是插入模式。insert: 插入模式。在普通模式下通过i进入插入模式,在插入模式下进行文字编辑。在插入模式中,是没法控制光标移动的。command: 命令模式。在普通模式下通过:进入命令模式,在命令模式下执行命令。
3. insert mode commands 进入插入模式 
以下按键都可以从 normal 进入 insert 模式
i: 进入插入模式,并定位光标至当前字符之前I: 进入插入模式,并定位光标至当前行首a: 进入插入模式,并定位光标至当前字符之后A: 进入插入模式,并定位光标至当前行尾o: 进入插入模式,当前光标之后新建一行,并定位光标至后一行O: 进入插入模式,当前光标之前新建一行,并定位光标至前一行
4. normal mode commands 进入普通模式 
以下按键都可以从 insert 进入 normal 模式
<esc>: 过于偏远,按键不方便。<ctrl-[>: 推荐这个<ctrl-c>: 在命令行中不太好用,所以推荐上面的