这个年代, 不懂点linux, 都不好说自己是搞软件开发的了。 在linux环境下, 不会用vim, 那就意味着根本没入门啊。 如果是是在校的学生, 那估计接触linux的机会比较少, 那么, 现在入职前热身一下vim吧。
什么是vim呢, 你就把它理解为Windows平台上的notepad++或者ultraEdit吧, 就是个编辑器而已。 不过对于没接触过linux的人来说, 还是应该花点时间来熟悉一下这个编辑器。在Windows上, 如何练习linux下的vim呢? 很简单。 在我们之前的博文中介绍了一款Windows下的Git工具, 这是一个命令行工具, 是学习Git的好工具。 其强大之处在于, 不仅可以学习linux命令行, 学习linux下的Git, 还可以学习linux下的vim哈。后续还会介绍利用该工具学习shell script.
下载msysGit, 才十几兆, 安装后即可使用, 很方便。 截个图:
好的, 上面把基本的环境已经跟大家说了, 剩下的就是自己去操练吧, 可以在网上找一些教程, 然后进行实战练习。下面, 我来简要说一下和vim相关的基本东西吧, 要真正掌握它, 用它, 远非下面能达到,还是那句话:孰能生巧。
1. vim具有的状态具有三种模式: 一般模式, 编辑模式和命令行模式。
2. 在shell中, vim test.txt进入了一般模式, 如果test.txt本身存在, 则打开这个文件, 如果不存在, 则新建一个, 并打开。
3. 一般模式下, 输入a, 或者i或者o, 就进入编辑模式了, 可以写东西了。
4. 编辑模式下,按esc退出编辑模式, 进入一般模式了。
5. 一般模式下, :w表示把数据write到文件中, 其实就是保存。 但此时并不退出一般模式。
6.一般模式下, :q表示退出, 但是如果没有保存, 怎能让你随意退出呢? 系统会提示你的, 真贴心。
7. 一般模式下, 保存并退出vim, 那就用:wq吧, 当然你可以分步来, 先:w, 再写:q, 还有一个, 可以一步搞定, 那就是:x.
8. 一般模式下, 你修改了东西, 但不想保存, 想直接退出vim, 怎么办? 用:q!可以强退, 真野蛮。
9. 一般模式下, 输入:, /, ?会进行到命令模式, 前面讲的数据保存, 实际上已经进入了命令模式。可以执行保存,查找等操作。
10. 命令模式下, 按esc退到一般模式。
下面是我的一些积累, 慢慢添加一些常用的vim 命令(为了方便,我就不说什么模式下了), 冷门的命令, 没有必要刻意去记忆。
光标:
11. hjkl表示左下上右, 以前用方向键用得比较多。
12. ctrl + b 向回翻页, ctrl + f向前翻页。 顺便复习一下back, forwad, 联系一下单词, 就知道怎么用了。实际上就相当于page up/down
13. gg跳到文件头, G跳到文件尾。
14. 5H, 跳到文件的第5行, 就跟Source Insight里面的ctrl + G一样。high
15. 5L, 跳到文件的倒数第5行。low
16. 0到本行开头, $到本行结尾。
16.1. 10 enter, 光标下移10行
删除:
17. x删除当前字符
18. :1, 10d 删除第1行到第10行的内容
19. db 删除光标前面的单词, 10db表示删除光标前面的10个单词, 常用。 delete before.
19.1 dw表示删除光标右边的单词, 10dw表示10个, 常用。 delete word.
20. dd删除当前行, 10dd, 删除当前10行, 往下数的。
20.1 D表示删除光标后的当前行。
20.2 dG表示删除光标后的所有内容, 所以gg和dG的联合使用, 可以删除文件所有内容, 形成一个空文档。
复制和粘贴:
21. yy 复制当前行, 5yy, 复制当前5行。
22. yw复制当前单词
23. p粘贴在行前, P粘贴在行后。
撤销和重做:
24. u表示undo, ctrl + r表示redo, 实际上就类似于ctrl z, ctrl y.
25. . 单独的一个点, 就是重复上一个命令, 颇有方向键向上的感觉。
显示和取消行号:
26. :set nu, :set nonum
搜索:
27. /xxx, 正向搜索xxx串, n表示下一个, N表示上一个
28. ?xxx, 反向搜索xxx串, n表示下一个, N表示上一个
还是那句话: 孰能生巧。