TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

TimL – Clojure like language which compiles down to VimL

207 点作者 daGrevis大约 11 年前

14 条评论

goldfeld大约 11 年前
This is beyond my wildest wishes. Meaning I have wished, as a formerly active Vim plugin author now fully switched over to Emacs&#x2F;evil, exactly for Clojure compiling down to VimL so that I could maintain my plugins as Clojure&#x2F;Lisp code, compiling it to actual VimL for public consumption, as a preprocessor. I&#x27;d think that would mostly do away with runtime performance worries, and not require the plugin user to actually have TimL installed as a plugin. Which means it could ease the transition of plugin authors to TimL, until eventually it&#x27;s ok (and perhaps performant) to have it as a runtime.<p>Needless to say, I love the fact that Tim Pope has hopped on the Clojure bandwagon, that the community can enjoy well thought out tooling such as he did&#x2F;does for Rails.<p>That said, tpope is one of only a few driving forces over on the Vim side of Clojure, whereas most seem to flock to Emacs. So I see this as potentially a great opportunity to eventually have Clojure-ish compiling&#x2F;running on both Vim and Emacs, so that plugin authors can literally write and keep a single codebase that maps into the respective editor APIs. Well, least common denominator I guess, with extras specific for each editor. And maybe, speaking from my experience developing Vim plugins and looking into Elisp code, we will need &#x27;clojureditor&#x27; packages providing higher level functionality painstakingly implemented for both editors, since it would be plenty non-trivial code that probably doesn&#x27;t belong in a core like TimL neither in a Clojure+elisp equivalent.<p>Then you could see this actually taking off big time since the more voluminous Clojure+Emacs community would be writing a good deal of plugins which would also work on Vim for free (imagine that!), so that they could support both platforms because it wouldn&#x27;t be much extra effort. Hats off to the Pope for actually taking on the arguably tougher half, since Elisp should hopefully be an easier target for a lisp like Clojure.
评论 #7511680 未加载
评论 #7511786 未加载
skue大约 11 年前
&gt; Is this a joke? &gt; &gt; If you mean the 6,000 lines of working code, then no, I poured hundreds upon hundreds of very serious hours into that. But if you&#x27;re referring to the fact it&#x27;s woefully underdocumented, adds considerable overhead to an already slow host platform, and ultimately unlikely to gain any traction, then yeah, probably.<p>This is the best sort of April 1 announcement - something ridiculously ironic and playful, yet incredibly useful long term. Thanks so much for creating this, along with all of your plugins.
mikegerwitz大约 11 年前
In the never-ending Emacs vs. Vim debate, as a long-time Vim user (with no intent on switching), I&#x27;ve always envied Elisp. tpope has once again delivered and maybe now I can stop shamefully eyeing up Emacs from a distance.<p>I haven&#x27;t given this a try yet, but I can expect that, if it works well, it will be worth even a modest performance hit.
评论 #7512082 未加载
评论 #7512197 未加载
评论 #7513062 未加载
pi-rat大约 11 年前
A lisp for vim - with months of commit history.. released on 1st of April.. awesome!
评论 #7511342 未加载
rabino大约 11 年前
Maybe the april fools&#x27; joke is that this is not a joke
评论 #7511497 未加载
评论 #7512793 未加载
krick大约 11 年前
It&#x27;s so cool that I would be skeptic (real programming language that compiles into VimL? God, that must be buggy!) already if not the fact that it&#x27;s written by tpope. That&#x27;s totally awesome.
aktau大约 11 年前
Even though I like clojure and think it&#x27;s cool, I don&#x27;t think VimL needs another layer that slows it down. I&#x27;m putting my money on the VimL to Lua translator that&#x27;s currently being worked on by ZyX-l (<a href="https://github.com/ZyX-I/neovim/tree/luaviml" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ZyX-I&#x2F;neovim&#x2F;tree&#x2F;luaviml</a>) for neovim. With that, we can run VimL as Lua code in LuaJIT, which will transform VimL from one of the slowest scripting languages to among the fastest.<p>Note that I said among the fastest, because VimL uses native integers which Lua doesn&#x27;t have. LuaJIT does have them but their conversion rules are different so there has to be some shim code (<a href="https://github.com/neovim/neovim/issues/392" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;neovim&#x2F;neovim&#x2F;issues&#x2F;392</a>). There&#x27;s also many other VimL -&gt; Lua incompatibilities that will incur some slowdown but it should be wicked fast still.<p>Of course, I expect that many people will start writing native lua plugins after a while, it is a far more pleasant language, after all.
seth1010大约 11 年前
Oh, this is neat. (keeps reading...) HOLY SHIT TIM POPE
Morgawr大约 11 年前
At first I started reading and I was skeptical, there are so many abandoned&#x2F;unused lisp dialects out there nowadays.. Then I checked the size of the project and at the first mention of actual clojure datatypes I was pleasantly surprised.<p>Kudos tpope, this is freaking awesome!
daGrevis大约 11 年前
Here&#x27;s an example of TimL in action! <a href="https://github.com/sjl/tslime2.vim/blob/master/plugin/tslime.tim" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;sjl&#x2F;tslime2.vim&#x2F;blob&#x2F;master&#x2F;plugin&#x2F;tslime...</a>
评论 #7514194 未加载
SmileyKeith大约 11 年前
As someone who develops some plugins this looks freaking awesome. Think I&#x27;m past thinking this is a April fools joke, knowing his sense of humor, the number of lines of code and the commit history.
jzelinskie大约 11 年前
This could be totally awesome. Maybe with neovim&#x27;s planned LuaJIT implementation of VimL this can actually run quick.
评论 #7512025 未加载
kul_大约 11 年前
Can this be used to develop plugins for vim? I would love to see someone come up with a plugin in TimL or port one to it!
评论 #7513961 未加载
tomphoolery大约 11 年前
UGH! SO MONEY!!! &lt;3 &lt;3 &lt;3