(模板)安装设置自动插入匹配的括号缩进选择矩形区域语法检查启动优化手机软件开发培训第一品牌通常,在Mac下开发Cocoa应用程序或是iPhone应用程序的时候使用的是XCode,但是习惯了Emacs的人也许已经不习惯这样的IDE了。比如本人,自从接触Emacs以后,基本上所有的程序,博客,工作报告等都是用它来完成的。这里,我将给大家介绍在Emacs下开发iPhone应用程序的方法,也许试过之后你也会喜欢上它的(在windows/linux下开发的用户也可以试试,一切都可以自动化的完成,参考这里和这里。手机软件开发培训第一品牌设定XCode的外部编辑器首先将缺省的编辑器由XCode更改为Emacs。这样一来,双击XCode的源文件后,将用Emacs打开。在「环境设定」-「文件类型」-「file」-「text」-「sourcecode」-「sourcecode.c」-「外部编辑器」-「其他」中选择「Emacs.app」。必须选择「其他」。最初emacs由Terminal内启动。这里,工程文件还是由XCode打开的。手机软件开发培训第一品牌利用Emacs开发Objective-C语言程序的时候,需要打开objc-mode。首先在~/.emacs.el中设定关联objc语言的文件后缀名.m、.mm、.h。(add-to-list'auto-mode-alist'(\\.mm?[wind_phpcode_1]quot;.objc-mode))(add-to-list'auto-mode-alist'(\\.h[wind_phpcode_1]quot;.objc-mode))但是,后缀名为.m的文件除了Objective-C以外,matlab中也在使用,后缀名为.h的文件C/C++中也被应用。如果只是想这样单纯的设置,应该还是会带来一些不便的。不过不要紧,在Emacs22以后,为了解决这个问题可以设定magic-mode-alist。它可以解析具体文件中的内容确定具体的mode。这里,判断文件行头是否有@implementation、@interface、@protocol,如果有,就设定objc-mode。(add-to-list'magic-mode-alist'(\\(.\\|\n\\)*\n@implementation.objc-mode))(add-to-list'magic-mode-alist'(\\(.\\|\n\\)*\n@interface.objc-mode))(add-to-list'magic-mode-alist'(\\(.\\|\n\\)*\n@protocol.objc-mode))手机软件开发培训第一品牌这里使用xcodebuild命令行实现命令行的编译方式,你也可以使用这里的方法,使用gcc&Makefile。编译可以使用下面的命令:xcodebuild-configurationDebug-sdkiphonesimulator3.1.2执行可以通过AppleScript来实现。1tellapplicationXcodetoactivatetellapplicationSystemEventstellprocessXcodekeycode36using{commanddown}endtellendtell手机软件开发培训第一品牌这里直接使用了keycode。如果你自定义了Mac的keycode话,就不能正常工作了。这里使用的keycode的意思如下:using意思Unicode菜单上的记号commanddown命令键0x2318?controldown控制键0x2303?optiondownalt键0x2325?shiftdownshift键0x21E7?以及键keycodeesc53tab48space49return36delete51leftarrow123rightarrow124downarrow125uparrow126手机软件开发培训第一品牌所以,这里的例子就是Ctr+return。然后将该AppleScript嵌入到EmacsLisp中。(这里只针对CarbonEmacs或CocoaEmacs有效)(defunxcode:buildandrun()(interactive)(do-applescript(format(concattellapplication\Xcode\toactivate\rtellapplication\SystemEvents\\rtellprocess\Xcode\\rkeycode36using{commanddown}\rendtell\rendtell\r))))手机软件开发培训第一品牌然后使用M-xxcode:buildandrun来执行。或者绑定下面的快捷键。(add-hook'objc-mode-hook(lambda()(define-keyobjc-mode-map(kbdC-cC-r)'xcode:buildandrun)))手机软件开发培训第一品牌开发程序的时候经常会用到帮助文档,类似windows下的MSDN。在Mac下利用命令行形式检索帮助时用docsetutil命令。比如下面的方法:/Developer/usr/bin/docsetutilsearch/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone3_1.iPhoneLibrary.docset-query'word'Emacs中利用这一命令,可以使用xcode-document-viewer.el。运行的时候需要emacs-w3m。可以在这里下载w3m,按照下面的方法安装。手机软件开发培训第一品牌curl-O手机软件开发培训第一品牌这之后,安装emacs-w3m到.emacs.d/lisp下。cvs-d:pserver:anonymous@cvs.namazu.org:/storage/cvsrootcoemacs-w3mcdemacs-w3mautoconf./configure--with-lispdir=~/.emacs.d/lisp/w3m--datarootdir=~/.emacs.d/share--with-icondir=~/.emacs.d/share/iconmakemakeinstallmakeinstall-icons手机软件开发培训第一品牌cd~/.emacs.d/lispcurl-O://github.com/sakito/emacs-xcode-document-viewer/raw/master/xcode-document-viewer.el#这里是原始版#curl-O手机软件开发培训第一品牌然后在.emacs.el中像下面一样设置。;;自动加载emacs-w3m(autoload'w3mw3mInterfaceforw3monEmacs.t)(require'xcode-document-viewer)(setqxcdoc:document-path/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiPhone3_1.iPhoneLibrary.docset)(setqxcdoc:open-w3m-other-buffert)(add-hook'objc-mode-hook(lambda();;用C-cw来检索文档(define-keyobjc-mode-map(kbdC-cw)'xcdoc:ask-search)))手机软件开发培训第一品牌打开头文件比如像打开#importUIKit/UIKit.h处的头文件时,可以使用Emacs中自带的ffap(findfile(orurl)atpoint)。快捷键是C-xC-f,在光标处的头文件执行它,将打开对应的头文件。(ffap-bindings);;设定搜索的路径ffap-c-path;;(setqffap-c-path;;'(/usr/include/usr/local/include));;如果是新文件要确认(setqffap-newfile-promptt);;ffap-kpathsea-expand-path展开路径的深度(setqffap-kpathsea-depth5)手机软件开发培训第一品牌另外,由.h文件切换到.m文件、或者由.m文件切换到对应的.h文件、可以使用ff-find-other-file。如下设置,使用C-co来切换文件。(setqff-other-file-alist'((\\.mm?[wind_phpcode_9]quot;(.h))(\\.cc[wind_phpcode_9]quot;(.hh.h))(\\.hh[wind_phpcode_9]quot;(.cc.C))(\\.c[wind_phpcode_9]quot;(.h))(\\.h[wind_phpcode_9]quot;(.c.cc.C.CC.cxx.cpp.m.mm))(\\.C[wind_phpcode_9]quot;(.H.hh.h))(\\.H[wind_phpcode_9]quot;(.C.CC)