是否有任何带有C#代码完成插件的emacs或vim编辑器?

时间:2008-10-26 00:54:26

标签: c# vim emacs editor

如果它同时选择了一个方法列表和潜在的输入参数列表,那就太好了。这是针对powershell完成的,如果为emacs或vim实现了类似的功能,我很好奇吗?

澄清:

我与之合作的开发人员希望在不运行visual studio的情况下使用vim或emacs来降低开销。本质上,他希望能够编写测试,编辑emacs或vim中的代码,然后运行NANT脚本来编译代码并运行测试。他想要的Visual Studio唯一的功能是代码完成。其余的他可以在没有98-99%的情况下生活。

9 个答案:

答案 0 :(得分:1)

您可以为Visual Studio使用vim编辑器模拟器。

http://www.viemu.com/

答案 1 :(得分:1)

我没有遇到过emacs模式,它会根据用户环境提供的API的“知识”提供代码完成建议。对于很多人来说,这是一个阻止他们在使用rich / large / unwieldy(删除适用的)API时尝试使用Emacs或VIM的问题。

但是我想知道在日常工作中会出现多少问题。我一直在使用带有C#-mode的Emacs来编写很多C#代码。我也倾向于运行dabbrev-mode或pabbrev-mode,它倾向于处理我倾向于使用的更常见的函数和变量名。对于我永远的耻辱,我不得不承认我倾向于在MSDN网站上打开浏览器以查找其余的 - 那些我经常使用不足以记住的API。你的同事可能想要研究的另一个潜在助手是icicles,这也可能是朝着正确方向迈出的一步。但是,这些库都不会提供像Visual Studio IDE那样的完整支持。在使用更高效的编辑器时,我会将此视为权衡的一部分。

顺便说一句,如果您的同事在一个团队中工作,并且在同一个项目上工作的其他成员正在使用Visual Studio,那么MSBuild可能会提供一个更好的解决方案,用于在VS之外构建而不是Nant,因为MSBuild会读取相同的解决方案和项目文件VS使用(事实上,VS2008中的很多构建工作都由MSBuild处理)。语法与Nant并没有太远,并且添加了社区任务(这为您提供了NUnit集成等),并且它将确保每个人都使用非常相似的机制来构建可执行文件。

答案 2 :(得分:1)

我见过C#的最远完成时间是this blog,特别是this post。 (包含上下文和其他Emacs帖子的博客链接。)

如果你可以忍受完全愚蠢,你可以用标签和标签完成自己滚动。

A previous stack on the same issue.

答案 3 :(得分:1)

您的源代码应通过CEDET框架处理:http://cedet.sourceforge.net/

然后使用与cedet捆绑的示例UI,或者尝试以下两种中的任何一种: - 公司模式:http://nschum.de/src/emacs/company-mode - completion-ui:http://www.dr-qubit.org/emacs.php

支持CEDET作为完成搜索后端。

APA!

答案 4 :(得分:1)

对于emacs和C#,您可以查看此工具:http://code.google.com/p/idebridge/

答案 5 :(得分:1)

OmniSharp为vim中的C#提供了上下文智能感知。

答案 6 :(得分:0)

Eclipse Style Function Completions in Emacs for C, C++ and JAVA?中的一些建议可能与emacs相关。

不是c#特定的,但仍然。

答案 7 :(得分:0)

我发现http://code.google.com/p/csense这是一个emacs c#intellisense / code sense。我在这篇博文http://osdir.com/ml/emacs.sources/2007-11/msg00018.html中找到了它,这可能接近我正在寻找的答案。

在进一步观察之后,它自2007年11月以来一直没有更新,看起来很陈旧。

答案 8 :(得分:0)

对于Vim,您可以安装insenvim。它支持C#代码完成。 下载插件后,您可以安装安装文件或通过以下步骤手动安装:

  1. 将文件cs_vis.vim复制到$ VIM \ vimfiles \ ftplugin目录中。
  2. 将文件csft.dll复制到$ VIM_INTELLISENSE目录中。
  3. 将CSVimHelper.dll,reg.bat复制到$ VIM_INTELLISENSE目录。
  4. 运行reg.bat注册dll。您需要设置目录gacutil.exe 在路上。您需要最新版本的.NET SDK。