revert last 3 commits to fix the Jekyll build error ~ git revert HEAD~3..HEAD~1

This commit is contained in:
Jim
2014-04-23 12:48:26 +08:00
parent 9fc7f569a6
commit f43b207d6c
@@ -1,43 +0,0 @@
---
layout: post
title: 为什么要学习VIM
categories:
- CommonTec
tags:
- vim
---
> Vim很多很多年前就接触过,但是一直就把它当成过时的一塌糊涂的玩意,没把它当回事。直到最近在Linux上的工作越来越多,又在stackoverflow上见到众多其粉丝的高度评价后才将信将疑开始学习,结果重度沉迷其中,不可自拔,上个周末读其帮助文档读到半夜,到底是什么在吸引我呢?
##一切都由快捷键实现##
有没有快捷键情节可以决定一个人是否适合学习vim。以我为例,当年学photo shop时几乎学会了其全部快捷键,最近开始用visual studio,也是先花半天学习快捷键。想想看vim的命令模式不就全是快捷键吗?默认的加上自定义的,在数量上可以轻松超过300个,再加上其快捷键可以组合使用,比如y,G,p各自是快捷键,组合起来的yyGp是将当前行复制粘贴到文件尾,这是一个何等强大的快捷键系统!
##更高效的焦点移动##
大多数人都不相信用键盘移动焦点会快过鼠标。这一段时间我各种编辑器混着用,总的感觉是少数情况下鼠标快,综合考虑Vim命令模式快。
##功能强大##
什么叫功能强大?本人用了十年的Eclipse也算的上熟练吧。Eclipse中喜欢用的快捷键有Alt加上下移动选中的行,Ctrl加上下键移动可视区域(View port)但不改变光标位置,在上次编辑位置中来回跳等。最近用的Visual Studio 2010中有个用绿色和黄色指示当前编辑过的行的功能,这一点我比较喜欢。但是上面这些功能在VIM这里全部都有,由此可见VIM功能之全面。个人以为仅以编辑器的功能来说vim是主流IDE的超集。
当然了这里也要客观得提一下vim在语言相关的功能上并不能全面压倒IDE,比如Java语言的静态语法错误检测,各种重构,搜索方法的调用层级,accesser自动生成等。但是动态语言的IDE并不具有上述功能(python,PHP等),此时vim占据较大优势。对于静态语言来说,当改Bug查代码为主要任务时,Vim也是非常合适的。
##一次学习终身受用##
在Linux中应用广泛,可跨平台到Windows, Mac,提供一致性的使用体验 。
Linux发行版中普遍包含,在服务器上调试脚本必不可少。
在Linux常用命令中普遍出现,如git,less,man需要移动和翻页时都可以用vi的方式。
##入门难精通快##
vim难学,主要体现在人们无法适应没有鼠标的感觉,也无法相信不用鼠标可以更快,然后采用死记硬背的方式来记快捷键,既没信心又没方法。
这里建议大家用分级学习的方法,先明确目标,然后要在用中学,万不可死记硬背。我的分级如下。
第一级是基本概念
Vim中自带了vim tutor学习教程,会指导你边学边做,学习最基本的移动,复制粘贴等,每遍30分钟左右,两三遍后这一级就过了。
第二级是高级光标移动和复制粘贴
熟练的光标移动非常重要,这一部分学好了编辑效率会直线提升,摆脱心理上对鼠标的依赖。
建议直接学习自带的帮助中的motion一章,输入:h motion即可。
复制粘贴是与选择相关的,高效的复制粘贴掌握后就可以不再依赖Notepad++之类的编辑器了。
第三级是持续改进级
不断使用,不断发掘,不断熟练。