自定义eclipse快捷键

大家有木有发现,尽管eclipse的快捷键很多,但是仍然有很多常用操作没有快捷键,比如:跳过所有的断点、删除所有的断点等。但是后来才发现其实eclipse有很多操作可以有快捷键,但是默认没有提供,我们可以通过自定义eclipse快捷键的方式来满足自己的高效coding和debug的需求。

自定义快捷键意味着,可以添加可以添加的快捷键,同时也可以修改快捷键(如果你对某快捷键不爽的话)。

自定义eclipse快捷键的步骤

下面介绍下eclipse快捷键的配置方法,如下图所示:

自定义eclipse快捷键
自定义eclipse快捷键

在Windows–>Perferences–>General–>Keys里面可以设置所有eclipse的快捷键。打开可以看到只是部分的功能有快捷键,还有不少的功能没有快捷键,这些快捷键都可以自定义,比如要设置ctrl+shift+1为跳过所有断点,可以先在命令过滤文本框里面输入想要设置的命令或者操作的英文名称(这个需要意会了,比如调试相关的命令,可以输入“breakpoint”,就能找到,如果实在不知道叫啥,就拖动滚动条一个个的看吧),跳过所有断点肯定是和breakpoint有关,所以输入breakpoint,可以看到列表里面有了所有和断点相关的命令,选择“Skip All Breakpoint”,然后在“Binding”里面按下ctrl+shift+1,再在“When”里面选择“In Windows”即可。

快捷键的上下文(Context)

其中“When”是告诉你,你设置的快捷键的会在什么场景下可用,或者说上下文是什么,In windows表示所有窗口,该快捷键的命令都会执行。这个上下文的还有个继承的潜规则:

  • In Dialogs and Windows
  • In Windows (extends In Dialogs and Windows)
  • In Dialogs (extends In Dialogs and Windows)
  • Editing Text (extends In Windows)
  • Editing Java Source (extends Editing Text)
  • Debugging (extends In Windows)
  • Debugging Java (extends Debugging)

Schema

从上面的图片中可以看到快捷键设置中可以选择schema,默认的schema是Default,其实eclipse自带了emacs版的快捷键,喜欢emacs的同学可以使用这个schema。其中也有个潜规则,就是emacs schema继承了Default schema的快捷键,如果emacs的快捷键在Default中也有,那么emacs的快捷键优先级高,会覆盖Default的快捷键。

个人经验

想必不少人设置快捷键的时候担心会和其他快捷键冲突,所以不知道应该把某命令设置成什么快捷键。其实这个问题还好说,因为“Conflict”里面会告诉你你当前设置的快捷键和那些其他快捷键在什么场景上下文下冲突。经过我自己的测试,我发现一些的9个组合基本没有被eclipse使用到,大家可以放心设置自己的快捷键。即ctrl+shift+1~9,,希望能对大家提供参考。

Reference

eclipse的帮助文档快捷键章节:Help–>Workbench User Guide–>Reference–>Perferences–>Keys

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++快捷键定制

 

Goproxy代理-灵活的反向代理和静态资源代理

 

goproxy代理
goproxy代理

goproxy代理可以实时的让hosts文件的修改生效,而且对hosts文件的配置功能进行了增强,用起来会很有意思,(因为是用go语言写的,所以取名为goproxy)。先说说这个软件的来由:

做web开发的同学难免会碰到线上、线下、预发布、其他环境相互切换的场景,目前有两个方案:

  1. 方案一:直接在浏览器中把url中的域名改成指定环境的ip:port,回车直接访问。不过这个办法是有缺陷的,比如:你的web应用和样式都需要使用线下的环境时,你就不能通过修改浏览器的url来实现了,因为浏览器的url只能指定web应用的环境,html中的js和css还是使用的域名,当然,如果你不嫌麻烦,也可以修改web应用的源码来使js、css资源的域名改成ip:port。这个方式对于频繁切换环境的人来说无疑很痛苦。而且为了测试而修改了源码,在提交代码时,有会把测试代码提交到线上的风险。
  2. 方案二:在hosts文件中配置几套环境,用switchhosts软件来做几个环境的切换,配合firefox的dns flusher插件(点一下这个插件,可以让firefox立刻重新加载hosts文件),可以比较快速的切换环境。而且dns flusher可以实时查看当前的域名访问的ip是哪个。这个方案明显比第一个方案好很多。但是我使用这种方案很长时间,发现firefox打开页面的速度确实不如chrome,对于每天要刷新页面千百次的我,我甚至快忍受不了firefox的那么一点点慢。但是chrome有个致命的弱点,就是没有一个类似dns flusher的软件,让修改后的hosts文件立刻对浏览器生效。这导致喜欢chrome的同学,每次用hosts切换软件切换了域名绑定后,都只能把chrome关掉,然后重新打开,这样才能让修改后的hosts文件立即生效,好在chrome关闭和打开的速度很算过得去(firefox,估计想屎的心都有了)。

好吧,话归正题,我其实是想用chrome和switchhosts软件做到快速的切换环境,于是用golang开发了goproxy。(项目是开源的代码很简单,大家觉得比较麻烦的代码用golang两行就能搞定,详细使用文档请见项目主页:https://bitbucket.org/weager/goproxy)。

为什么要用代理?代理相当于是浏览器和最终的服务器之间的中转站,浏览器如果使用了代理,你就可以控制浏览器打开的所有页面的,既然chrome不能实时的读取hosts文件,那我可以让goproxy实时的读取hosts文件(其实是每次url访问经过goproxy时去检查一下hosts文件是否修改,修改了就reload一下)。这样每次需要切换环境只需要用switchhosts选择一套环境的hosts绑定,然后F5刷新chrome就可以了。其操作步骤比firefox+dns flusher+switchhosts还要少(dns flusher需要点击触发reload hosts文件)。

这只是一个基本的goproxy代理功能,其实goproxy还有更有意思的功能。下面来一一解读:

hosts文件中配置的映射一般都是把多个域名映射到一个ip上,如果把url前面的“http://”去掉的话,hosts里面的映射,其实就是前缀的替换,比如这个hosts配置:

127.0.0.1  www.1688.com

如果一个url去掉http://后为www.1688.com/index.html,那么映射后的url就为127.0.0.1/index.html。试想,如果我本地的环境端口号不是80,而是8080,怎么办?你能在hosts文件中配置成127.0.0.1:8080 www.1688.com吗?如果你用goproxy就可以这么配了。因为goproxy的原理就是一个前缀的替换,他的配置格式和hosts文件本身的格式非常类似,只是做了一点扩展。所以你可以这样配置:

127.0.0.1:8080  www.1688.com   search.china.alibaba.com   list.china.alibaba.com

127.0.0.1:8080/aaa/ddd   www.1688.com   search.china.alibaba.com/ccc   list.china.alibaba.com/bbb

(注意:路径的斜杠是向左的斜杠,不是windows里面的向右的斜杠。)

继续在url上做文章,上面的两行配置都是反向代理,那是不是也可以把静态资源给代理起来呢?goproxy也做到了,你甚至可以这样配置:

D:/workspace/work/style   style.china.alibaba.com/app/search

看到这个简单的配置,你会意识到你装的apache、varnish可以卸掉了吧

既然代理的功能可以自己定制,那功能应该可以再多一点,比如:对某个前缀的url添加或者删除参数。比如下面的配置:

127.0.0.1:8080    www.1688.com     +debug=true   +begin=2    -n=y  -version

110.20.30.41:8080    www.1688.com     +debug=true   +begin=2    -n=y  -version=2

第一行配置的意思是:如果一个url的前缀是“www.1688.com”,那么就给这个url的参数中添加debug=true和begin=2(如果已经有了begin=1,则会被覆盖成begin=2,debug参数也同理),并移除n=y和version参数(无论version的值是什么,被移除的参数在url中时才移除,不在url中则不作修改)

第二行配置与第一行配置的不同是,移除version参数的条件必须是version的值等于2。

这种些看起来很奇特的配置在hosts中显得很另类,好在现在的浏览器对这种他们看不懂的映射配置直接忽略,只读取他们认识的配置,所以你可以在hosts文件中配置正常的和不正常的配置,正常的配置对没有使用代理的浏览器依然有效,不正常的配置则不会影响浏览器的工作。

目前goproxy我自己一直在使用,用得很爽,也有其他人在用,评价是很轻量级,如果你偏爱goproxy的简单强大的配置功能,那么做web开发切换环境时,可以考虑试试goproxy。当然goproxy不仅仅用于chrome,任何浏览器都可以可以配置代理指向goproxy所在机器的ip和端口号(默认是8000端口),欢迎交流。

如何让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吧。

在windows7中高效切换常用软件

我开发的过程中常需要在IDE、浏览器、命令行之间频繁的切换。我通常用快捷键在windows7中软件切换,因为我想尽可能少的使用鼠标。大家可能已经熟知windows的alt+tab和win+tab快捷键来切换软件,但当有其他软件打开时(比如email、音乐播放器等软件),你要在你常用的软件间切换就变得不太方便了。

最近我发现window7的任务栏上有一个更快捷的方法来切换软件,你可以使用win键+数字键(1~9)来打开任务栏上绑定的软件,数字和软件在任务栏的位置一一对应。如果某软件没有启动,按下这个快捷键后就会启动并打开这个软件;如果已经启动,按下这个键可以切换到这个软件的界面。你也可以用shift+win键+数字键(1~9)来新启动一个软件,不管这个软件是否已经启动。

把常用的软件放到任务栏的前面,就可以使用快捷键快速的切换这些软件——windows7中软件切换
把常用的软件放到任务栏的前面,就可以使用快捷键快速的切换这些软件——windows7中软件切换

如图我把我常用的软件放在任务栏的靠近开始的地方,这样我使用快捷键切换时,数字比较小,易于使用。现在我就可以使用win+1打开IDE,win+2打开浏览器,win+3打开命令行工具。在其他程序也都启动的时候,用这种方式来切换软件比使用alt+tab要快很多。启动他们也比使用类似Launchy的软件要快。我也可以使用shift+win+3来启动多个命令行工具。

译自:Piotr JagielskiSwitching Between Frequently Used Programs in Windows 7

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快捷键指南

ubuntu下使用gnome-color-chooser更改eclipse提示框背景色

ubuntu/或者类ubuntu系统下默认的tooltip背景色是黑色,所以我们安装了eclipse后提示框的背景色是黑色的,很难看,一般我们都需要修改这个颜色的,比如改成黄色背景。奇怪的是这个背景色不是在eclipse里设置的,而是在ubuntu系统中设置的,网上也有很多解决方案,但是我觉得比较方便的方案是使用gnome-color-chooser来调整eclipse提示框背景色和其他样式搭配。

下面演示一下操作步骤步骤如下:

1. 下载并安装gnome-color-chooser

sudo apt-get install gnome-color-chooser

2. 设置tooltip的前景色和背景色

用ubuntu系统样式和颜色调节器来修改eclipse提示框背景色
用ubuntu系统样式和颜色调节器来修改eclipse提示框背景色

打开gnome-color-chooser程序,如上图中的设置,在“特定的”里面,你可以随意搭配你的小提示的前景和背景。我这里设置的是提示框内文字用黑色,背景用黄色。

当然这个gnome-color-chooser的功能不仅仅是调提示框的样式,它还可以调整这个GNOME系统界面的样式,感兴趣的可以依依尝试。

windows下用eclipse+goclipse插件+gdb搭建go语言开发调试环境

目前go语言在window或者linux操作系统上,最好的go语言开发调试环境都是由eclipse+goclipse插件+gdb搭建的。如果你还没有搭建好go语言的开发环境,请参考这篇博文《windows下Go语言的安装和开发环境搭建》

一般大家用eclipse都是开发java,如果要开发go,那就得安装goclipse插件了,这样才能有代码高亮、自动编译、联想提示、跳转到函数定义等丰富功能;如果还想要调试的功能,就还得有gdb;如果你还想引入github上的开源库,那还需要git客户端。下面一一介绍如果安装和使用:

安装goclipse

在安装goclipse前,需要事先安装好jdk8。goclipse下载地址:http://goclipse.github.io/releases/ ,由于我朝的高墙存在,可能这个地址访问不稳定,甚至有的人根本访问不了,建议参考goclipse官网的文档,把releases目录下的内容下载到本地后解压,使用本地的路径作为url来安装,比如:file:///D:/goclipse.github.io-master/releases/,搞java的安装eclipse插件应该比较熟悉,安装过程也比较简单,直接点下一步,接受,yes,重启eclipse就可以了(可能由于国内网速的原因,安装过程可能比较长)。如果安装成功,可以在Window–>Preferences里面左边的树形菜单里看到Go,点Go,然后在右边设置GOROOT的路径为go的安装目录即可,下面的几个Go tool的路径会被自动识别到。此时应该看到如下的效果:

浏览到go的安装目录

下面创建一个go项目来检验一下,在菜单栏如下操作File–>New–>Other–>选择Go–>选择Go Project–>Next–>给项目取个名字(比如gotest)–>Finish,创建成功,然后在项目的src目录下创建一个带main入口函数的源文件test。

配置gbd
配置gbd
创建带main函数的源文件
创建带main函数的源文件

然后编辑代码看看高亮和代码提示的效果

golang代码联想
golang代码联想

上面的效果不错吧,goclipse现在已经在方法提示、autocomplete和查看方法变量声明等功能方面支持得很好了,而且这些功能不用额外配置,因为goclipse中包含了一个gocode(用于Go语言的自动补全工具),在安装goclipse的时候会自动安装上gocode(比如:我的gocode在D:\software\green_software\eclipse-j2ee\eclipse\plugins\com.googlecode.goclipse.gocode_0.7.6.v439\tools\windows_amd64),所以gocode一般不用额外的安装和配置,只需要勾选让其在eclipse启动时自动启动即可,配置路径为:Window->Perferences->Go->Gocode,这样eclipse在启动后,你可以在Window资源管理器的进程列表中看到有gocode这个进程。如下图:

goclipse的gocode配置
goclipse的gocode配置

如果你没有gocode,或者gocode没有启动,或者你想用最新的gocode,那么你可以在启动eclipse之前使用如下的命令手动启动gocode:

gocode.exe -s -sock=tcp

这样你就可以在eclipse中使用点号来联想方法和字段,以及用alt+/来自动补全方法和字段。

运行这个程序有两个办法,一个是cd到这个工程的bin目录下,执行下面自动编链接好的exe文件,另一个是在eclipse上右键main函数所在的源文件–>Run As–>Run Go Application,即可。

我平时在使用过程中,发现一个奇怪的问题,就是自己的代码不能自动编译也不能运行了,研究一番才发现是工程的src目录配置不对,理论上这个配置不需要自己手动配的,但是如果你也碰到这种情况,你可以看看这个src目录是否配置正确了,见图你就知道了:

新引入的go项目后检查项目配置
新引入的go项目后检查项目配置

安装GDB

想一想,如果写代码不能调试,那就只能通过fmt.Println(“xxx”)这种方式,那是多么痛苦啊,让自己的开发环境可以动态的调试是很有必要的。下面介绍下,如何安装和配置GDB,让eclipse支持go语言代码的挑食的。

由于go编译器编译出来的可执行程序是按照gdb的标准的,所以目前调试go语言代码必须要有gdb,需要在windows上装一个,linux上装gdb很容易,但是windows上比较麻烦一下,比较常用的做法是装MinGW,然后用里面的gdb。但是我推荐另一个做法:

下载另一个自带了gdb的go语言集成开发软件liteide(绿色软件,解压即可),里面的bin目录下有gdb.exe和gdb64.exe,这两文件前者用于32位操作系统,后者用于64位操作系统。

然后把你操作系统对应的那个gdb配置到goclipse插件里面,操作如下:Window–>Preferences–>打开Go节点–>选择Debug,然后设置GDB,我的操作是64位的,所以选择了gdb64.exe。如图:

配置gdb
配置gdb

这样就ok了,现在可以去试试,在代码里设断点看效果了。(当然现在这个debug功能还没有那么完善,但是大部分的情况都是可以动态查看变量的值的,某未及之处只能通过输出的方式来做了。)

配置GOPATH变量关联go的SDK源码

如果不使用eclipse+goclipse,而使用记事本写代码的话,就必须要配置gopath,尽管使用goclipse后可以不设置GOPATH环境变量,但是那样就不能在eclipse里面直接关联查看go的源码了。如果想让自己的代码中选择一个函数,然后按F3(或者按住ctrl点某个函数)就能看到源码的话(eclipse常用的关联代码的功能),就需要给goclipse配置GOPATH,配置好了以后你可以按住ctrl点某个函数,就可以跳到go的源码中直接查看源码的实现,这个对学习go很有帮助,强烈推荐大家使用。配置效果如图:

在eclipse中设置gopath
在eclipse中设置gopath

配置完了以后,就可以看到Project Explorer里面多出了一个GOROOT节点,这个节点下的都是go的源码,没事多看看很有好处!

用git来下载第三方库

由于现在github非常火,很多开源爱好者都把自己的代码托管到了github、bitbucket、google code上,go语言本身也是开源。想学go语言的同学难免会去这些地方看其他人写的好的代码,不过最好是把这些代码下载自己把玩一番。要下载这些代码就需要使用git客户端,它可以让你用简单的命令就可以把代码下载下来,并打包好。这样你就可以方便的使用了。下面介绍下git客户端的下载和安装:

git的windows客户端下载地址为:http://code.google.com/p/msysgit/downloads/list?q=full+installer+official+git

安装过程中有一个步骤需要注意的,这一步可以让你在dos命令行中使用git命令,这样比较方便一点,如图:

git安装,让你的git命令可以在windows控制台里使用
git安装,让你的git命令可以在windows控制台里使用

这时候你就可以在windows命令行中使用git命令了,现在试试看看好用不,我在bitbucket上有个开源的工具包,以这个作为例子试试看~~

先cd到你的工程的src目录下,然后键入这个命令:go get -u bitbucket.org/weager/utils

这个命令中的-u可以在你曾经下载过这个包时,自动更新这个包。此时,应该能在src目录下看到bitbucket.org目录,这目录里面有一个weager目录,这个目录下就是utils包的代码了。

然后运行打包命令:go install bitbucket.org/weager/utils

此时会在pkg目录下产生于src相同的目录,在utils目录下会有一个utils.a文件,这就是打包后生成的文件。见图:

go项目目录结构以及下载的包
go项目目录结构以及下载的包

下载了包以后,就可以在你的工程中使用这个包了,比如:

go语言代码中引入第三方库代码演示
go语言代码中引入第三方库代码演示

 

 

到此为止,go语言的开发环境完成了,可以开始开发了,good luck 🙂

Reference

eclipse及其他IDE的go语言开发环境搭建

goclipse安装