当前位置:操作系统 > 安卓/Android >>

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] 
跳转,区分大小写,加shift的是大写: 
1,上下左右箭头 hkjl上下左右移一个字符 
  退格,左移一字符 
  空格,右移一个字符 
2.Ctrl-f往下滚动一屏 
  Ctrl-b往上滚动一屏 
3.Ctrl-U往上滚动半屏 
  Ctrl-D往下滚动半屏 
4.Shift+h顶部第一行字符起始,也即大写H 
  Shift+m中间 
  shift+l底部最后一行起始 
5.^,0当前行起始 
  $,当前行尾 
6.~光标上一行首 
  Enter下一行首 
7.[n]G。指定行,500G,到500行 
  gg 跳到文章开头 
  shift+g 跳到文章末尾 
8.Ctrl-E内容整体上移一行 
  Ctrl-Y内容整体下移一行 
9.(){} 完整句子句首,完整句子句尾,完整段落首位置,完整段落尾位置 
插入,记下a,i,使用跳转也行: 
a,光标之后插数据 
A,光标行尾插数据(即shift+a) 
i,光标之前插数据 
I, 光标行首插数据(即shift+I) 
o.所在行之后 
O,所在行之前(即shift+o) 
 
修改替换,记了C或者R,其他也能使用跳转 
shift+c 替换从光标开始的字符 
cw 替换单字 
[n]cc 替换行,n行,n>=1 
[n]s 
shift+s 
[plain] 

r替换一个 
R替换多个 
~转换大小写 
撤消 www.zzzyk.com
u撤消先前执行的 
U撤消全部 
删除,记个x,不停的按就行了 
[n]x删除当前单个字符 
[n]X删除前一个字符 
dw 
[n]dd 删除N行 
D删除行尾 
复制删除粘贴 
yy,Y复制 
p光标行下 
shift+P光标行上面 
[plain] 

EX命令,上面的大都是快捷键,下面的大都是命令。 
多行复制: 
:line#1, line#2 co line#3 从某行#1开始到某行#2结束内容复制到某行#3之后 
.当前行,$文件结尾 
移动: 
:line#1, line#2 m line#3 从某行#1开始到某行#2结束内容复制到某行#3之后 
删除: 
:line#1, line#2 d 
查找: 
:str 正向查找 
:?str 反向查找 
n 或者 /从当前位置开始检索下一个,相当于F3 
shift+n 或者 ?从当前位置开始反向检索下一个,相当于shift+F3 
:/pat/+n 光标移到pat所在行之后第n行 
:/pat?+n 光标移到pat所在行之前第n行 
模式检索: 
:/^search 只检索行首位置 
:/serch$ 只检索行尾 
:/\<search\>  
支持通配符.*,[a-z],[dm] 
替换字符串: 
:[g]/search-staring/s//replace-string/[g][c] 
如:g/BankA/s//BankB/g 
如果需要手动确认,加个C: 
g/BankA/s//BankB/gc 
编辑多个文件: 
vim file1 file2 
合并文件: 
:line# r filename 把读取的文件插入当前光标位置 
删除特殊字符: 
1,$ s/^M// 
VIM里运行shell命令: 
:!command 
!!command 
:sh 
如:!adb devices 
!!adb devices 
 
保存文件退出 
:w  写入不退出 
:w! 强制写入 
:wq  写入退出 
:wq! 写入强制退出 
ZZ 写入退出,使用shift+两次ZZ 
:q  退出 
:q! 强制退出 


摘自 zungyiu
 

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,