eclipse 关闭空格、等号自动补全功能(附带本人的另一种改法)

原文链接:http://hi.baidu.com/leejun_2005/item/ba970c5094e3ecacadc8576b


from:http://topic.csdn.net/u/20081125/13/167fcf52-64b3-43cd-a012-21db67282267.html

from:http://blog.anzhuozx.com/archives/10278.htm

from:http://blog.csdn.net/lanmutang/article/details/6552485

才开始自学Android开发..用上了Eclipse..但有些头疼的小问题不解决不行..

自动提示只有输入点号才出现.. 自动上屏很容易出错..现修改为输入所有字母/下划线和

点号都能出自动提示.并且只用TAB和回车上屏..

 

声明在前:本文所用方法均是网络转来..但是网络上说的都不是太细.我0基础.所以浪费了一点时间.

经过自己修改了一下..可以不用懂Eclipse就能跟着操作解决这些问题. 下面是正文:

 

=======================================================

 

增强Eclipse自动提示功能
=====================================
Eclipse中默认是输入"."后出现自动提示,用于类成员的自动提示,可是有时候我们希望它能在我们输入类的首字母后就出现自动提示,可以节省大量的输入时间(虽然按快捷键也会出现提示,但还是要多按一次按键,太麻烦了)。

    从Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我们可以在"."号后面加入我们需要自动提示的首字幕,比如"ahiz"。

    然后我们回到Eclipse的开发环境,输入"a",提示就出现了。

但是我们可以发现,这个Auto-Activation下的输入框里最多只能输入5个字母,也许是Eclipse的开发人员担心我们输入的太多会影响性能,但计算机的性能不用白不用,所以我们要打破这个限制。

在"."后面随便输入几个字符,比如"abij",然后回到开发环境,File -> export -> general -> preferences -> 选一个地方保存你的首选项,比如C:/a.epf

用任何文本编辑器打开a.epf,查找字符串“abij”,找到以后,替换成“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_. ”,总之就是你想怎样就怎样!!然后回到Eclipse,File -> import -> general -> preferences -> 导入刚才的a.epf文件。此时你会发现输入任何字母都可以得到自动提示了。

最后:自动提示弹出的时间最好改成100毫秒以下,这样会比较爽一点,不然你都完事了,自动提示才弹出来:),不过也要看机器性能。
======================================================
这样修改后提示快多了.但是Eclipse那恼人的上屏键太恶心了..连空格都是上屏..甚至字母本身也能上屏..这里就要修改的更人性化一点.只用TAB和回车上屏(大部分人的习惯).
======================================================

 


解决候选列表上屏键修改(用TAB和回车上屏,可自改)
首先,打开Eclipse,打开window->show view,选择Plug-ins,再找到org.eclipse.jface.text,右键单击,选择import as-> Source Project,导入完成后,在你的workspace就可以看到这个project了。
在导入工程下的“org.eclipse.jface.text.contentassist.CompletionProposalPopup#verifyKey()”函数中有一段代码

if (contains(triggers, key)) {

...

将这段代码改为

if (key!=0x20 && key!='=' && key!=';' && contains(triggers, key)) {

...

还有把这段代码之上的代码注释掉
case '/t':
e.doit= false;
fProposalShell.setFocus();
return false;
修改为
case '/t':
e.doit= false;
insertSelectedProposalWithMask(e.stateMask);
break;

经过上述操作,这个辅助输入插件已经排除了空格与“=”的选中功能,增加了TAB键的选中功能。

最后就是导出修改后的插件,右键点击你的workspace里的工程,选择Export->Deployable plugins and fragments,点击Next,选择Destination选项卡,选择Directory,选择一个要保存插件的目录,然后Finish。然后就会在你所选的目录下产生一个新的plugins目录,里面有一个jar文件,用它替换掉eclipse/plugins里面的org.eclipse.jface.text_3.6.1.r361_v20100825-0800.jar(这个文件不同版本的Eclipse,后面的版本号会不一样,我用的Eclipse 3.6),这样就大功告成了!


-------------------------------------------------------------------------

-------------------------------------------------------------------------

以上为本人看到的一个比较适合新手的很完整的教程,不过在他的基础上我还是有点补充:

1、前面自动弹出代码补全的设置,貌似现在已经可以直接把26个字母敲进去了……至少我的v3.7的Indigo和最新的Juno都没有“5个字符”的限制;

2、关于代码替换的部分,为org.eclipse.jface.text.contentassist包中的CompletionProposalPopup.java文件中的verifyKey()函数,在1300行左右,我的替换方法是将整个switch语句改成如下内容:

switch (key) {
            case 0x1B: // Esc
                e.doit= false;
            case ' ':
            case ';':
            case '=':
                hide();
                break;


            case '\n': // Ctrl-Enter on w2k
            case '\r': // Enter
            case '\t':
                e.doit= false;
                insertSelectedProposalWithMask(e.stateMask);
                break;
                
            default:
                ICompletionProposal p= getSelectedProposal();
                if (p instanceof ICompletionProposalExtension) {
                    ICompletionProposalExtension t= (ICompletionProposalExtension) p;
                    char[] triggers= t.getTriggerCharacters();
                    if (contains(triggers, key)) {
                        e.doit= false;
                        hide();
                        insertProposal(p, key, e.stateMask, fContentAssistSubjectControlAdapter.getSelectedRange().x);
                    }
            }
        }

3、更改完之后要重启eclispe



个人认为可能效率会略高一点吧……



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值