Xcode自带许多对于开发iPhone和/或iPad的必备工具,实际上其中许多我甚至都不知道因为这些工具大多是“幕后”的。
另一方面,最近我接触到了使用Vim编辑器的优势。是否有设置可以使得在开发iOS平台时使用Vim成为一种高效的选择?或者说将两者结合起来会非常复杂,以至于使这个问题无意义?
换句话说,如果您在同时使用Vim和Xcode时有任何提示、建议或警告,我愿意倾听!
使用Vim进行iOS或Mac开发可以非常强大和快速,特别是如果您使用TDD(测试驱动开发)或需要快速反馈。
但是,要使其正常工作需要一些技巧。您需要知道的几个重要事项是:
xcodebuild
命令行工具从一些vimscript运行您的构建和单元测试。clang_complete
插件在vim内提供完整的代码自动补全功能。ios.vim
和cocoa.vim
插件进行导航。这是我首选的工作方法。实际上,我编写了ios.vim
插件,以使更多人更容易地开展iOS或Mac开发。
我已经有过这种经历了...
我喜欢vim,经常在*nix平台上进行日常C++开发,但我也喜欢Xcode的所有功能,尤其是最新的Xcode >= 4.3和clang后端,它们在自动完成和符号引用方面真正提供了额外的帮助。
我认为我已经找到了一个最佳解决方案,那就是伟大的(虽然不被苹果官方支持)XVim插件。
希望未来的Xcode升级不会破坏它(它仍然可以与最新的4.5开发者预览版本很好地配合使用),这确实使您能够保持手指的移动方式,就像在vim中学习一样,在使用Xcode时,对我来说这是最佳解决方案。
从 Xcode 13.0 Beta 开始,您可以在 Xcode 中使用 Vim 键绑定。 它在设置中启用:
Preferences → Text Editing → Editing → Enable Vim key bindings
现在切换所谓的 Vim 模式
的方法已更改:
Menubar → Editor → Vim Mode
在XCode 5.1中,XVim会经常崩溃。但它已经有了进展,并且到目前为止,在XCode 6上运行得相当不错。但是,您只能以这种方式获得VIM的子集,例如,您无法将编辑器拆分为同时查看两个文件。您可以轻松使用Shift-Command-X启用/禁用它。
(很抱歉以回答而不是评论的形式发布此内容,但是stackoverflow的声望系统不允许我这样做)
要运行它:YouCompleteMe是一个快速的、随打随现的模糊搜索代码完成引擎,适用于Vim。它有几个完成引擎:基于标识符的引擎可与每种编程语言一起使用;基于语义的Clang引擎可为C/C++/Objective-C/Objective-C++(从现在开始称为“C家族语言”)提供本地语义代码完成...
编辑:
如果没有像YouCompleteMe这样的插件,VIM只能进行基本的单词自动完成(Ctrl-N),它既不了解你正在使用的编程语言,也不了解你项目中的所有其他文件。在键入“。”或“ ->”后,您也无法获得对象成员列表。因此,在输入时,您会错过XCode为您提供的许多帮助(因此速度变慢)。此外,当您在代码中犯拼写错误或其他错误时,VIM不像XCode那样发出警告。YouCompleteMe正好为VIM添加了这些缺失的功能,并使iOS开发在VIM中变得轻松愉快。
您可以使用xcodebuild
来构建和运行您的项目,但我个人更喜欢同时使用VIM和XCode。它们都会在彼此修改文档后自动重新加载。将XCode用于调试、剖析和部署。
使用AppCode与Xcode并行编程真是太棒了。代码更改会立即同步!我对这个设置感到非常满意,因为我终于可以在编写iOS应用程序时使用vim(作为AppCode插件)。AppCode还有其他优点,所以我真的建议你去看看。在我的看法中,重构工具也更好。例如,它可以提取Xcode无法提取的方法,如果它不能提取方法,它至少会告诉你原因。
使用外部编辑器肯定有一些优势(不过emacs比vim好一千万倍:})。
大多数情况下,坚持使用Xcode,但当你需要emacs的强大功能,或者可能是vim(批量重复编辑宏是我的主要原因),只需通过“显示在Finder中并打开”或者切换到你的编辑器并从那里导航到文件进行编辑。 当你切换回XCode时,它会意识到文件已经改变。
对于普通代码,我会坚持使用Xcode,它的代码补全基于对代码的更多了解,所以完胜emacs或vim。连续代码检查是无价之宝,而且正如前面提到的,直接访问文档非常棒(如果你还没有找到,可以选择点击选项)。
根据我的观点,Xcode是更好的解决方案。它拥有许多功能,你在Vim中找不到或添加这些功能。其中一些功能包括:
这个清单非常长,而且Apple始终鼓励您使用Xcode,而不是其他任何IDE。