`

ruby 各种编辑器吐槽(转)

阅读更多

vim 高亮文件种类非常丰富, 键盘操作设计非常爱护手指, 可惜和操作系统的默认文本编辑习惯不一样, 在命令行用不了某些 cmd 键的绑定, 它是模式编辑器, 但模式判定和编辑的文档内容无关, 另外没有自带的 debug 接口也是缺点之一. vimscript 虽然简单但还是三天不用就会忘...

emacs 是最早支持 context 和 mode 的编辑器之一, 命令都有对应函数的, 没有 vim 那种绑了键那个东西就不再是那个东西的顾虑. 有 etags 跳转浏览, 结构化编辑 (haskell 包), 二相渲染等高端能力. 对 latex 的编辑支持最完善. 但键盘操作有点费手指, 用的包多了载入速度就会略慢. elisp 和很多 lisp 方言一样: 括号多...

这里顺便吐槽一下括号省不掉的根本原因: 换行没有语义, 没有带运算符优先级的中缀表达式 (可以用 infix macro 但还是略难受), clojure 可以把一些圆括号转换成方括号花括号什么的, 但是括号总量几乎没变.

vimscript 和 elisp 都不是通用编程语言, 没有广泛的库支持...


emacs 影响了很多编辑器, 例如 scintilla. scite, notepad++, ultraedit, komodo, code::block ... 都是基于 scintilla 的, notepad++之类就是在 scintilla 外面包了层皮而已... 很多基于 qt / wxwidget / gtk / fox 的编辑器/IDE也都用了 scintilla. scintilla 的 split buffer (文本存储) 和 line marker (增量着色和 lexer 状态) 就是参照 emacs 设计的. 但 scintilla 基于 cocoa 的版本是收费的, 基于 gtk 的版本在 mac 上基本没有可用性...

scintilla 各种语法高亮和括号配对引擎是用 c++ 裸写的, 源代码中有 20 多个像 lexRuby.cxx 的文件就是 scintilla 的词法分析引擎, 每语言一个, 巨复杂, 其分析只有状态没有栈, 所以像下面的 ruby 代码两个圆括号在 scite 的衍生物里是能配对上的:

( "#{ ) }"

另一个受 emacs 影响很大的编辑器是 eclipse, 插件机制 osgi 什么的蛋疼死... 不过专门为了文本编辑设计的编译器 ecj 值得一看.


gedit 和 jedit 感觉是为了相应平台而设计的, 没感受到任何的新意...

textmate 是近年来唯一感觉有创新的编辑器

  • 点击 txmt:// 链接可以打开文件, ci / airbrake / github 上用这个特别爽
  • 插件主要通过输出 html 来完成 gui
  • 在脚本里通过 dialog 命令可以在 textmate 中弹出 interface builder 写好的 nib 对话框, 还能获得数据绑定, 这个视频简直神了...
  • 着色上用了 oniguruma (支持 peg 的正则引擎), 语法配置强于 scintilla, 例如 textmate 就知道上面的括号不是一对. 值得一提的是 James Edward Grey 2 世写的 ruby bundle 对 ruby 语法下了很多功夫.
  • snippet / 编辑器命令对语法作用域敏感, 例如同一个按键在字符串和非字符串内可以有不同含义

但 textmate 还有些问题:

  • 中文输入修了挺久了还是有问题
  • 最近着色速度好像又慢了...
  • 插件全都是 xml, 自定义管理麻烦
  • 不支持大小写通用的自动完成 (我在修改 golang 的自动完成时 fork 了一份 dialog2 加了往回改写文本的代码, 但是在 textmate2 又不行了 >_<)

sublime 除了跨平台外和 textmate 没有本质不同, sublime 上的 ruby bundle 就是一字不改拷的 textmate bundle ... json 配置已经胜于 xml 配置了, 改成 yaml 配置就完美了.


rubymine 和 netbeans 特色是用了 "抽象执行" 的技巧去做动态语言的自动完成: 整个 ruby 标准库都拷了一份, 摘空方法体载入了用 repl 的方式去取. 但是 swing 的界面实在难看和各种卡, 而且用到某些有趣的写法就会出 bug... 但这个技巧也不是它们首创的, 很早之前有一个编辑器 rIDE 就这么做了还能逐行 debug.

很多 IDE 都是用二相着色的方案: 第一遍用比较快的词法分析器做粗粗的着色, 第二遍在 idle 时用比较慢的语法分析器做精细的着色. 例如 eclipse java 里等一会才会把静态方法加黑, netbeans ruby 里等一会才会区分局部变量和方法调用, xcode oc 里等一会才会把已定义方法名着上颜色, visual studio c++ 里等一会才把 #if macro 的不运行选择支变灰... 二相着色是实现复杂, 付出很多收获却很少的功能, 文本编辑器基本没有支持二相着色的...


1
10
分享到:
评论

相关推荐

    ruby文本编辑器scite

    **Ruby文本编辑器Scite详解** Scite是一款强大的源代码编辑器,尤其在编程领域备受推崇。它由Scott F. Lembcke开发,最初是为Lua语言设计的,但随着时间的发展,Scite支持了多种编程语言,其中包括Ruby。Ruby是一门...

    ruby脚本编辑器.rar

    Ruby脚本编辑器是一款专为Ruby编程语言设计的文本编辑工具,它提供了丰富的特性来帮助开发者高效地编写、调试和管理Ruby代码。在易语言源码的基础上,我们可以深入理解其功能实现,学习如何构建类似的开发工具。 ...

    易语言ruby脚本编辑器易语言源码.rar

    易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器易语言源码.rar 易语言ruby脚本编辑器...

    Ruby编辑器

    一个很好用的Ruby编辑器,分享

    易语言源码ruby脚本编辑器易语言源码.rar

    《易语言源码与Ruby脚本编辑器的深度解析》 在编程领域,源码是理解软件工作原理的钥匙,而易语言作为一款中国本土化的编程语言,以其独特的语法和简洁的界面,深受初级和中级程序员的喜爱。同样,Ruby语言以其优雅...

    Ruby编辑器scite F5可以运行

    Scite,全称SciTE( Scientific TErminal),是由Walter Bright开发的一个轻量级的源代码编辑器,支持多种编程语言,包括Ruby。Scite不仅提供基本的文本编辑功能,还具备代码高亮、自动完成、宏录制与回放等特性,极...

    ruby编辑器(包含FreeRIDE和SciTE)

    ruby编辑器(包含FreeRIDE和SciTE) ruby编辑器(包含FreeRIDE和SciTE) Ruby语言核心和一系列常用扩展集成到了一起,还包含支持Ruby的免费的IDE工具FreeRIDE和SciTE,除了这些之外还包括帮助文档,示例代码,...

    RubyMine(Ruby编码编辑器) v7.0.4 官方版.zip

    JetBrains公司的RubyMine IDE提供了一个全面的Ruby代码编辑器,了解动态语言的细节,并提供智能编码辅助,智能代码重构和代码分析能力。简单的项目配置,自动Ruby Gems的管理,耙支持 - 它有一切一个Ruby开发人员...

    ruby-使用ruby开发的跨平台代码编辑器.zip

    Ruby是一种强大的、面向对象的脚本语言,以其简洁、优雅的语法和强大的元编程能力而闻名。...通过整合各种库和工具,我们可以构建出一款功能全面、用户体验优秀的代码编辑器,满足开发者在不同平台上的需求。

    Atom-autocomplete-ruby,在atom编辑器中为ruby提供智能代码完成。需要rsense。.zip

    Atom 自动完成 Ruby 插件,也称为 Atom-autocomplete-ruby,是专为 Atom 编辑器设计的一个扩展,旨在提升 Ruby 开发者的编程效率。它利用了 rsense 这一强大的 Ruby 语言理解库,提供了实时的代码补全功能,帮助...

    Ruby-femto一个用Ruby编写的最小文本编辑器没有依赖关系

    Ruby-femto是一个基于Ruby语言实现的轻量级文本编辑器,它的设计目标是极简主义,不依赖任何外部库或组件,使得它在各种环境下都能轻松运行。这个项目展示了Ruby语言的灵活性和实用性,为那些希望快速启动并运行一个...

    ruby脚本编辑器易语言源码-易语言

    标题中的“ruby脚本编辑器易语言源码-易语言”表明这是一个使用易语言开发的,专门用于编辑Ruby脚本的软件源代码。易语言是一种中国本土开发的、以中文编程为特色的编程语言,旨在降低编程难度,让更多人能够参与到...

    最好用的Lua,Python,Perl,Ruby,NSIS开发编辑器

    标题提到的“最好用的Lua,Python,Perl,Ruby,NSIS开发编辑器”显然是一款集成了多种编程语言支持的高效工具,它旨在为使用这些语言的开发者提供便利。这款编辑器可能包含了丰富的特性,如语法高亮、代码提示、调试...

    sciTE 编辑器,支持Ruby,Python

    **sciTE编辑器详解** sciTE(Scientific TErminal)是一款轻量级且功能强大的文本编辑器,尤其适用于编程工作。它最初由Walter Bright开发,设计目标是提供一个快速启动、简单易用的编辑环境,同时也具备高级编程...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码ruby代码

    ruby - ruby tutorial

    以下是一些流行的 Ruby 编辑器: - **Sublime Text**:轻量级且功能强大的文本编辑器,支持多种插件扩展 Ruby 功能。 - **Atom**:由 GitHub 开发的开源编辑器,社区活跃,插件丰富。 - **Visual Studio Code**:...

    android ruby解释器

    Android Ruby解释器是一种在Android平台上运行Ruby编程语言的工具,它允许开发者利用Ruby的灵活性和便利性来构建Android应用程序。Ruby是一种动态、面向对象的脚本语言,以其简洁的语法和强大的元编程能力而受到...

    迷你RGSS解释器(ruby解释器)

    迷你RGSS解释器,顾名思义,是一个精简版的Ruby解释器,专为游戏开发中的特定需求设计。RGSS,全称“RPG Maker Scripting System”,是由Ruby派生出来的一种方言,广泛应用于RPG Maker系列游戏制作软件中。它的出现...

    ruby 的文档和编辑器

    这个项目将Ruby语言核心和一系列常用扩展集成到了一起,还包含支持Ruby的免费的IDE工具FreeRIDE和SciTE,除了这些之外还包括帮助文档,示例代码,RubyGems包管理器,Fox GUI库,fxri(Interactive Ruby Help & ...

Global site tag (gtag.js) - Google Analytics