android开发之VIM快捷键使用指南

android的代码包括JAVA,C,C++和各种脚本,算起来有十几万个文件,阅读,编辑,使用这些代码,需要寻找一款合适的软件才能事倍功半。运行在WINE模式下的source insight工具不仅反应很慢,而且有很多符号在阅读时根本就不会跳转,令人非常困惑。因此我们大部分人只能入乡随俗,要么使用eclipse,要么使用VIM或者EMACS.VIM和EMACS作为linux下的两大编辑神器,对于从WIN转过来的朋友来说,还是比较富有挑战性的,关健在于习惯。他们都能通过命令行和快捷键完成所有工作,而且可以通过插件无限扩展,两者的区别在于,一个更接近DOS,所有操作快捷却对鼠标支持不是很好。一个和WIN比较接近,对鼠标支持比较好。但听说这两大阵营斗的正醋,宛如当年基督教与新教的斗争。也许需要两个都试试才能决定自己加入哪个阵营。在android的develop目录的IDE目录下,可以找到android对一些流行编辑器提供的配置文件。

作为一个典型的WIN用户,其实我们是无法理解这两大神器的。从WIN角度来说,一个好的软件应该需要达到不使用说明书就能操作的地步。但我们的linux同行显然不这么认为,感觉似乎速度,效率,命令的支持才是一个软件的魅力的源泉。所以我们只能入乡随俗,学习一个软件,先读他的说明书,背会他的快捷键和命令行。

确切的说,VIM有三种状态,快捷键状态,命令行状态,编辑状态。通过快捷键ESC切换。但大部分书都会把命令行和快捷键归入一种状态,所以常常说是两种状态,这也不错,快捷键和命令有时确实不太容易分清,一般来说,快捷键不需要回车确认,就会自动执行。

VIM的学习应该分几步,第一步是命令,快捷操作掌握。第二步是使用各种插什,第三步是编写自己工作需要的环境脚本文件.vimrc

下面列出我刚开始学习时总结的快捷键:

[plain] view plain copy
  1. 跳转,区分大小写,加shift的是大写:  
  2. 1,上下左右箭头 hkjl上下左右移一个字符  
  3.   退格,左移一字符  
  4.   空格,右移一个字符  
  5. 2.Ctrl-f往下滚动一屏  
  6.   Ctrl-b往上滚动一屏  
  7. 3.Ctrl-U往上滚动半屏  
  8.   Ctrl-D往下滚动半屏  
  9. 4.Shift+h顶部第一行字符起始,也即大写H  
  10.   Shift+m中间  
  11.   shift+l底部最后一行起始  
  12. 5.^,0当前行起始  
  13.   $,当前行尾  
  14. 6.~光标上一行首  
  15.   Enter下一行首  
  16. 7.[n]G。指定行,500G,到500行  
  17.   gg 跳到文章开头  
  18.   shift+g 跳到文章末尾  
  19. 8.Ctrl-E内容整体上移一行  
  20.   Ctrl-Y内容整体下移一行  
  21. 9.(){} 完整句子句首,完整句子句尾,完整段落首位置,完整段落尾位置  
  22. 插入,记下a,i,使用跳转也行:  
  23. a,光标之后插数据  
  24. A,光标行尾插数据(即shift+a)  
  25. i,光标之前插数据  
  26. I, 光标行首插数据(即shift+I)  
  27. o.所在行之后  
  28. O,所在行之前(即shift+o)  
  29.   
  30. 修改替换,记了C或者R,其他也能使用跳转  
  31. shift+c 替换从光标开始的字符  
  32. cw 替换单字  
  33. [n]cc 替换行,n行,n>=1  
  34. [n]s  
  35. shift+s  
[plain] view plain copy
  1. r替换一个  
  2. R替换多个  
  3. ~转换大小写  
  4. 撤消  
  5. u撤消先前执行的  
  6. U撤消全部  
  7. 删除,记个x,不停的按就行了  
  8. [n]x删除当前单个字符  
  9. [n]X删除前一个字符  
  10. dw  
  11. [n]dd 删除N行  
  12. D删除行尾  
  13. 复制删除粘贴  
  14. yy,Y复制  
  15. p光标行下  
  16. shift+P光标行上面  
[plain] view plain copy
  1. EX命令,上面的大都是快捷键,下面的大都是命令。  
  2. 多行复制:  
  3. :line#1, line#2 co line#3 从某行#1开始到某行#2结束内容复制到某行#3之后  
  4. .当前行,$文件结尾  
  5. 移动:  
  6. :line#1, line#2 m line#3 从某行#1开始到某行#2结束内容复制到某行#3之后  
  7. 删除:  
  8. :line#1, line#2 d  
  9. 查找:  
  10. :str 正向查找  
  11. :?str 反向查找  
  12. n 或者 /从当前位置开始检索下一个,相当于F3  
  13. shift+n 或者 ?从当前位置开始反向检索下一个,相当于shift+F3  
  14. :/pat/+n 光标移到pat所在行之后第n行  
  15. :/pat?+n 光标移到pat所在行之前第n行  
  16. 模式检索:  
  17. :/^search 只检索行首位置  
  18. :/serch$ 只检索行尾  
  19. :/\<search\>   
  20. 支持通配符.*,[a-z],[dm]  
  21. 替换字符串:  
  22. :[g]/search-staring/s//replace-string/[g][c]  
  23. 如:g/BankA/s//BankB/g  
  24. 如果需要手动确认,加个C:  
  25. g/BankA/s//BankB/gc  
  26. 编辑多个文件:  
  27. vim file1 file2  
  28. 合并文件:  
  29. :line# r filename 把读取的文件插入当前光标位置  
  30. 删除特殊字符:  
  31. 1,$ s/^M//  
  32. VIM里运行shell命令:  
  33. :!command  
  34. !!command  
  35. :sh  
  36. 如:!adb devices  
  37. !!adb devices  
  38.   
  39. 保存文件退出  
  40. :w  写入不退出  
  41. :w! 强制写入  
  42. :wq  写入退出  
  43. :wq! 写入强制退出  
  44. ZZ 写入退出,使用shift+两次ZZ  
  45. :q  退出  
  46. :q! 强制退出  

这个掌握之后,需要研究一下插件和vimrc文件编写,这些可以参考《手把手教你把 Vim 改装成一个 IDE 编程环境》

你可能感兴趣的:(android开发之VIM快捷键使用指南)