dar*_*ioo 21
你的问题很艰难.即使他们确实在终端运行,这也不是他们的主要优势.我现在正在谈论Emacs和Vim.简而言之,他们已经存在了至少20年(Vim)或更多(Emacs),他们有一个非常活跃的社区,他们是可编写脚本的,所以如果你知道如何和他们,你可以用它们做任何事情.非常强大.
他们有一个相当大的学习曲线,所以你可能最终会在他们身上摸索数周,如果不是几个月,在变得精通之前.学习它们的主要动机是生产力.与Notepad相比,你可以用最少量的击键来做一些非常棒的事情.
试试吧.如果你喜欢它,坚持一段时间,忍受痛苦,然后你会看到好处.这几乎就像去健身房.
Mat*_*ggs 13
现在大多数人都使用IDE.他们帮助您分析已经编写的内容.这些东西可能非常有用和有用,但它们并没有真正帮助实际编辑代码的核心任务.工具制造商所依赖的是,这些额外的东西提供了足够的好处,它将超过vim和emacs作为编辑者的效率.在大多数社区中,他们几乎赢得了这场战斗,主要是因为新开发人员面临着很好的代码完成和重构支持之间的选择,这种支持很容易使用,而且他们在大约6个月内看不到任何好处的编辑会去简单的方法.我知道我做到了.
我现在是个男人.Vim似乎并没有真正具有同样的生产力上限,我已经使用它超过一年,而且经常会遇到一些我不知道的事情让我更快.即使没有它,我使用它越多,我正在做的事情的思考就越少,这再次使我更快.此外,vim适用于每种语言和平台,并且安装在任何开箱即用的UNIX服务器上.它没有任何负载屏幕,几乎跳到屏幕上,与大文件一起工作,并且永远不会减速或崩溃.您学习的技能将适用于您在职业生涯中所做的一切,而不是在您更换平台时会改变的IDE.
Vim是一项投资,但如果你正在谈论几乎每天都会使用8-10小时的事情,那么学习曲线就变得完全无关紧要了.
使用nano没有真正的理由.几乎任何东西都更好.
至于vim和emacs,这就是我上次提到的内容:
我对vi keybindings不称职,但我更喜欢整体Emacs.这些编辑拥有如此强烈的追随者的原因是因为他们提供的编辑模型比新系统更强大,这就是为什么提供"vi keybindings"或"emacs keybindings"是不够的,即使你没有使用任何扩展功能或emacs或vi的自定义.
我只会谈谈Emacs的模型,因为我最了解它.今天文本编辑的通用模型涉及文本缓冲区,其中可以插入,删除,选择和剪切/复制/粘贴文本到系统剪贴板.
当然,Emacs缓冲区可以支持这些操作.除了跟踪每个窗口的光标位置,它们都可见,它们还跟踪其中的"标记"."点"(光标位置)和"标记"之间的文本称为"区域",大致对应于主流编辑器中的选择.
不同之处在于Emacs会跟踪标记环中设置标记的最后几个位置,您可以通过击键(或两个,取决于您的配置)返回它们.我觉得这非常有用,特别是因为许多改变你在缓冲区中的位置的Emacs命令在旧位置设置了标记.一个例子是我在编辑Python模块时需要在文件顶部添加一个import语句.转到缓冲区顶部的按键(Alt- <)设置标记.我添加了import语句.我按下Ctrl-u Ctrl-Space,然后我回到了我开始的地方.我可以继续这样做以循环回到以前的位置.(也许我需要在添加import语句时选择一些文本.)
另一个(也是众所周知的)Emacs的区别在于杀戮戒指.用于从缓冲区中删除文本的大多数按键将文本保存到kill ring,然后可以使用"yank"命令(Ctrl-y)调用它.基本功能是随后的yank命令检索较旧的已删除文本.因此,您可以连续删除几个文本部分,然后按顺序检索它们.你也可以在猛拉后用Alt-y循环杀死戒指,删除检索到的文本并在戒指中插入下一个条目.
Emacs在1978年拥有这些功能.在任何程度上采用它们的唯一其他主要系统是NeXTStep(现在由Cocoa继承).其他工具为特定任务提供了更多功能,可以使用比Emacs Lisp更容易使用的语言扩展,并且具有更好的可视化界面......但Emacs在文本编辑方面仍然更好.这就是为什么,一旦你知道如何使用它,它就很难戒掉.
Vim更难学(你必须记住你想要使用的命令),但比我见过的任何IDE或GUI编辑器都强大得多.
vim的部分秘诀是它继承的行模式,最终来自Ken Thompson自己编写的ed(1)文本编辑器.它非常强大:它可以用于重构,甚至可以放入脚本中.它基于正则表达式模式替换.
拥有所有这些功能,因为它是一个老式的终端/ xterm应用程序,它立即启动,并且永远不会有可检测的延迟.
我已多次切换到IDE和gui编辑器,但继续回到vim.我想这次我会坚持下去,为自己省去迂回曲折.
笔记:
如果您的IDE支持重构,那么找到使用IDE的理由.我只是将它用作复杂的编辑任务示例.
值得注意的是,vim似乎有助于对抗RSI,让您的双手更放松.这些命令是未经修改的键,所以你不需要紧张你的手腕按住控制或元或命令或bletch或其他什么.