Aside from that approach, there are a few faithful Vim recreations that I've discovered out of the dozens that I've tried.
https://github.com/vicoapp/vico (Excellent project) http://www.viemu.com/ (Solid experience in Visual Studio) https://github.com/guillermooo/Vintageous (fairly close and getting better every day)
But I don't mean to sound like such a pessimist. The progress so far looks excellent and I can't wait to try it out. Keep it up!
Edit: I also notice that the logo looks like an iOS7 version of React's logo: http://facebook.github.io/react/
Doesn't that already exist, by hitting 'r'?
My only problems with Evil are where Emacs or Emacs plugins’ bindings conflict with Vim bindings, such as v_^G (that is, Ctrl-G in Visual mode) meaning “Quit” instead of “Switch to Select Mode”. Those conflicts aren’t really Evil’s fault – they’re inevitable when combining third-party plugins that don’t explicitly support Evil – but they can be annoying.
I’d say you’re not missing much with Evil that would be in Vim. I suppose you’re mainly missing Vim’s large ecosystem of plugins that are made to work with Vim keybindings and Vim’s editing model – though I see that surround.vim has been ported (https://github.com/timcharper/evil-surround). Plus Vim wouldn’t have Evil’s and Emacs’ keyboard conflicts, of course.
• a graphical file tree browser (with icons, not restricted to ASCII art like NERDTree)
• proportional-width fonts
• a zoomed-out-code mini-map scroll bar
• Plugins written in more mainstream, cleaner languages than Vimscript. Vim does have a plugin interface for some other languages such as Python, but some OSs’ provided Vim installations don’t support those languages, and it’s hard to get a version of Vim with support.
Biscotto — A CoffeeScript API documentation generator based on TomDoc notation:
http://atom.github.io/biscotto/
React-Coffee — A little glue that makes Facebook's React easy to use from CoffeeScript without having to resort to JSX:
https://github.com/atom/react-coffee
SpacePen: A minimalist view library for jQuery, allowing custom methods, super calls, HTML-building, subviews, and easy event binding:
http://atom.github.io/space-pen/
... and the best bit about this bonanza is that everything is really quite readable. Keep up the good work, Kevin.
And I found a screenshot... looks very much like sublime text: https://f.cloud.github.com/assets/1424/1228569/cce6eb26-27a6...
edit: based on this[1], it looks like this is a GitHub-aware/integrated text editor that targets both desktop (Mac, at least) and web
* https://f.cloud.github.com/assets/671378/2265086/c6897dba-9e...
* https://f.cloud.github.com/assets/671378/2265022/bb148a20-9e...
* https://f.cloud.github.com/assets/2988/1796891/85e69ff2-6a93... (animated gif)
* https://f.cloud.github.com/assets/671378/2241795/ba4827d8-9c...
* https://f.cloud.github.com/assets/671378/2241819/f8418cb8-9c...
* https://f.cloud.github.com/assets/671378/2241519/04791a24-9c...
* https://atom.io/assets/screenshot-main@2x-e0b7c5a0be2ef13348...
* https://atom.io/assets/screenshot-native-web@2x-2842562f4757...
The second seems to confirm this being web based.
I can confirm, from looking at the code.
It uses CSS / LESS for highlighting, and CoffeeScript for client-side programming (eg, the fuzzy completion[0], or the autocompletion).
The surprising part is that the editor doesn't seem to be a fork of either Ace or CodeMirror, the two big guys in the field. The highlighters (ie, syntax files) are in CSON. Ace is probably the closest, but it uses a completely different structure[2].
A negative impact of that is the low number of syntax files. However, there seems to be a 1-to-1 equivalence to tmLanguage (TextMate) syntax files[3].
[0]: https://github.com/atom/fuzzaldrin/blob/master/src/filter.co...
[1]: https://github.com/atom/language-toml/blob/master/grammars/t...
[2]: https://github.com/ajaxorg/ace/blob/master/lib/ace/mode/asci...
[3]: https://github.com/textmate/toml.tmbundle/blob/master/Syntax...
The tmLanguage syntaxing, while limiting, is still pretty damn easy to create and edit, thus I approve. The idea that you have to learn a new way to build new syntaxes for every editor out there is a big issue for me as if you're going to be on the edge using new templating syntaxes, flavors of other languages etc. you just have to be able to fiddle with syntax highlighting, especially with new editors with poor/incomplete syntaxes and few user created syntaxes to fill the holes.
[1]: https://github.com/SublimeText/AAAPackageDev/blob/master/Syn...
But I'd have to wait until its release (or beta, should I be so lucky!) to consider moving from standard vim editor and Solarized in my Xresources.
What's important is that it's a text editor on top of web technologies. I was poking around doing the same a couple months back, brackets has been doing it for even longer. It's honestly sorely needed because of the amount of expression one can put into due to it's technological stack. An open, compile-less, hot-reloading editor sounds like a dream coming true.
I'm excited for it.
It also appears to be built around react, so that's really cool as well. And the code is simply great.
You're talking about Emacs, right?
This actually seems really exciting, and I'll give it a whirl when and if I can. It's just funny to see people (the Light Table fans as well) rediscover what Emacs users already knew - modifying your editor in-place is really awesome.
What if Github is going for an Office (or at least a Word) replacement? Author your blog, thesis, paper, novel, whatever, in a single polyvalent multiplatform editor, with the auto-versioned source stored in the cloud (Github’s), then use it as a feed for your blog, newspaper production flow, or other automated publishing environment…
Hope the fine people at the likes of Draftin.com, Etherpad.org, Penflip.com, Prose.io, et many alii, will survive this. The much acclaimed Editorially.com closed its doors already. Maybe the visionary folks at Substance.io might consider to start negotiating an acquihire.
I feel both exhilarated and a bit jealous: I know for sure I’ll need to put another side-project of mine down.
It looks like they tried it or may try in the future:
https://github.com/atom/react-coffee
But this is what they use for views:
So I think we sit tight for now, though it looks like a release is imminent.
Edit anywhere just with a browser is a win IMHO. Also easy pairing.
The closest alternative currently is CoVim. :x
Competition isn't a panacea. All this means is that we get to choose from dozens of half-baked options instead of a small number of ones that have each gotten a lot of effort poured into them.
A little more cooperation would be nice, but editors are one of those things where everyone seems to want to try their hand at it before getting bored and wandering off.
See also: build systems, programming languages, games.
At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config file. We can’t wait to see what you build with it.
- vim-mode
- fuzzy-finder
- emmet (aka Zen Coding)
- solarized-dark-syntax (heh)
- snippets (check)
- language-* (check; so many; awesome)
- timecop (tracking where time is spent in the editor)
- editor-stats (graph your mouse / keyboard activitiy)
- ...Also, despite the plethora of repositories, the actual editor is not available. It could be many of the public repos are public so they can be installed using their Atom Package Manager, which would likely have to jump through hoops if they were private.
How would you compare your approach to e.g. markdown-js¹, mdown-parse-pegjs², or text.js³ (which are based on PEG parsing)?
I would like to elaborate a bit on the specific differences/benefits between the many MD parsers. (I’m maintaining an inventory of Markdown resources in a repo on Github.⁴)
[¹] https://github.com/evilstreak/markdown-js [²] https://github.com/shamansir/mdown-parse-pegjs [³] https://github.com/sheremetyev/texts.js [⁴] https://github.com/rhythmus/markdown-resources
Speed was originally marked's top priority. I would say marked's approach takes advantage of the fact that v8 generates _extremely_ fast machine code for regexes. This is just something I discovered through many endless nights of benchmarking the entire markdown test suite.
Using complex regexes for the lexemes seems like a stupid idea to most people, but it allowed me to optimize marked like crazy, so much so that it beat discount(written in c) in benchmark times (It might be a little bit slower now due to the latest features. I decided to ignore speed for a while to focus on features - will get back to optimization eventually).
The downside of all of this: marked loses some extensibility, however, we implement as much extensibility as possible by exposing the token stream and renderer.
Accuracy and sanity quickly became marked's next top priority. There's a certain threshold of accuracy you want in a markdown engine (you don't want it to be too accurate because markdown.pl had a lot of bizarre behavior). That's a different story.
Speed: It's relatively slow (but fortunately faster than markdown.js at the very least).
Quality: It carries with it a bunch of nonsensical quirks. Some of these quirks are inherited from the original markdown, some are unique to showdown. (I feel like I could write a treatise on list behavior alone, and how ridiculously showdown and markdown.pl handle them). It's not what people are accustomed to/find intuitive today. Here's a few problems (with showdown, as well as other engines) presented in a more tangible way: https://github.com/chjj/marked/blob/master/doc/broken.md
Code quality and maintenance: Showdown is a line-for-line port of Markdown.pl. As you can guess, this is not ideal, especially when you consider that the original markdown was written extremely awkwardly - it's essentially a pile of regexes doing global replaces on a single string to produce the output. This is _extremely_ confusing and messy to those who are not familiar with a code, and the original author of showdown, as far as I know, no longer maintains the project.
> Flattered to see it using marked for the markdown engine.
i am amused as well.
because i just did this the other day:
> http://gitdown.wordpress.com
"gitdown" -- so we can all get down...
*
i also wrote a piece called "markdown considered harmful".
> https://medium.com/the-future-of-publishing/495ccfe24a52
the world needs a new infrastructure for thoughtful documents, including a new text-editor. but from the look of it thus far, this github thing lacks _simplicity,_ by an order of magnitude.
-bowerbird
Awesomeness.
"Collaboration is now working (and accepts 2FA logins)."
Brackets is really neat, it just attempts to be a good editor, it has some unique features like toggling css inline from an html file for example and other jazz.
So Atom isn't something that's really set apart from webkit-based editor, but I don't think that's what's important here. It's the potential the stack offers us.
There's also not as much competition in this area, but it's sorely needed. I feel vim, emacs, textmate, sublime and most the editors are generally closed source or have huge code bases, and they are hampering the process of innovation by creating walled gardens or creating a barrier to entry. With a editor based on web technologies things really open up a lot.
Think about an editor where you can write a feature, pass the tests, and have a hot reload. No compiling, no closed source or plugin system. Just simple coffeescript/javascript some html and css. And bam, you've rewritten your status bar without effecting work in progress. That's something an editor should give us.
I digress, I'm just excited by this.
I really just want something with Emacs' principles that doesn't have as much cruft and runs on the web. Light Table seems to be the best bet so far, but this looks interesting as well.
But to your main point, I would assume this has really really really good github integration...
For one thing though, we can probably expect incredible GitHub integration.
It also has the line: "At GitHub, we’re building the text editor we’ve always wanted: hackable to the core, but approachable on the first day without ever touching a config file. We can’t wait to see what you build with it."
If this thing delivers sublime-tier quality code editing in the browser and desktop AND commands a big enough community to allow for even more features (due to being open source), perhaps even IDE tier features... Sign me the fuck up. I'm tired of using closed source crap, patiently waiting for the dev to get off his ass and build more API functionality.
There are some well known web IDEs like C9 etc that don't really appeal to me and there is a Chrome app called Caret that look very Sublime Text like but lacks plugins. I am happily working with vim and tmux (although I have Sublime Text in a chroot if I felt the need) but Web IDEs have potential.
I had a play with something called godev and it had support for godoc, go-oracle, godef, fmt etc as well as all the usuals like syntax highlighting etc based on Eclipse Orion. It lacked a lot of editor features though and things like git integration so it wasn't really practical but it made me realise there is potential for self hosting a web ide.
I get the feeling there is a space for an open web ide to take off. Many of the current offerings are tied to hosted services and don't look overly customisable.
I always SSH'd into boxes and edited stuff there if necessary, or had a local copy to work on using "normal" editors and synced it. But now I'm writing C++ so I am blessed with good IDEs so perhaps that is why I am missing the excitement over a text editor?
Domain : atom.io
Status : Client Updt+Delt Lock
Owner : GitHub Hostmaster
Owner : GitHub, Inc.
Owner : 88 Colin P Kelly Jr St
Owner : San Francisco
Owner : CA
Owner : US
> Would the editor itself be open-source?
> yes
> a non-opensource editor from GitHub would be ludicrous
> seems like the source code will be up today
and i'm fairly sure that paul graham would say that himself.
-bowerbird
https://github.com/atom/welcome/pull/7
Thanks, but no thanks. I don't need my editor sending usage information anywhere.
Edit: To be clear, I am not talking about all the supplementary repositories that are already open source, but rather I am wondering if the core application will be OS.
Unless this editor can do something similar, this is pretty much useless for any non-html non-css code developer who has already learned that unit test suites are the way, the truth and the life.
I've been predicting/preaching about this for 2+ years now and been building my own browser code editor in that time (http://icecoder.net).
So, CodeAnywhere gets $600k in funding, Adobe is releasing Brackets to the browser soon, GitHub is launching Atom as a web based offering.
Need much more reason to leave the desktop behind?
Domain : atom.io
Status : Client Updt+Delt Lock
Owner : GitHub Hostmaster
Owner : GitHub, Inc.
Owner : 88 Colin P Kelly Jr St
Owner : San Francisco
Owner : CA
Owner : UShttps://github.com/atom/welcome/commit/6346bb8c2e7534ae0de5e...
I just hope it's not tightly coupled to the backend so I can replace it with a custom one.
:)
* I'm a happy emacs user but have to admit this is very promising.
A good programming editor must treat code constructs as first-class citizens and (at least partially) operate on AST level, not go with typical "hey, we have a bunch of text that we colorize and bracket-match/fold/dissect with some mostly-working regexp mess¹" approach. The latter is just a notepad, not a decent development environment.
As I suspect this editor isn't much different from notepad/textmate/sublime in this regards and it doesn't really understand a thing about the code I'm working on (just pretends it does), it seems quite useless to me.
___
¹) Like this: https://github.com/atom/symbols-view/blob/master/lib/.ctags
People like myself who don't use Vim can still navigate code at speed.