我在一家纯粹的微软商店担任c#开发人员。
我最近开始在空闲时间远离工作时使用汽油和Linux进行自我组装。我喜欢搞乱Linux,但我仍然很陌生。
我一直听说我应该学习VIM或者Emacs,但问题是,我绝对不可能在工作中使用它们,所以我觉得有点内疚倾向于掌握其中一个。更糟糕的是,我想知道学习VIM或Emacs是否会让我在视觉工作室变慢,因为我会混淆快捷键。
目前我正在使用SciTE在Linux上进行编辑(我认为这在Windows上变成了notepad ++)。
对于在纯粹的ms产品环境中工作的人来说,有什么理由让我学习Emacs / VIM吗?我看到vs studio中有一个使用Emacs快捷方式的设置,有没有人通过在vs中掌握它们来提高效率,或者换句话说你能看到它值得吗?
提前致谢!
相关: Is learning VIM worth the effort?
相关: Is it worth investing time in learning to use Emacs?
相关: Why should I use an IDE?(从其他方面查看)
答案 0 :(得分:25)
开始火焰战:)
我是一名VIM瘾君子,并不羞于承认。我发现使用VIM可以让我在日常生活中更有效率。当您不必将手从键盘上移开时,编码速度会快得多。
默认情况下,VS对VIM绑定的支持不足。但是,有一个便宜的加载项(ViEmu)可以为Visual Studio提供优秀的 VIM键绑定。我有个人执照,我相信每一分钱都值得。
据说有一个与VIM相关的陡峭学习曲线。它可能会在一两个星期内杀死你的生产力。在那之后,好处将开始,你应该注意到你的生产力提升。
答案 1 :(得分:16)
我在90%的微软商店工作,但我仍然每天使用gvim。我为每个使用的IDE都有一个vi插件。如果你要学习其中一个,我会推荐vim,但我知道emacs的用户会非常不同意。
emacs和vi已经存在了很长时间,并且非常强大。学习其中一个可能会让你的眼睛更加高效地进行编码。答案 2 :(得分:4)
我也在微软专卖店工作,但在家里,我只使用Linux。我只想说我在家里使用Vim专门进行编辑。在工作中,我使用Visual Studio进行所有开发,但我将Vim用于需要复杂文本操作的许多任务。即使我没有在家里使用Vim,对于我在工作中所做的工作仍然非常有用。当他看到我做我的Vim杂技时,我们的IT人员认为我是某种魔术师。那是值得的,对吧? ;)
答案 3 :(得分:4)
我一起使用emacs和Visual Studio,没有emacs会很困难。 VS当然是必不可少的,但它不提供emacs所做的文本编辑。 Emacs对我来说是98.4%的编辑窗格。 Visual Studio有12个不同的面板,每个面板都很重要,但有时我只想查看代码。 Emacs让我这样做。我可以在一个屏幕上拆分屏幕并查看4个编辑窗口,即使在同一个文件中也是如此。使用双显示器,我可以在每个显示器上安装emacs窗口。这听起来很怪异,但是当我同时处理代码的不同部分时(对于接口定义和实现,同时),它对我非常有帮助。正则表达式搜索和替换。
我在emacs中启用了自动恢复模式,这与VS功能类似,即“在Visual Studio外部更改文件,是否要重新加载?”除了在emacs中它总是默默地重新加载,这是我想要它的方式。所以我从VS反弹到emacs并且返回,并且源代码中的未决更改从未出现在其他编辑器中未显示的问题。 VS具有“全屏”功能,但我没有发现它与emacs一样灵活或有用。
我无法想象没有这种工具组合的能力。仅Visual Studio就不提供此功能。仅凭Emacs是不够的。我仍然使用emacs进行基本代码片段和小型测试程序。我使用VS来管理项目,TFS,测试和调试。
此时我不能选择使用emacs。我很久以前就选择了它,在以前的公司,emacs是标准工具,所以它......不是说“简单”,而是自动的。我无法想象“独自学习emacs”。我只是从我周围其他emacs用户的社区渗透学习。来自走廊里的人们,我为我的设置获取并定制了一堆elisp代码。用书做这件事......我无法想象。
至于因手指混乱而降低工作效率......我没有遇到任何问题。
答案 4 :(得分:3)
我过去几乎只使用VIM,在搬到近100%的MS商店后,发现来回切换没有任何问题。
如果您愿意学习键盘快捷键,那么VIM和EMACS非常棒。我发现当我重新前进时我并没有真正的问题 - 我认为它们与VS完全不同的环境有助于实现心理转换。你总是可以慢慢开始 - 使用它们,看看它是怎么回事。你会有一些学习曲线,但这完全取决于你。
如果Scite对你有用,并且你只是“玩弄”作为一种爱好,那可能不值得付出努力。对我来说,学习新的和不同的工作/思考方式的努力是有趣的一部分。
答案 5 :(得分:3)
我是VIM的核心用户,并且还为C#(http://insenvim.sourceforge.net/)开发了智能感知......但是对于最新的语言更改,我无法避免使用Visual Studio。但很多时候回顾使用VIM是出于简单的原因。 Visual Studio占用大量内存,启动时间非常长。即使阅读文件或做简单的事情,它也需要几分钟。但是打开文件和导航非常容易。我可能将VIM intellisense移植到C#3.0。
答案 6 :(得分:2)
掌握好的编辑器总是值得,作为开发人员,你花了很多时间输入纯文本,编写程序,XML,HTML,你可以节省多少那个时候通过使用一个好的编辑器并有效地使用它。
九年前我开始学习Vi,现在我离不开它。
无论您选择哪种编辑器,我认为您几乎可以在所有主要IDE中找到所选编辑器输入模型的插件,对于Visual Studio,您可以使用ViEmu或{ {3}}
答案 7 :(得分:2)
我16年来一直是一名专业的C / C ++程序员。 5年前我选择了一些Common Lisp,最后也学习了elisp / emacs。我也涉足Haskell。我发现这些经验对编程C ++有很大帮助。如果没有别的东西你可以看到未来,因为C ++通过采用CL已经存在了几十年的东西慢慢变得更具表现力。
学习emacs是一个漫长的过程,一旦你完全熟悉其功能,做事方式和elisp,它就会开始得到回报。我使用Visual Studio进行了大量的开发,但我经常切换到emacs以利用快速使用的键宏,或者在值表上进行一些复杂的处理。很多东西,你可以在elisp中快速敲击,这需要几个小时的头发与Visual Studios插件撕裂。
答案 8 :(得分:1)
持续提及vim“快捷键”的人应该更深入地学习它。很多vim的键盘命令都用于文本导航和操作(即范围,计数,动作,动作,文本对象等)的真正结构化“语言”,这远远超出了你必须记住的“捷径”像在大多数文本编辑器中一样。这是vim's apeal的主要原因之一,也是其生产力的提升。
答案 9 :(得分:1)
我使用(和爱)Emacs,但我可以理解那里的vi人(我总是在极简主义和厨房沉沦主义之间徘徊)。是什么让我日复一日地使用Emacs,以及是什么让我最终离开我曾经使用过的每一个IDE,是因为我可以编写 functions 。当我说功能时,我的意思是功能;我真的可以编程编辑器本身。我添加了一个新函数,eval它和 bam 现在它在我的编辑器中。如果我使用该功能,那么它就会得到一个键绑定。
我注意到,对于IDE,他们在特定语言方面表现很出色(Eclipse在做Java时非常棒)。我不认为Emacs在任何一种语言上都不擅长(除了作为一个Lisp IDE,但我不会试图在这里颂扬它的优点......)作为一个专用的IDE,但它在语言 N ,其中“N”实际上是或将发明的任何编程语言。很好,如果我正在学习一种新的编程语言(或者甚至只是在C,PowerShell,Haskell,Lisp,Java ......之间跳转),那么我的环境很舒适且非常有能力。我的回答是“是”,因为Emacs(或者我认为是vi)会在你的工具集中为你提供可移植性。你今天可能正在做C#,但在线下,谁知道你可能会攻击Monad#++,如果你是,你可以打赌它会有一个Emacs模式。
答案 10 :(得分:1)
答案 11 :(得分:1)
JaredPar提到了ViEmu,我听说过它真的很棒。但如果您真的想知道切换的好处是什么,那么在ViEmu网站上有一篇很好的文章:Why, oh WHY, do those #?@! nutheads use vi?
就我个人而言,我觉得使用gvim可以大大提高我的工作效率,我绝对更喜欢Visual Studio编辑器或SlickEdit或我使用过的任何其他人。但正如前面的回答中所提到的,Vim可能是一个陡峭的学习曲线。有些人已经专业地使用它5到10年,并且仍在学习它。 Vim可以像perl一样...有很多方法可以进行任何系列的编辑,并且可能需要一段时间来学习最好的编辑。
答案 12 :(得分:1)
学习一个将是完全值得的。我个人会推荐emacs,但我有偏见。我99%确定emacs可以设置为.net开发后端(不能想到正确的话语)。
答案 13 :(得分:0)
我也是C#开发人员。在Linux中开发C ++时,我使用Eclipse CDT,因为它是我找到的最接近Visual Studio的东西。
对vim非常有经验,我用它来编辑Linux配置文件等等,但是当我可以使用IDE时,我并不特别喜欢它用于开发。
顺便说一下,如果你使用vim,你可能想要启用行号和语法高亮显示;我总是将这些行添加到我的〜/ .vimrc文件中:
number on
set syntax
答案 14 :(得分:0)
如果你正在使用Vim和VS,或者考虑它,你应该知道Vim Intellisense项目: http://insenvim.sourceforge.net/
答案 15 :(得分:0)
您至少应该学习如何在VIM中保存(:w
)和编辑文件(魔术) - 即使是最小的操作系统安装包含它。这样,如果你被困在一个空的unix盒子上,你至少可以编辑文件。
否则,naw - 我不买炒作。你有更大的鱼来炸,nano
一直在变好。哎呀,nano有一些语法着色和自动缩进,甚至可以用鼠标在PuTTY上工作。
最好的学习方法是如何在unix框中配置Samba,然后在Windows框中使用真正的文本编辑器,如UltraEdit(cue flamewar)。我使用此配置编辑大于/ etc中的配置文件的任何内容。
答案 16 :(得分:0)
编码速度在很大程度上取决于编辑的选择,因此它是你将要采取的最重要的决定之一。
答案 17 :(得分:0)
我使用的是Vim和Emacs,但速度可能慢了5%。我曾经测量过开发人员实际输入代码的时间量(我不是在谈论滚动),而且可能只占你一天的5%。我们争论5%的5%......
归结为Emacs和Vim的用户已经使用了很长时间,他们无法改变。他们中的大多数只能通过鼠标驱动VS而且不知道大多数热键。
答案 18 :(得分:0)
看看JP Boodhoo以及他在做什么www.jpboodhoo.com。他和Kyle Bailey最近一直在写博客,讨论如何使用VIM作为VS2008开发经验的一部分。