eclipse全面提速

你是否经常在等待eclipse的一些操作完成?

eclipse loading
eclipse loading

如果你看到这里,说明答案是yes。如果你苦于eclipse中响应很慢的功能,并且想给eclipse提速让开发更舒服些,就请看看下面的内容。

注意:可能一般人都建议加大内存。如果可以,你可以买个cpu好点的机器。弄个SSD让你的文件操作更快。我们假设你买不起这些,你所能做的就是启动eclipse实例,所有ubuntu的设置都是基于eclipse 4.3.0版本,build id:I20121031-2000,当然其他平台的版本的设置都差不多。

Eclipse优化

插件

当我第一次找到强大的插件时,我非常高兴。我安装的越来越多后,eclipse就用起来不舒服了。所以你可以从众多的插件中禁用一些不常用的插件,禁用不代表删除,你仍然可以启用他们。

 

禁用不常用的eclipse启动插件
禁用不常用的eclipse启动插件

一些插件可能在尝试体验时用一用,但是后来可能在也不用了,这种情况可以把它删掉。

卸载eclipse插件
卸载eclipse插件

eclipse.ini

下面的优化都需要修改eclipse所在目录下的eclipse.ini文件。

  • 给eclipse执行jvm。它可以让你使用自己的jdk,而不是系统环境变量所指定的jdk
  • 使用最新的jdk来运行eclipse。使用最新的jdk要好很多。
  • 使用sun的jdk来运行ecipse。原因同上。
  • 配置jvm虚拟机的启动参数。你可以自定义虚拟机参数,如果你觉得他们更合适(虚拟机参数介绍)。我使用下面的启动参数来增加堆的大小至768Mb,perm区设置为256Mb(内存总大小为3Gb)

你可以添加-Xverify:none参数来跳过jvm对class文件的校验,以此提升eclipse的启动速度,但这是很不安全的。

你还可以通过测试不同的垃圾回收器策略、server参数来测试eclipse的性能差异。以下为实验过程中使用的部分参数:

可以在这里查看所有的eclipse运行时参数,选择适合你的参数。

禁用动画

动画很酷,但如果可以的话,我总是在所有的工具中禁用动画。所以classic主题是我最常用的主题。

设置eclipse主题
设置eclipse主题

禁用label decoration

label decoration是项目、文件、类层级上的小图标,它可以有益于显性化文件的状态。比如:文件是否已经提交到git。很多插件都提供了这个功能,但很少有用。你可以仅留下你想要的,其他的禁用。

设置label decoration
设置label decoration

自动补全

有时在性能较差的机器上,或者当你有很多类的时,自动补全功能性能就会很差。一个很小的优化是减少自动补全的proposal。我仅保留了Java Proposals和Template Proposals:

eclipse Content Assist,eclipse自动补全设置
eclipse Content Assist,eclipse自动补全设置

取消验证器

如果你对自己的技术很自信,就可以暂停所有的校验器。就算出现问题,你也可以靠自己的能力定位问题,节省了你的开发时间。

取消eclipse校验器
取消eclipse校验器

关闭不相关的工程

如果你仅开发部分eclipse中的工程,那你最好把其他功能关闭掉。他们不会出现在eclipse索引中。你可以在workspace中手动关闭不相关的工程(Close unrelated projects)。但我推荐使用Working Set,你可以添加多个工程到一个Working Set中,这样就可以快速的在Working Set件切换。

关闭编辑器中不用的tab

编辑中太多的tab会导致eclipse性能下降,可以这样控制下tab的个数:

勾选 Close editors automatically 并设置 Number of opened tabs 为10。

控制eclipse编辑器中tab的个数
控制eclipse编辑器中tab的个数

禁用拼写检查

你还是个程序员吗?我觉得没有任何理由需要拼写检查功能。取消这个功能吧:

禁用auto build

如果你在意什么时候build你的工程,可以这样设置:

快捷键

仁者见仁,智者见智。就算你用超快的IDE功能,但如果你要花10个动作才能实现一个操作,那你的开发过程就不算快。把你最常用的动作配置成快捷键,并记住他们,几周的使用后,你的开发效率将由显著提升。

为了逼着自己使用所有的快捷键,我直接把工具栏给禁用了。

参考链接

 

本文译自:http://mishadoff.com/blog/eclipse-speedup/

 

精品工具收集(一)

精品工具收集(一)
精品工具收集(一)

收集了一些平时开发工作中好用的软件,我一直在用的,帮助我提升效率。现在分享给大家:

  1. 免费好用的数据库的客户端:heidisql:http://www.heidisql.com/download.php,免费而小巧
  2. 免费好用的SSH客户端:xshell:http://rj.baidu.com/soft/detail/15201.html?ald,免费的哦
  3. xshell经典配色方案:http://blog.csdn.net/loveaborn/article/details/10012103,用了这个配色,你再也不想用putty和securityCRT了
  4. 知识管理软件(记事本软件):为知(Wiz):http://www.wiz.cn/,支持web、PC、pad、iphone、android,方便的管理自己的知识,最大的亮点是支持超过3层的文件夹,复制粘贴网页和代码样式保持的很好,比印象笔记、有道笔记、麦库、mybase等都强很多的,不信你试试。
  5. 最简单小巧好用的编辑器:notepad++:http://rj.baidu.com/soft/detail/13478.html?ald,启动和打开速度比sublime、ultraEdit都快不少,作为临时编辑的软件非常方便,插件也有一些哦,我之前写过两篇文章介绍notepad++的:《notepad++的好用快捷键整理》,《只要工具用得好,没有效率提不高
  6. windows下的命令行工具:powercmd:http://www.powercmd.com/,比dos好用太多了,你就像编辑notepad一样敲命令,同时还支持自定义快捷指令
  7. 文件、文件夹名称快速搜索软件:everything:http://rj.baidu.com/soft/detail/17239.html?ald,这款软件的大小之小,速度之快,简直令人瞠目结舌。它可以在几十秒的时间里就可以把你硬盘里面的所有文件的索引建立好,然后你可以使用它来查找任何文件和文件夹,查找不费时间,太好用了。
  8. 帮你找到你的文件被哪个程序占据了:unlocker:http://rj.baidu.com/soft/detail/12918.html?ald,经常删除文件,发现删除不了,windows又不告诉你到底是被哪个程序占用了,这个软件只需要在文件上右键一下就可以找到被那个软件占用了,还可以强制解绑。
  9. 遨游浏览器:http://www.maxthon.cn/,用过各种浏览器,以前最好用的是世界之窗,后来世界之窗被360收购后,就不再更新了。后来发现现在的遨游已经学会了世界之窗当初精髓,可以把浏览器做的如此的极致,你可以把界面自定义成很精简的样子,浏览器打开和运行的速度都非常不错。他的书签是最亮的地方,也有手机版\linux版的,支持开发者工具,可用于前端开发,很多功能需要你去发现,我现在一直在用遨游。

 

这里只是抛砖引玉,如果你也有不错的软件,请评论添加。

 

 

eclipse中文乱码问题解决方案汇总

eclipse中文乱码都是因为字符编码与默认的编码不符合导致的,有很多的方法可以解决,不需要安装任何插件就可以搞定。针对不同的情况,需要使用不同的方案,下面就针对一些案例讲解如何解决乱码问题。解决乱码问题的主要思路是设置正确合适的编码,如果不知道目标文件原本的编码,可以进行一定的尝试,通常尝试下GBK和UTF-8这两个编码即可。

1. 设置单个文件的字符编码,解决单个文件的乱码问题

有时候不小心copy来的单个文件编码与你workspace的默认编码不一致,就导致了单个乱码。解决办法:在Pakcage Explorer或者Project Explorer视图里面,右键点击该文件–>选择“Properties”–>”Text file encoding”–>给”Other”项设置相应的编码。(需要注意的是,如果copy来的文件在eclipse中显示的是正常,但是编码与其他文件不一致,若你想统一编码,就需要在设置编码前,记得先把文件内容copy一下,然后设置好编码,再把copy的内容粘贴到编码修改后的文件中,这样会不乱码;一修改编码文件内容就会乱码),如下图:

eclipse设置单个文件的字符编码
eclipse设置单个文件的字符编码

2. 设置第三方jar包的字符编码,解决整个jar的乱码问题

第三方jar包的编码问题可能是最常见的问题,其解决方案与单个文件的比较类似,在Pakcage Explorer或者Project Explorer视图里面,右键第三方jar包–>选择“Properties”–>给”Encoding”项设置相应的编码,如下图:

在eclipse中给jar包设置字符编码
在eclipse中给jar包设置字符编码

3. 分别设置不同类型文件的字符编码

有时候为了统一所有工程的编码,可能需要提前设置好各类型文件的字符编码,比如:把所有的jar类都设置为GBK编码,把所有的xml设置为UTF-8编码等。这时候就需要有针对性的给不同类型的文件设置不同的编码。步骤是这样的:Windows–>Perferences–>General–>Content Types–>选择文件类型–>设置“Default encoding”项。如图下:

在eclipse中给指定类型的文件设置字符编码
在eclipse中给指定类型的文件设置字符编码

4. 设置整个workspace的文本文件的默认字符编码

往往workspace都有一个默认的字符编码,如果你的工程大部分或者全部是另一个编码,那么你可以重新设置一个默认的字符编码,后续新建工程就不需要再去设置编码了。步骤是这样的:Windows–>Perferences–>General–>Workspace–>Test file encoding–>给“Other:”设置相应的编码,如下图:

在eclipse中设置workspace的字符编码
在eclipse中设置workspace的字符编码

个人经验

其实一般开源的代码都是UTF-8编码的,我们平时开发的时候最好也都统一使用UTF-8,在开发初期直接把workspace的文本文件的编码设置为UTF-8,这比较省事。在开发过程中,如果发现添加进来的三方jar包编码不是UTF-8,那么可以针对这个jar设置其编码;若copy某个源码文件到工程中发现是乱码的,那么可以仅设置这一个文件的编码成正确的编码。

只要工具用得好,没有效率提不高

notepad++就像瑞士军刀,简单好用,功能多
notepad++就像瑞士军刀,简单好用,功能多

只要工具用得好,没有效率提不高。现在工具一大堆,各有所用,但是按照2/8原则,大家其实大多时候只用到了其中的20%的功能,如果能多用几个功能,同时结合多个工具一起配置,则能达到1+1>2的效果。

昨天碰到一个事,一个同学需要统计最近一段时间的团队经费最后的余额,由于当初记录每笔支出和收入的时候,只用记事本随便记了一下时间、金额以及少许备注,大致有一点格式:

面对这些记录你想统计最后余额,会用什么办法?可能大部分人会老老实实的一个个的加减吧。

其实日常比较简单的统计软件比如excel,但是excel需要比较规整的格式,上面的这个数据就不能直接复制到excel来求和的。不过上面的数据还是有规律可循的,比如所有金额前面都有冒号;所有金额后面要么是空格,要么是元字;支出和收入有区分。这样一来就可以巧用notepad++的替换功能来简单的编辑一下,让其符合excel的要求。操作如下:

1. 把金额数字区分出来,使用notepad++的替换功能,把所有的”:”全部替换成“:\t\t”,然后把所有的单一空格替换成“\t\t”,这样做主要是为了把我想要的金额提取出来,注意替换时要选择“扩展”(后续的替换功能都需要选中这一项),如下图所示:

巧用notepad++的替换功能
巧用notepad++的替换功能

替换后效果如下:

2. 由于支出的金额在统计时应该用负数表示,所以需要把支出的金额前面添加负号,操作为:把“支出:\t\t”替换为“   :\t\t-”,这样就变成了下面的样子:

3. 使用notepad++一个很实用的列选择功能,来把金额所在列抠出来,即按住ALT键后,选择金额这一列即可,然后复制到另一个新打开的notepad++标签中,继续编辑,看到的效果如下:(当然其中有一点不太规整的地方可以手动调整一下,比如,里面有一行中有两个金额相加,可以调整为两行)

4. 现在的数据除了元,其他都是金额了,现在需要把元子去掉,把多余的换行也去掉,操作如下:把“元”替换为空字符串“”,然后把连续的两个换行“\r\n\r\n”换成一个换行”\r\n”(如果一次换行不能达到效果,就再替换一次)。得到如下的效果:

5. 现在数据,就很清晰了,这个数据,就可以直接粘贴到excel里面,使用其各种统计功能了,比如:求和。

从这个例子中可以看到,只要原始数据本身有规律,基本都可以使用notepad++的替换和列选择功能来达到抠数据的目的,甚至可以达到一些更复杂的目的。若要写程序恐怕不是一会儿的事吧。

一点心得,我经常用替换和列选择功能来做一些数据量不太大的文本抽取,有时碰到的情况是,需要把一行有规律的字符串中的某些字段抠出来,常用的做法是先把字段前面的标记替换成“\r\n\t\t\t”,然后把字段后面的标记替换成“\t\t\t”,这样就又可以使用列选择功能直接抠出这一列字段了。另外有时间字段前后的标记不统一,这时候就可以考虑更高级的“正则表达式”替换功能。巧用notepad++事半功倍,当然notepad++有这些有意思的功能,相信很多其他的编辑器也有类似的功能可以用,在此抛砖引玉。。。

notepad++的好用快捷键整理

notepad++是很流行的文本编辑器,它是我平时除了eclipse之外用得最多的编辑器,其快捷键很多,可能很少有人去关注它的快捷键,为了提高效率,特整理了notepad++的好用快捷键。

1. 文档切换

  • ctrl+tab 向右切换文档(当然在文档列表菜单弹出来时,可以用鼠标进行快速选择)
  • ctrl+shift+tab 同上,只是切换方向是向左的
  • 在任意文档中按下鼠标右键(按下后不松开),然后滚动鼠标滚轮,则可以快速选择文档
notepad++文档切换
notepad++文档切换

 

2. 关闭文档:ctrl+w

3. 查找和替换

  • ctrl+f 打开查找对话框(大家都知道)
  • ctrl+h 打开替换和查找对话框
  • ctrl+F3 找下一个选定的字符串(这个比ctrl+f好用很多)
  • ctrl+shift+F3 快速找上一个选定的字符串

4. 文本选择:

  • 按列选择文本区块:按住alt,然后点击鼠标并拖动,即可看到效果
notepad++中案列选择文本
notepad++中案列选择文本
  • 文本多选:按住ctrl后可以选择多个文本,选择如果编辑,即是对多处同时进行编辑(该功能需要在设置–>首选项–>编辑–>多列编辑中勾选上“启动(Ctrl+Mouse click/selection)”,这个功能默认是没有启用的)
notepad++中文本多选
notepad++中文本多选

5. 联想功能

  • ctrl+回车键 单词联想,只要你的当前文档中出现过就可以联想
  • ctrl+空格键 函数名联想(由于一般与搜狗拼音的快捷键冲突,所以会失效)
  • ctrl+shift+空格键 函数参数联想

6. 列编辑模式

列编辑模式是很有用的,他是利用了列选择文本区块功能,在选了一个列区块后,可以直接敲键盘写入你想写的东西,这样你所选的这一列的每行都添加了你敲入的字符,且每行添加的都一样。

但有一种场景,你可能希望在每行前面添加递增的数字,这需要你在进行了列选择后,进行按alt+c,然后设置插入数字的规则即可。

notepad++列编辑之给每行添加递增数字
notepad++列编辑之给每行添加递增数字

7. 编辑

  • ctrl+d 重复当前行(和eclipse中的删除当前行不同)
  • ctrl+L 删除当前行(记住咯)
  • ctrl+t 把当前行和上一行互换,但光标的位置不变
  • ctrl+shift+↑ 把当前行上移
  • ctrl+shift+↓ 把当前行下移
  • ctrl+g 弹出窗口,跳转到指定的行
  • ctrl+Q 添加或删除行注释(可以是多行)
  • ctrl+shift+Q 添加多行注释
  • ctrl+backspace 删除上一个单词或者符号
  • ctrl+delete 删除下一个单词或者符号
  • ctrl+shift+backspace 删除当前行的开头到光标处的所有字符
  • ctrl+shift+delete 删除光标处到当前行末尾的所有字符
  • ctrl+u 把所有已选择的字母转为小写字母
  • ctrl+shift+u 把所有已选择的字母转为大写字母
  • tab 缩进
  • shift+tab 反向缩进

8. 字体大小

ctrl+滚轮 选择一个文档后,试了就知道了

9. 代码块收起与展开

notepad++代码块收起与展开
notepad++代码块收起与展开

大家都知道点了展开可以把当前节点展开,点了收起可以把当前节点收起。但是有个比较有意思的功能是:如果你在点展示或者收起前,按住ctrl的话,会使该节点下的所有子节点也都收起或者展开,这个比较实用和高效。

  • ctrl+alt+f 收起当前节点级别的代码块(不影响子节点)
  • ctrl+shif+alt+f 展开当前及诶单级别的代码块(不影响子节点)
  • alt+0 收起所有节点代码块
  • alt+shift+0 展开所有节点代码块
  • alt+(1~8) 收起1~8级的节点代码块
  • alt+shift+(1~8) 展开1~8级的节点代码块

10. 多视图

点住一个tab不放,拖动到文档中间,然后松开即可看到打开新视图的菜单了(移动视图和复制视图,复制视图可以在两个视图中同时编辑同一个文件),很方便,两个视图之间也可以很方便的拖来拖去。

11. 快捷键定制

如果你觉得默认的快捷键不合适,或者某些常用的编辑或者其他操作功能没有快捷键的话,可以在“设置–>管理快捷键…”里面可以自定义快捷键。如下图所示:

notepad++快捷键定制
notepad++快捷键定制

 

如何让eclipse启动更快

通常eclipse会默认启动一些服务,其实提前启动这些的服务对我来说根本没有用,他们都是可以在需要使用的时候自动启动的,完全没必要提前启动,去掉这些服务对开发一点影响都没有,反而可以提升启动速度,节省一点内存。

在Window –> Preferences –> General –> Startup and Shutdown里面可以看到默认启动的服务有如下这些:

根据需要去掉eclipse startup设置中的服务可以大大提升eclipse启动速度
根据需要去掉eclipse startup设置中的服务可以大大提升eclipse启动速度
  • Marketplace Client:在需要安装插件的时候,会自动启动
  • Equinox Provisioning Platform Automatic Update Support:更新eclipse的,没发现这个有啥用
  • mylyn:用于任务管理,如果你没用到这个,就可以去掉
  • WindowBuilder Discovery UI:对用Java做windows gui开发的同学有用,如果你只做web开发,就果断去掉吧。
  • subclipse usage reporting:可以去掉,不影响subclipse的功能

根据自己的需要去掉一些服务,全部去掉也是ok的,然后重启eclipse感受下速度吧。

eclipse中文字体大小修改,让中英文字体协调

貌似有不少人苦恼eclipse中文字体大小修改问题,默认的eclipse中文字体很小,和英文字体大小完全不在一个调子上,因为默认的eclipse juno中英文字体是Consolas,字体大小是10,但是大家会发现,如果代码中有中文,那中文的字体会比英文的字体小很多,如下图:

默认的eclipse juno的中英文字体效果——eclipse中文字体大小修改
明显的,默认的eclipse juno中英文字体比中文字体大很多,显得中文很模糊——eclipse中文字体大小修改

如果大家把字体调大到中文字体看起来正常的话,那么英文字体就太大了,显得很不协调。网上也有一些方案,但是我觉得明显过于复杂,其实有很简单的办法,一步就可以搞定的。步骤如下:Window –> Preferences –> General –> Appearance –> Colors and Fonts,在“Colors and Fonts”中选择“Basic”–>”Text Font”,然后点“Edit”,此时只需要把“大小”里面的值编辑成“小五”即可。当你填入“小五”后,你会看到“大小”那一栏的下拉框中都变成了宋体的字体大小了,当然你也可以选择“五号”、“小四”、“四号”等等其他更大的字体。如下图:

把eclipse的字体大小设置成“小五”就可以把中文字体调大了
把eclipse的字体大小设置成“小五”就可以把中文字体调大了

然后点“确定”,再点“Apply”,“OK”,你就可以看到eclipse中文字体变大了,英文字体和大小不变(因为宋体的小五的英文字体大小正好和英文的10是相等的)。你可以通过把大小设置成宋体大小的更大值来同时调整中文英文的大小,这种设置方法可以让中英文字体协调美观。调整后的效果如下图:

eclipse的字体大小修改成小五后中英文字体明显协调多了
eclipse的字体大小修改成小五后中英文字体明显协调多了

相信这个方法应该比网上的其他修改eclipse中文字体的方法来得更直接更简单吧。

eclipse界面定制,让eclipse看着更清爽

eclipse界面定制其实很简单,可定制的部分包括主题、皮肤、菜单栏、工具栏,你只需要设置一下就能把eclipse设计成你满意的效果,让eclipse看着更清爽,下面介绍下如何把最新的eclipse(Juno或者Kepler)很丑的界面,定制成大家都喜欢经典的eclpse主题界面,并精简工具栏,让你拥有最大的开发视图空间。

更换eclipse的主题(皮肤)——eclipse界面定制

估计很多人带着喜悦的心情下载了最新的eclipse,解压启动后就是失望了,最新的eclipse界面长啥样,看下图:

eclipse juno默认界面完全颠覆了我们心中经典的eclipse形象
eclipse juno默认界面完全颠覆了我们心中经典的eclipse形象

要是每天面对的这样的界面,我怕哪天会忍不住把屏幕打破。后来发现原来eclipse的主题是可以换回原来的经典主题的,步骤是:菜单栏Window–>Preferences–>General–>Appearance,在Appearance的Theme项中选择Classic,点OK,再重启eclipse即可看到你心目中经典的eclipse界面:

在eclipse juno中使用的经典主题后,界面果然熟悉了很多
换成classic主题后,界面果然熟悉了很多

自己定制eclipse的工具栏和菜单栏——eclipse界面定制

可能大家发现上图中我的工具栏只有一行,显得比较精简、干脆。刚下载的eclipse可没这么整齐,要整齐点就需要定制,好在eclipse给了这个定制的功能:菜单栏Window–>Customize Perspective,选择Customize Perspective后,打开的界面如下:

在这里可以定制菜单栏和工具栏,可以把不常用的工具和菜单去掉,节省空间,最好是把工具栏缩减到只有一行——eclipse界面定制
在这里可以定制菜单栏和工具栏,可以把不常用的工具和菜单去掉,节省空间,最好是把工具栏缩减到只有一行——eclipse界面定制

你可以根据自己的需要定制菜单栏和工具栏,其中“Tool Bar Visibility”可以定制工具栏,工具栏的每一条还可以上下左右拖动,“Menu Visibility”可以定制菜单栏,让那个你的eclipse界面由你做主,happy的coding吧。

eclipse最有用快捷键整理

在网上搜eclipse快捷键,可以搜出一大堆,大多罗列了n多的快捷键,估计大部分人看了以后都会头大的,我也头大,不过我一一尝试了一遍,整理出了eclipse最常用最有用,写代码必须用到的一些快捷键,大约只有网上快捷键大全的一半,减少大家的记忆量。如果大家把这些快捷键都很好的运用,写代码的效率一定会有提高。当然你也可以通过菜单栏中Window–>Preferences–>General–>Keys来查看和修改快捷键绑定。

编辑

Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+M 添加类的import导入
Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)
Ctrl+Y 重做(与撤销Ctrl+Z相反)
Alt+/ 内容辅助(帮你省了多少次键盘敲打,太常用了)
Ctrl+D 删除当前行或者多行
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Ctrl+/ 注释当前行,再按则取消注释

选择

Alt+Shift+↑ 选择封装元素
Alt+Shift+← 选择上一个元素
Alt+Shift+→ 选择下一个元素
Shift+← 从光标处开始往左选择字符
Shift+→ 从光标处开始往右选择字符
Ctrl+Shift+← 选中光标左边的单词
Ctrl+Shift+→ 选中光标又边的单词

移动

Ctrl+← 光标移到左边单词的开头,相当于vim的b
Ctrl+→ 光标移到右边单词的末尾,相当于vim的e

搜索

Ctrl+K 参照选中的Word快速定位到下一个(如果没有选中word,则搜索上一次使用搜索的word)
Ctrl+Shift+K 参照选中的Word快速定位到上一个
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在状态栏中显示没有找到了,查一个单词时,特别实用,要退出这个模式,按escape建)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+U 列出所有包含字符串的行
Ctrl+H 打开搜索对话框
Ctrl+G 工作区中的声明
Ctrl+Shift+G 工作区中的引用

导航

Ctrl+Shift+T 搜索类(包括工程和关联的第三jar包)
Ctrl+Shift+R 搜索工程中的文件
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
F4 打开类型层次结构
F3 跳转到声明处
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Ctrl+PageUp/PageDown 在编辑器中,切换已经打开的文件

调试

F5 单步跳入
F6 单步跳过
F7 单步返回
F8 继续
Ctrl+Shift+D 显示变量的值
Ctrl+Shift+B 在当前行设置或者去掉断点
Ctrl+R 运行至行(超好用,可以节省好多的断点)

重构

(一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名方法名、属性或者变量名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 把一段函数内的代码抽取成方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)

其他

Alt+Enter 显示当前选择资源的属性,windows下的查看文件的属性就是这个快捷键,通常用来查看文件在windows中的实际路径
Ctrl+↑ 文本编辑器 上滚行
Ctrl+↓ 文本编辑器 下滚行
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+O 快速显示 OutLine(不开Outline窗口的同学,这个快捷键是必不可少的)
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer(windows下关闭打开的对话框也是这个,还有qq、旺旺、浏览器等都是)
Ctrl+L 文本编辑器 转至行
F2 显示工具提示描述

Reference:

Eclipse快捷键指南

常用vim命令

这是一个vim命令操的基础教程,如下的命令是比较常用的命令,几乎都需要记住。所以想高效的写代码也是需要付出一定的代价的。

用vim打开文件

vi filename 打开或新建文件,并将光标置于第一行首
vi +n filename 打开文件,并将光标置于第n行首
vi + filename 打开文件,并将光标置于最后一行首
vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename 打开多个文件,依次进行编辑

vim中的选项

:set all 打印所有选项
:set nooption 关闭option选项
:set nu 每行前打印行号
:set showmode 显示是输入模式还是替换模式
:set noic 查找时忽略大小写
:set list 显示制表符(^I)和行尾符号
:set ts=8 为文本输入设置tab stops
:set window=n 设置文本窗口显示n行

插入文本类命令 模式切换

: 进入末行模式
ESC 进入命令模式
i 进入编辑模式,在光标前
I 在当前行首
a 光标后
A 在当前行尾
o 在当前行之下新开一行
O 在当前行之上新开一行

移动光标

h、j、k、l 分别控制光标左、下、上、右移一格。
Ctrl+b 屏幕往后移动一页。[常用]
Ctrl+f 屏幕往前移动一页。[常用]
Ctrl+u 屏幕往后移动半页。
Ctrl+d 屏幕往前移动半页。
0 (数字零):移动文章的开头。[常用]
L 移到屏幕的最后一行
M 移到屏幕的中间一行
H 移到屏幕的第一行
G 移动到文章的最后。[常用]
w 光标跳到下个word的开头。[常用]
W 移到下一个字的开头,忽略标点符号
e 光标跳到下个word的字尾。
E 移到下一个字的结尾,忽略标点符号
b 光标回到上个word的开头。按 $:移到光标所在行的行尾。[常用]
B 移到前一个字的开头,忽略标点符号
^ 移到该行第一个非空白的字符。按 0:移到该行的开头位置。[常用]
$ 移到当前行的最后一个字符
+或return 移到下一行的第一个字符
– 移到前一行的第一个非空字符
( 移到句子的开头
) 移到句子的结尾
{ 移到段落的开头
} 移到下一个段落的开头
# 移到该行的第#个位置,例:51、121。[常用]
删除文字
x 每按一次删除光标所在位置的后面一个字符。[超常用]
#x 例如,6x 表删除光标所在位置的后面6个字符。[常用]
X 大字的X,每按一次删除光标所在位置的前面一个字符。
#X 例如,20X 表删除光标所在位置的前面20个字符。
dw 删除光标到本行该单词末尾以及末尾的所有空格。
ndw 从当前光标处往后删除n个字
d$ 删除当前光标至本行的末尾
dd 删除光标所在行。[超常用]
#dd 例如,6dd表删除从光标所在的该行往下数6行之文字。[常用]
db 删除光标前面的字
ndb 从当前行开始往前删除n字
:n1,n2 d 将n1行到n2行之间的内容删除
:n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下

缩进

:set ai 打开自动缩进
:set sw=n 将移动宽度设置为n个字符
n<< 使n行都向左移动一个宽度
n>> 使n行都向右移动一个宽度,例如3>>就将接下来的三行每行都向右移动一个移动宽度

复制 粘贴

yw 将光标所在处到字尾的字符复制到缓冲区中。(想在和#x、#X的功能相反)
p 将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)。
yy 复制光标所在行。[超常用]p:复制单行到您想粘贴之处。指令‘yy’与‘p’必须搭配使用
#yy 如:6yy表示拷贝从光标所在的该行往下数6行之文字。[常用]
ayy 将复制行放入buffer a, vi提供buffer功能,可将常用的数据存在buffer
ap 将放在buffer a的数据粘贴。
b3yy 将三行数据存入buffer b。
b3p 将存在buffer b的资料粘贴

替换单字符

r 取代光标所在处的字符:[常用]
R 取代字符直到按Esc为止。
cw 更改光标所在处的字到字尾处
c#w 例如,「c3w」表示更改3个字

撤销

u 假如您误操作一个指令,可以马上按u,回复到上一个操作。[超常用]
U 撤消当前行的所有修改

显示行号

:set nu

查找

/text 在文件中向前查找text
?text 在文件中向后查找text
n 在同一方向重复查找
N 在相反方向重复查找
:set ic 查找时忽略大小写
:set noic 查找时对大小写敏感
:s/oldtext/newtext 用newtext替换oldtext
:m,ns/oldtext/newtext 在m行通过n,用newtext替换oldtext
& 重复最后的:s命令
:g/text1/s/text2/text3 查找包含text1的行,用text3替换text2
:g/text/command 在所有包含text的行运行command所表示的命令
:v/text/command 在所有不包含text的行运行command所表示的命令

替换字符串

$s/string/replae/g 在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。%s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否取代。
1,20s/string/replace/g 将1至20行间的string替代为relpace字符串。

存文件 离开文件

:w 在命令行提示符号“:”前按w即可将文件存起来。[超常用]
:#,# w filename 如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice 将您正在编辑文章的第30~50行存成nice这个文件。
😡 保存当前文件并退出
:q 按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”
:qw 一般建议离开时,搭配w一起使用,如此离开时还可存文件。

vim中的shell转义命令

:!command 执行shell的command命令,如:!ls
:!! 执行前一个shell命令
:r!command 读取command命令的输入并插入,如:r!ls会先执行ls,然后读入内容
:w!command 将当前已编辑文件作为command命令的标准输入并执行command命令,如:w!grep all
:cd directory 将当前工作目录更改为directory所表示的目录
:sh 将启动一个子shell,使用^d(ctrl+d)返回vi
:so file 在shell程序file中读入和执行命令

vim多窗口功能

:new 打开一个新tab
:split 把当前的tab拆成上下两个tab,两个tab对应的同一个文件,在任何一个中进行修改,另一个也会同步变化
ctrl+w 按两次可在多个tab间切换
:res 30 把当前tab的高度设置为30行
vim窗口分割命令 http://www.phperblog.net/?p=472

vi和vim的高级进阶

Vim 实用技术,第 1 部分: 实用技巧
Vim 实用技术,第 2 部分: 常用插件
Vim 实用技术,第 3 部分: 定制 Vim
手把手教你把Vim改装成一个IDE编程环境(图文) 转载自吴垠的博客[http://blog.csdn.net/wooin]
vi/vim使用进阶 转载自Easwy的博客 [ http://easwy.com/blog/ ]