top | item 4377730

Show HN: Ymacs - Emacs in the browser with Dropbox, GDrive, etc

125 points| tagx | 13 years ago |tageorgiou.github.com | reply

45 comments

order
[+] ajross|13 years ago|reply
It's not emacs (I guess it's "an emacs"). It's an editor that does syntax coloring, handles the core emacs keystrokes, and implements the subset of GNU emacs functionality that the author uses in a routine manner.

Right off the bat, I hit the following speedbumps:

  + No replace-regexp
  + No set-fill-prefix (or it's unbound)
  + Default fill prefix detection doesn't work like GNU emacs (e.g. no
    way to fill a long paragraph with a prefix of "> " for quoting
    email)
  + No ispell-word (or any spell checker) on C-$
  + C-x b tab doesn't give me the list of buffers I expect
  + No keyboard navigability in file selection dialog!  I hit C-x C-f
    and end up in this weird web 2.0 world where I'm (no joke) prompted to
    "Drag files here".
So.. it's cute. But other than the author (or someone else willing to reimplement the bits of emacs they need) I don't see to whom it's going to appeal. Serious emacs users aren't the target demographic.
[+] stcredzero|13 years ago|reply
An excellent, informative, high value comment!

Someone could host emacs in virtual machines that have a bunch of real emacsen hosted with TTYs implemented in Javascript and a virtual filesystem that actually writes to Dropbox. Someone could probably make good lifestyle-business money doing that.

[+] foobarqux|13 years ago|reply
Shortcut (i.e. key binding) conflicts with the web browser like C-n (new-line) make it unusable for me.
[+] danielweber|13 years ago|reply
C-k (the most useful command ever) is captured by my browser. Google Chrome.
[+] pjmlp|13 years ago|reply
EmacsLisp is also missing.
[+] rcfox|13 years ago|reply
[+] jack-r-abbit|13 years ago|reply
Wait... that first link in your list from a month ago... that was actually forked to make the one for this thread. They appear to be identical. So if I fork it, can I post it too like I made it? I don't get it. I'm guessing there is some reason somewhere that makes this not a rip off? What am I missing?
[+] brettcvz|13 years ago|reply
I posted this a month ago but it never reached the front page. tagx emailed me about it asking if he could post it and I said it was fine. More distribution is better, right?
[+] b0rsuk|13 years ago|reply
I understand the technical challenge, but the Emacs-y way would be to run the browser inside Emacs. Not the other way around.
[+] osener|13 years ago|reply
You might want to use "text/*" as the mimetype argument to filepicker.getFile to filter out sources like webcam and Instagram.
[+] theatrus2|13 years ago|reply
I noticed it doesn't choke when you upload a binary to it, but sadly doesn't have `hexl-mode` to do anything useful with it.
[+] anaran|13 years ago|reply
My feedback is targeted at the ymacs demos giving a better "first impression", which at this point might be the only one allowed for many.

I am taking the time because that's the most emacsy (unintended bun) experience I've had in a web editor and to me that is a compliment.

I had to "Load its own code!" and read it to jump over these brick walls:

* C-x C-b is undefined

* C-h gives me a chrome://chrome/history/ lesson, but that might be chrome's fault

* M-x sounds the bell (why?) but "that's all she wrote". Neiter ? nor SPC do more than insert themselves in the minibuffer. Reading sources I find M-x switch_to_buffer (C-x b) would work, if only by keyboard (the menu does not allow one to actually pick an entry).

Why not implement C-x C-b? Would it be that hard? Or just let it do what C-x b does for now?

M-x ? and M-x SPC listing all available commands would be a big win too.

But a commad like M-x switch_to_buffer should not really be presented to an emacs user, make that M-x switch-to-buffer, even if some internal mapping may be needed.

This HN article links to http://tageorgiou.github.com/ymacs/ and [Try Out] there links to http://tageorgiou.github.com/ymacs/demo/

* It seems to have some character encoding issues in the modeline:

ymacs.frames[0].getModelineElement().innerHTML

"-- <b>test.js</b>Â&nbsp;Â&nbsp;49% of 1.35kÂ&nbsp;Â&nbsp;(13,3) "

[Live demo] at http://www.ymacs.org/ links to http://www.ymacs.org/demo/

* Modeline looks good in this one:

ymacs.frames[0].getModelineElement().innerHTML

"-- <b>test.lisp</b> (1,0) "

brettcvz, mishoo, tomelam, keep up the good work, I really like this!

[+] liyanchang|13 years ago|reply
Pretty Cool. I hate having to download files from Dropbox just to upload again when I need to save. I think this might do the trick.

EDIT: I just realized that it's not clear. I do use the client and it works really well from my computer. It doesn't work very well from a computer lab.

[+] ori_b|13 years ago|reply
That's why dropbox app has an automatically synced folder. Just edit the files there, and they'll automatically be uploaded.

That's the entire point of the dropbox model. It's a folder. That syncs automatically. No crappy upload pages needed.

[+] bbwharris|13 years ago|reply
Just curious, any reason you don't install the dropbox client? You can selectively sync specific directories.

I keep all my code on a folder in Dropbox, and it's the only folder that I sync. (I don't want large images, PSD's, etc getting synced on my MB Air)

[+] abbot2|13 years ago|reply
M-x doctor: No such command: doctor. You should just call that "yet another online editor", really.
[+] sukuriant|13 years ago|reply
I am sad, there is no M-x tetris...

In seriousness, this is quite a cool attempt. For some reason, using an international keyboard with the application prevents me from ever getting the ' character to appear. I'm not sure why this is the case.

[+] Bootvis|13 years ago|reply
Very nice! I was seriosuly missing something like this, especially for my org-files. A few times a week I want to add or change something to my todo.org but I can't because I'm at some corporate computer. At the moment I try to remember and make my changes when I can, far from ideal.

My plan is to use parenscript to convert the org elisp code to Javascript and provide some extra functionality such as document export through a webserver running headless emacs. Any opinions on this idea? Could this be possible with YMacs?

[+] jack-r-abbit|13 years ago|reply
Not working in my browser. When looking at the source I see it probably only works in FF. But I also noticed you've included "ymacs-mode-markdown.js" twice.

Edit... ok refreshed the page a few times and it seems to be working now. Cool.

[+] biomechanica|13 years ago|reply
Wouldn't mind seeing Emacs ported to NaCl. That would be a fun project, I think.
[+] samuel1604|13 years ago|reply
man great but control-w close the browser window not cool!