新手问题 TextMate 这个是怎么出来的?

autumnwolf · 2014年11月26日 · 最后由 jicheng1014 回复于 2014年11月27日 · 2351 次阅读

共收到 19 条回复

Search "snippet" and "auto completion", Luke.

有人原来因为要用 TextMate 才买的苹果电脑,怎么现在一下就没有人用了,就算 Sublime Text 好得不得了,也不至于一下就把 TextMate 的用户全骗走了吧。

我想说的是,以前是不是把 TextMate 吹得太好了?

#2 楼 @Peter 这个和个人习惯有关吧

它们还是有本质区别的

TextMate 是个基于 Unix 的编辑器, Sublime Text 是个基于 python 的编辑器

#2 楼 @Peter 呵呵,TextMate 足够好用了,一直用

Sublime Text 跨平台,赞

额 看来我比较复古,或者比较懒,vim 我觉得还不错啊,不知道为啥大家不喜欢用 vim

楼主问个问题,楼下为啥要往圣战上歪?你们都是何居心那? TextMate very good, Sublime Text very good on Windows Vim 不屑参与这种比较

vim / vs 党 路过

Tool is a tool

#7 楼 @jicheng1014 工具而已 我觉得不是喜不喜欢 server 上 vim 就比较方便 开发的时候有的 IDE 就更方便

不跑题了... 楼主问题的答案应该是: 按 tab 键

#12 楼 @luikore 不是 tab 键补全,是弹出这个窗口

有一次转编码问题,sublime text 束手无策, 最终还是被 textmate 拯救了。 顿感,姜还是老的辣。

#13 楼 @autumnwolf

snippet 只是 textmate 里 tab 触发的命令之一, 触发条件包括 scope 判断, leading 是否符合, 编辑器是否在可以触发 snippet 的状态等等... 所有符合条件的命令和 snippet 如果超过 1 个, 就会用菜单的方式弹出来

https://github.com/textmate/textmate/blob/master/Frameworks/OakTextView/src/OakTextView.mm#L2594

编辑器有个 C++ 的后端, 然后主要动作都会从 OakTextView 调到 editor 的实现, 然后 editor 会调用 snippet_controller:

https://github.com/textmate/textmate/blob/master/Frameworks/editor/src/snippets.h

snippet_controller 会使用 snippet 栈的实现 (这个栈是处理嵌套触发的, 一些山寨 snippet 实现或者不能嵌套触发, 或者嵌套触发后回不到上一个 snippet 的状态中), snippet 还有做正则代换处理缩进等等, 实现就在:

https://github.com/textmate/textmate/blob/master/Frameworks/regexp/src/snippet.cc

#2 楼 @Peter 我就因为以前看视频看到人家老外总是 textmate 觉得很牛逼很炫 可是自己买了后发现后都说开始使用 sublime 了 技术和工具总是在变啊 也有点赶潮流的感觉

#2 楼 @Peter 因为用 Textmate 的懒得说了。爱用不用。

#11 楼 @autumnwolf 哈哈哈哈 我是略用习惯 vim 了,现在也偶尔用下 atom sublime 没买,textmate 热捧的时候我还没 macbook

#15 楼 @luikore 了解了 多谢了!

20楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册