From c77b4c4a206987bfb8530b6e7991d233679bacf6 Mon Sep 17 00:00:00 2001 From: Jim Date: Wed, 23 Apr 2014 12:57:40 +0800 Subject: [PATCH] commit the new blog again --- .../2014/2014-04-19-Reasons-to-Learn-vim.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 _posts/2014/2014-04-19-Reasons-to-Learn-vim.md diff --git a/_posts/2014/2014-04-19-Reasons-to-Learn-vim.md b/_posts/2014/2014-04-19-Reasons-to-Learn-vim.md new file mode 100644 index 0000000..7c4b455 --- /dev/null +++ b/_posts/2014/2014-04-19-Reasons-to-Learn-vim.md @@ -0,0 +1,49 @@ +--- +layout: post-en +title: 为什么要学习VIM +categories: +- Common Tec +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++之类的编辑器了。 + +*第三级是持续改进级* + +不断使用,不断发掘,不断熟练。 \ No newline at end of file