Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've been going off like a broken record in the comment pages for these posts, since I'm such an Emacs fanatic. But I'll say it again, this release is great! Rectangular mark mode, better web browser -- Emacs hasn't stopped getting better


Rectangular mark mode is really awesome. It makes working with rectangles a lot easier. It is now so well integrated into my workflow that I'm really annoyed when I have to use an older Emacs version.


It's funny, I started using Emacs around 1991 or '92 or so (at University), then I changed to Windows development in about '93 and switched my editor to BRIEF which had very nice columnar editing capabilities.

I used BRIEF for a few years until I moved away from strictly Windows development so I moved back to Emacs. Columnar editing was something I missed so much! But now that I've been away from it, it's hard for me to recall what I used to use it for.

Occasionally I do find that I wish I had it, but I remember feeling so crippled without it for a long time! So, can't wait to get back into it again now that it's available. I think it's one of those things that you start using it and find more and more things to do with it as time goes on. Just my $0.02 anyway.


I don't understand what is there that I can't do with rectangles in Emacs 24.3 (or even way before).

I can already kill (C-x r k), yank (C-x r y), replace (C-x r t) text in rectangles, insert text after the rectangle (C-x r z) or at the beginning of all the rectangle lines (C-x r a) or their ends (C-x r e).

What else is there?


The rectangle highlighting issue has been fixed[0].

http://emacsredux.com/blog/2014/01/01/a-peek-at-emacs-24-dot...


Thanks. So that's what other already said, there is nothing more. This was a really minor issue, I don't see why it would make anyone that much happy, but it's sure nice to have it fixed.


It also gives you a live preview when you use C-x r t to insert text, like iedit-rectangle-mode always did (iedit is still more robust, but for most simple cases I use C-x spc now instead of it).


Ah, that's cool! Thanks.


Did you use the 'C-x r *' keys previously? I'm so used to those that I haven't been able to prove to myself that the new rectangular selection is better... In particular, I use 'C-x r t' quite a lot. What is the 'C-x space' equivalent to that?

I'm curious to know which things are easier for you with 'C-x space'.


All C-x space does is visualize the rectangular region. You still use all the old binding (C-x r t for instance) to do anything with the region.

The annoying thing about C-x space, is that it used to do something completely different (set gud breakpoint), but I digress.


> All C-x space does is visualize the rectangular region. You still use all the old binding (C-x r t for instance) to do anything with the region.

Really? Upon reading the release notes, I was excited that I'd probably be able to just use commands like C-w or C-x u to act on rectangles. Sad to see it won't be the case.


Both of those commands seem to work correctly with rectangular selection.


Ah, right you are. In any case, the old bindings do still work.


It must have been a hard decision to make that change -- the current maintainers really hate breaking defaults. I suppose it's just that useful to have.


Interesting - could you please provide some examples of how are you using rectangular mark mode? I have never used it before, so I'm clearly missing something cool here...


Any time you're working with tabular data, or data that is aligned horizontally, it's helpful. For example, I might need to delete a prefix from a list of declarations. I often use macros for the same kinds of tasks, with each macro editing a line and putting the cursor on the next line afterwards.


apply-macro-to-region-lines does not need macros to put the cursor on the next line.

From the manual: The command C-x C-k r (apply-macro-to-region-lines) repeats the last defined keyboard macro on each line that begins in the region. It does this line by line, by moving point to the beginning of the line and then executing the macro.


Take a look at multiple cursor mode for this.


I'm very excited to try it out. I knew about the web browser, but I didn't know about this until I read the release notes.


I honestly have become so used to the rectagular mode as it is, that I'm mostly just annoyed by some of the keyboard shortcuts.


Emacs has a web browser?


> Emacs has a web browser?

At one point there were only two web browsers in the world, one was Mosaic (Mozilla is short for Mosaic Killer) and one was W3 (the emacs web browser).


I don't think Mosaic was the original browser and I believe others predated Emacs, such as Lynx. Here's Wikipedia's version of events, for what it's worth:

https://en.wikipedia.org/wiki/History_of_the_web_browser


Um, what about WorldWideWeb, the original NeXTSTEP browser/editor (by TimBL) which predates both of them?


And a mail client. It's pretty much an operating system.


Someone please try the emacs as init with this release.


I tried to compile emacs statically but under archlinux I need to build ncurses (and probably others) statically too. Which is too much of a black art to me. Gonna try on debian since I believe they include static binairies in packages.



I know, this dates back from emacs 21.3. I wanted to know if someone had the time and skills to replicate the experiment with 24.4


It's very interesting. It seems a neat solution. Anyone go further? Really work on it?


It has sockets, so... pretty much anything you can do with those, you can do with Emacs.

* Email (gnus)

* NNTP (gnus)

* IRC

Come to mind offhand.


Slightly off-topic, but is there still much NNTP use out there other than piracy related? I was a heavy NNTP user once upon a time, but all the public groups I once used seem to be overrun by spam and private ones seem to have gone in favor of email. I would expect there's a quite a few private servers out there to warrant continual updating in a program like emacs.


I prefer to consume mailing lists via Gmane's NNTP gateway: http://gmane.org/

It's a surprisingly nice experience. You can really easily pull archives, nntp clients tend to handle threading well, etc.


Relevant to this subthread, Gmane's maintainer is also the maintainer of Gnus, so the Gmane web UI is (I'm told) surprisingly familiar for Gnus users.


Sure: I use NNTP for my RSS/Atom feeds and my mailing lists, using the excellent gateways at http://gmane.org/ and http://gwene.org/


I use NNTP to follow a handful of development mailing lists via gmane.org.


Yes! There's a healthy community at comp.misc where we post stuff like this article, and sci.misc where we post non comp stuff. In fact you'll see a healthy correlation between articles posted to Ycombinator that are subsequently posted and discussed on comp.misc and now sci.misc. Good place to get a free Usenet account is Solani.org now that Albasani and AIOE are somewhat over-subscribed.


D development forums are NNTP, although there is a forum as well.

I really prefer the keyboard navigation and all the niceties offered by Thunderbird than the web groups interface, each with its own set of allowed actions, mostly without keyboard navigation.


> Highlights of this release include: A built-in web browser (M-x eww)


It's had w3 for quite a while. 'eww' is new.


It's still text-mode though (it will show images inline).

There was a project to integrate webkit into an emacs browser mode but not sure where that stands.


IIRC, w3 was an external program while eww is built entirely in elisp.


w3 is written in ELisp and runs in Emacs http://www.emacswiki.org/emacs/w3

w3m is an external program, which Emacs has a wrapper for http://www.emacswiki.org/emacs/w3m


My apologies then, since I did not remember correctly. Thank you for enlightening!


You know what Emacs is? It's a big Lisp interpreter. It was made to be extensible so that it could do anything. It could be your IDE, for example.

http://cedet.sourceforge.net

The problem is that it isn't a good enough Lisp engine to be very good at anything beyond the great text editor, which it has been since the early 1980's.

Avoiding the really hard problems and building a better emacs browser doesn't really help anyone. At some point, people will realize that the concept behind Emacs is great but could be better done in another high performance language. JavaScript in a browser? Clojure?


What? Emacs isn't a big Lisp interpreter. It's a text editor that is extensible with Emacs Lisp. Sure it contains a Lisp interpreter, but saying that Emacs is only a Lisp interpreter implies that the entirety of the text editor is implemented in Lisp, which is clearly not the case.

I use Emacs as a text editor, which means I use it to edit anything that has text. Granted that is a huge part of my computing needs.

I don't want Emacs to be able to do anything. I already have an operating system and a text editor.


Nope, it's mostly a Lisp interpreter. Stallman had to build some of the low-level stuff in C then he built the rest of the editor in Lisp.

"We used the same idea here (in the hybrid technique), that most of the editor would be written in Lisp, but certain parts of it that had to run particularly fast would be written at a lower level"

http://www.gnu.org/gnu/rms-lisp.html

That's the beauty of Emacs. Considering that he built it in the early 80s, you have to wonder if the whole thing couldn't be written Lisp today.


There's some kind of paradox here. You say it's mostly a lisp interpreter, but then, also, mostly editor functionality written in lisp. I'm not sure you can have it both ways...


It's lisp man, of course you can have it both ways. Code is really data, your program is actually your environment, your editor is actually a giant lisp program with a built-in lisp interpreter. Or is it a lisp interpreter with a built-in editor? I dunno. I'm off to install this release :)


Without Lisp, or something very like it (and javascript is not good enough), I would not use emacs.

I use emacs as a source navigation and exploration tool, even more than for text editing. Its ability to run code customized to the language and projects I'm working on is far more important than its ability to edit text.

I actually don't like a lot of its text editing functionality, and had to work hard to get things like selection, tab indenting, scrolling etc. to work in a way that didn't drive me up the walls. I had to give up on virtual space, one of the things that stopped me learning it 10 years ago. It's also very hard to record keyboard macros without accidentally cancelling (I tend to press C-g reflexively when I type a wrong shortcut); I use multiple cursors these days instead, even though that is much riskier / harder to use when you can't see the whole buffer / all edit locations on screen at once.

A browser, I don't really need that per se - unless it's linked to library documentation. But it's hard to integrate modern docs without at least understanding HTML, if not HTTP. So I can see the need for a browser implementation.


Emacs is in essence, a virtual machine: http://www.emacswiki.org/emacs/ByteCodeEngineering. That's why you are able to do so many things with it. The whole text editor GUI is just a frontend the Lisp interpreter. You can think that Python comes with an interpreter that runs in terminal. Emacs comes with an interpreter and a whole GUI frontend for its interpreter, not merely a terminal interpreter with a prompt. That's why you are able to evaluate any Emacs Lisp code ANYWHERE.

If you only use Emacs as a text editor, that's fine for using a subset of it. Just like a casual user uses Linux without never using its underlying tools in the terminal.

> saying that Emacs is only a Lisp interpreter implies that the entirety of the text editor is implemented in Lisp, which is clearly not the case.

With this argument, I guess Python is also not an interpreter because clearly it is not entirely written in Python.


I'm not sure who's right and I don't even use emacs but I just wanted to point out that emacs has about 400k lines of C and about 1.2m lines of lisp.



This is true, and much of that C is spent implementing the lisp interpreter. I'd love to see how much C is used outside that functionality.


The actual Lisp interpreter is rather tiny compared to the other stuff. Just do a 'ls -l *.c | sort -gk 5' in the src directory. By far the largest file is xdisp.c, which is the redisplay engine, and only a handful of people in the world dare to touch it. Next comes input handling (keyboard.c), then then dealing with coding systems, terminals, win32-API, image handling, windows, processes, buffers, and much more. AFAICS the first file to actually deal with Lisp is lread.c and comes in at #21.


> better web browser...

I couldn't get logins to bitbucket work with eww, because it seems it is not sending the referrer headers. I couldn't find any way to turn it on..


I agree - a great update. I especially like it when I am in -nw terminal mode and being able to use F10 to get access to the menu items I don't remember the shortcuts for.


Is there a screenshot somewhere?



> better web browser

Hah, seems like an argument for vim.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: