在Mac下折腾的那些事儿

由于对Windows的失望和对*nix系统的向往,外加对mac界面和产品外观的馋涎,终于下决心迁移到Mac,至今已经在Mac OS X环境下工作了一个月了,最大的心得是:windows是操作系统一般但软件牛逼,Mac正好相反,并不是说Mac的软件不好,只是优秀软件的基数和选择余地没有Windows平台那么多。不过随着这几年Apple的崛起,相信这种现状会逐步改善。话说Object-C在TIOBE上的排名一路飙升,发文当天已窜到第三,貌似又会成为年度最佳了。。。这个也是产生优秀软件的人才基础,呵呵。

替换操作系统是得有点折腾精神的,前后陆续遇到不少问题,把一些经验分享一下,后面一边折腾一边补充吧(有些暂时列上标题,慢慢补充):

【软件安装】
1. homebrew vs MacPorts
最后还是选择了homebrew,原因是前者会优先使用mac自带的库,而不是像MacPorts,全然不顾已有的东西,重新再装一套,不过没用过MacPorts也没多少发言权,而且google很多软件时也是同时支持使用这两种软件包管理工具来安装的,可惜两者不兼容,反正选一个就ok了。后面积累些经验再补充吧。

2. JavaHL
安装完eclipse的svn插件后会报JavaHL不存在的错误,这是因为创建默认设置为使用更加高效的JavaHL来与svn通信,每次都会找不到。如何安装?
其实mac自带有svn,只是版本较低,我用homebrew安装了一个新的,期间遇到不少问题:
参考 了Using Subclipse on OS/X with Homebrew文中的做法,貌似没起作用,后来想起来可能是安装过程中比较着急,以为已经装好了,被我中断掉了,于是重新再做了一次,结果到了步骤时homebrew警告说无法serf已经安装无法再次安装,除非先删除,于是按照提示先执行 brew rm serf,然后再装这次终于成果,也耐心等待安装完成,但安装好后突发发现下载svn是1.7.7,而且警告说:
Warning: Could not link subversion. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link subversion'

于是照做,执行brew link subversion,报了另个警告:

Linking /usr/local/Cellar/subversion/1.7.7... Warning: Could not link subversion. Unlinking...
Error: Could not symlink file: /usr/local/Cellar/subversion/1.7.7/bin/svnversion
Target /usr/local/bin/svnversion already exists. You may need to delete it.
To force the link and delete this file, do:
brew link --overwrite formula_name
To list all files that would be deleted:
brew link --overwrite --dry-run formula_name

于是看了下/usr/local/bin/svnversion,竟然指向了SCPlugin的svn:
svnversion -> /Library/Contextual Menu Items/SCFinderPlugin.plugin/Contents/Resources/SCPluginUIDaemon.app/Contents/bin/svnversion

试着svn --version下看看,果然显示1.6.5版本,这个烦人的SCPlugin(之前装过svn的这个插件,但在我的机器上不好用,弃之)竟然还阴魂不散。。。
按照官方文档,删除以下目录:
/Library/Contextual Menu Items/SCFinderPlugin.plugin
/Library/Receipts/SCPlugin.pkg
其实还应该删除/usr/local/bin/下与svn相关的link,比如svn,svnadmin,svndumpfilter,svnlook,svnsync,svnserve,svnversion,通过ls -l可以看到这些link都指向了SCPlugin插件相关的目录。
(顺便查了下几个OS X中几个目录的作用,Contextual Menu Items :附加的系统级关联菜单插件,如阿拉丁的解压缩关联菜单、iGetter的关联菜单。Receipts:安装过的.pkg安装包的替身,但不是.pkg安装包本身。例如系统升级或安装时的.pkg。或vpc安装时的.pkg包。 )

然后,Log out or restart。然后再执行brew link subversion

参考文献:
[1] http://widerin.org/blog/using-svn-1.7-in-eclipse-on-mac-os-x
[2] http://tedwise.com/2010/06/21/micro-tip-using-subclipse-on-osx-with-homebrew/
[3] http://blog.csdn.net/franklysun/article/details/6041616

【软件选择】
终端:iterm2当然是不二之选,最喜欢它的几个特性:1)多tab、分裂窗口 2)鼠标智能选择 3)牛逼的搜索功能 4)录像和回放功能 。目前不太方便的是没有clone tab的功能。
文本编辑器:MacVim + TextMate2 两者都开源免费(后者刚刚开源),都很强大,各有各的试用范围。曾经也试过TextWrangler,可惜不支持retina,而且一些牛逼功能在BBEdit才有。。。还是免费的好。
SVN客户端:SVNX。曾经尝试过SCPlugin,但是无论在我的Finder里还是PathFinder里都无法显示图标,右键也无效,那个拖到工具栏的图标好搓,而且不太好用,于是放弃。尝试了versions,可惜限制了svn的版本,最新版本的只支持使用1.6.19,可惜我已经装了svn 1.7.7了,虽然不怎么用新特性,但也不想找降回去的办法,后来找到cormerstone,也有这个限制,不能选择自己安装的svn版本。最后找到了svnx,可以设置svn版本,而且最大的好处是开源、免费!用了一段时间了,还是足够应付日常开发了,希望慢慢改善吧。吐槽一句,mac上的软件实在太贵了。。。

文件管理器:肯定是PathFinder了,支持双屏、最新版本有类似TC的F5 、 F6快捷键支持双栏互拷,十分方便,可惜文件过滤功能不支持中文,而且必须把鼠标移到搜索栏中(TC中直接在激活窗口下输入即可),而且没有把树状结构的目录展开成平面结构的功能。
其它暂时没多少纠结的,随个人喜好吧。。。后面用到好的软件再补充。
可以参考下这个哥们的推荐,有些借鉴意义
http://mac.pcbeta.com/thread-112974-1-1.html
顺带提下,没觉得Mac下的Picasa有多好,关键是没有图片预览功能。。。除去这个,跟iPhoto差不多,后者还支持retina,呵呵。

【其它】
1. 修改文件关联
osx下批量更改文件默认打开方式,也就是文件的关联的方法,以rmvb格式为例:第一步:右键单击文件,选择“显示简介”
第二步:在“显示简介”界面中点开“打开方式”左边的箭头,选择你需要的打开程序,如果在下拉列表中没有,选择“其他”后再选取
第三步:也是最重要的一步,选择“更改全部”,在弹出的提示界面上选择“好”
现在,所有电脑上rmvb格式的文件都是用你希望的格式默认打开了。

2. BASH
为了简化操作,提高效率,同时也为了美观,我对bash进行了定制:
#优先查找homebrew安装的软件
export PATH=/usr/local/bin:$PATH

#让命令提示符更美观实用
export CLICOLOR=1
export PS1="\n\e[1;37m[\e[m\e[1;32m\u\e[m\e[1;33m@\e[m\e[1;35m\h\e[m \e[1;35m`hostname`\e[m \e[4m\`pwd\`\e[m\e[1;37m]\e[m\e[1;36m\e[m\n\$ "

#简化命令的输入(网上有很多,个人觉得留些实用的就可以了)
alias ll='ls -al'
alias ..='cd ..'
alias ...='cd ../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../..'
alias h='history'
alias c='clear'
alias mve='mvn eclipse:eclipse'
alias mvec='mvn eclipse:clean'
alias mvc='mvn clean'
alias mvi='mvn clean install -Dmaven.test.skip'
alias mvd='mvn clean deploy -Dmaven.test.skip'



你可能感兴趣的:(osx,mac)