给 VIM 新手建议

2015-12-26 21:05:21 +08:00
 join
前几天看到一个帖子,一个哥们问新手如何学习 VIM 的建议。底下的人都回复:“无他,唯手熟尔”。一个工具用熟悉以后确实会用得很好。但是我发现身边有的人用 VIM 用了很多年,却连一些最基本的操作都不大会,有些甚至连 hjkl 都不会使用。这个问题的出现真的不是可以用手熟来解释了。我就我自己这几年来使用 VIM 的一些心得和观察给新手提供以下建议。

## 认识 VIM
我们都知道 linux 的哲学是一个程序只做好一件事情,并做到最好。 wc, cat,tail, head, grep, ls, cd 。这些工具是对这个哲学的最好诠释。 VIM 也符合这个哲学, VIM 经过这么多年的发展依然没有太多的变化,变化的只是外部各种各样越来越强力的插件。 VIM 本身还依然保持娇小的身材,没有去解决除了编辑文本以外的问题。

## 网上的教程全部都是错的
网上有各种各样的教程都在介绍如何将 VIM ‘伪装’ 成一个强力的 IDE 。这些文章表面上看起来是教程,实际上是作者在告诉别人:“看,我这辆坦克多么多么厉害,它能发射各种各样的导弹”。这些教程除了教你把一个工具搞复杂以外,并没有带来任何有用的东西。 VIM 它本身不是 IDE ,它距离 IDE 还差很远。但它能让用户可以使用各种各样的语言来写代码。这也是为什么我现在还在用 Ctrl+N 来做补全而不使用各种强力的补全插件来做补全的原因。 VIM 它本身也并不完美,插件系统也有各种各样的问题,这么多年过去了连中文输入法都没有完美支持。但做为一个写代码的工具它已经做到了一个编辑器的极致了。 VIM 最好的教程是它自带的 vimtutor ,很少有软件能把教程做得这么好。 vimtutor 里面提及的那些操作几乎涵盖了 VIM 平常 90% 的操作,反复跟着教程练习几遍就能完全使用 VIM 了。可惜我见过的大部分的 VIM 用户都没有一开始去使用 vimtutor 进行入门练习,这就是我们经常会见到一个使用 VIM 好几年的用户居然连 hjkl 都不会的原因。

## 让工具适应你
VIM 有各种各样的插件和网上其他人开放出来 vimrc 配置文件。这些现成的东西是使用是有成本的,你必需要先学会使用这些东西才能让工具适应你。直接使用别人的 vimrc 与现成的插件包是非常不可取的,它们会把你的工具彻底搞复杂让你没法适应。理想的状态应该是理解 vimrc 文件每一行配置的含义,然后根据自己的习惯来做调整。需要什么插件去网上搜索,完全学会一个插件后再添加另一个插件。

## 总结:
1.认识 VIM 的局限,他能干什么,干不好什么。
2.入门请认真仔细使用 vimtutor 命令进行入门练习,最好多重复练习几遍。
3.拒绝别人现成做好的东西的诱惑,慢慢的打造属于自己的工具。
5344 次点击
所在节点    Vim
29 条回复
xcodebuild
2015-12-27 15:37:47 +08:00
@ThomasZ 讲道理的话明明是因为 vi 时代键盘没有方向键。。。
limbo0
2015-12-27 17:06:44 +08:00
除了在终端里用 vim 真找不到用 vim 的理由了
hailongs
2015-12-27 18:57:04 +08:00
@limbo0 比如你有一个很大的工程,这个工程团队都在服务器直接用 vim 编写,然后各种第三方库和环境本地也不好配,本地是 win ,服务器是 linux ,你不用 vim 用什么
dxcqcv
2015-12-27 19:07:57 +08:00
vimrc 可以保存替换,但是每次重装系统都要重新安装插件,有点无奈,有没有脚本可以一键安装呢?在 win 下
limbo0
2015-12-27 19:17:51 +08:00
@hailongs

你可以开个 samba 服务, 在本地 ide 里修改啊

要是用 vim 写 java 岂不是蛋疼啊
spacewander
2015-12-27 19:56:32 +08:00
又到了安利 vimscript 教程的时间了。
http://learnvimscriptthehardway.onefloweroneworld.com/
spacewander
2015-12-27 20:04:29 +08:00
@dxcqcv 看看 https://github.com/wklken/k-vim/blob/master/install.sh
他的步骤是:
1. 备份旧配置
2. 链接新配置(你也可以直接覆盖)
3. 启动 Vim ,使用 Vundle 安装插件
4. 编译 YouCompleteMe (运行 YCM 提供的安装脚本)

你可以用 bat 或者 python 实现同样的功能。
join
2015-12-28 00:16:48 +08:00
@limbo0 是的,会很蛋疼,用来写 C++ 项目也很蛋疼。
hailongs
2015-12-28 11:43:47 +08:00
@join c++路过

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/246349

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX