GNU Emacs 23.2 released
permalink.gmane.org
permalink.gmane.org
* CEDET http://cedet.sourceforge.net/ is now part of emacs(!!!)
* RMAIL now uses mbox
I think js2.el (Steve Yegge) was combined with javascript.el to make a new mode. Might be interesting...
espresso/js actually works like Emacs, and it doesn't try to treat Javascript as a dialect of C anymore.
I remember it was similar to nXML in having its own parser... do you think nXML is badly engineered or useless too ?
I wrote a mode inspired by your Stylish for Lua one day. I wish there were more editors that would let you do that kind of thing...
Wow. Never thought I'd see that happen. Been wanting that for 20 years.
Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000002, 0x0000000000000000 Crashed Thread: 0
Dyld Error Message: unknown required load command 0x80000022
I guess it is for 10.6 only?
Also good to know about that compiler flag. :)
BTW, really off topic, but does anyone know how to bind the speedbar to the main frame window instead of being in a separate frame window?
This limited buffer space has long been a criticism of mine and an often-used point I make when I choose to play the Holy War game between vim and emacs. 512MB is still a weak and arbitrary limitation (vim just uses up your memory), but this is much better than it was.
- Extremely large log files
Why not use less? Because it's ugly and does not allow me to edit or copy specific sections out. I like having the full power of a good text editor at my back.
I have brought this concern up before, and the excuse I heard was, "Well, you should not have to work with files that large." Seems someone in emacs-land disagrees; now you can play with files up to 512 MB on a 32-bit system! If there is a legitimate use case for, oh, 500 MB, we can imagine a use case for 2 GB. The world is moving on; we aren't playing with 64 KB systems any more, and data keeps growing.
In 2010, our text editors still have hardcoded memory limits? (I understand emacs's architectural reasoning for it -- and that is a choice.) IIRC, DOS 6.2's Edit could handle large files; it accomplished this with a partial-loading/paging trick, rather than actually loading the entire file in memory.
So yes, I would like to and have enjoyed opening files of large size. Admittedly, I have to wait a bit for the I/O to catch up! :) I also have to be conscious of my memory usage, since I am unaware of any paging mode in vim (or emacs). I expect, on average, to have the option to open a file of at least 3 GB size -- and that is without taking advantage of swap. Next year, I expect more.
I know it is not a common desire, so I do not blame anyone for imposing an arbitrary limit other than to say "nyah nyah; I am free".
I think the choice they make is to spend their very limited time on more useful features. I'm sure many of the core Emacs developers would be very happy if someone would fix this limitation. It would be a very invasive change, a fair amount of work.
Considering you can't even buy a new 32-bit machine anymore, however, I don't really see this as a major problem.
Netbooks.
It might be time for Emacs to switch to 64 bit words internally, should give plenty of bits left for buffer addresses after taking a few bits of for type tags.
The memory overhead when editing small files would be larger, but I haven't really heard people complain about Emacs' memory footprint lately.
Edit: it's possible I used "less", I can't remember.
(let ((i 1024)) (while (> i 0) (setq i (* i 2))) (1- i))
The number it returns is your max file size. Mine is 1152921504606846975 bytes.
In short, give either a shot. You might find it does everything and more that your current editor does. Neither be 100% comfortable to you over night, but in time you'll wonder why you worked with anything else.
Even the "configuration files" are, really, Lisp code, not bags of values and options.
Vim configuration is also not a bag of options and values; by default, it uses vimscript. vimscript is an interesting language (supports a form of OOP) but only really usable in the vim world, so it is up to you if you want to learn it to do things besides assign values to options.
Alternatively, vim allows you to do editor customization in perl, and while I have found very little documentation for it, it also supports mzscheme.
How does this kind of thing help anyone? Why is Notepad just not good enough? You can add entire text-manipulation features to your editor, including Intellisense to your specifications, tools for refactoring, integration with other tools outside the editor, and so forth.
Both editors have large communities and have few real competitors for fast and powerful text editing (I hear TextMate comes close).
C: 20% ELisp: 78%
That said, I often trade the time + context switch of moving to the mouse for a slightly less-efficient keyboard command. Overall it's probably a toss-up, I just like to stay near the home row.
My friend at work uses the mouse a lot and he's very good at using it to edit text.
The mouse is better for some things (especially relative/spatial stuff), and the keyboard for others, but interfaces that make you switch back and forth are clearly problematic. Rather than popping up dialog boxes and alerts, Emacs displays results (such as compiler output) in another buffer. If it needs immediate input, it uses the minibuffer, a one-line buffer at the bottom of the screen.
In either case, its full text-editing functionality is available. You can run a directory browser/editor, a web browser, shell, interpreter, e-mail client, irc client, etc., and it's just another text window.
FWIW, Marco Baringer's SLIME screencast ( http://common-lisp.net/project/movies/movies/slime.mov ) is a pretty good example of proficient Emacs usage. That convinced me to try Emacs after using vi for several years.
Also, for you or anyone else reading this thread, http://emacswiki.org/ is the place to go for info.
http://www.emacswiki.org/emacs/TabBarMode
Tabbar works great for switching between the 3 haskell files I have open (note: tabbar only switches between files of the same type).
Regular buffer switching (or even better, anything mode http://www.emacswiki.org/emacs/Anything) works great for switching between the roughly 200 java files I have open right now.
Further, Emacs standard switch-to-buffer command selects the last visited file by default so you can flip between files with C-x b RET. Slightly longer than alt-tab, but not much once it becomes muscle memory.
1) lisp interpreter
2) text editor library written in lisp
3) a very flexible text editor
4) whatever you want to make it
Because it's a general purpose programming language you can write anything you want in Emacs lisp. That's why you find tetris, web browsers, and e-mail clients written for Emacs. There's a great culture of sharing your work too[1], so Emacs can be a powerful toolkit that supersedes traditional shells in some ways.
You have unlimited access to customize your editing experience. Everything the editor does can be changed because you have the same access to the interpreter & libs as the editor itself. Every key can be bound to a function, and the normal alphanum chars and such are bound to insert themselves by default, but you can change that. So if you want { to insert the closing } automatically, you can do that without much trouble. You can write it, evaluate the code, and then use it instantly without restarting your editor.
Personally I just use it for coding, but for me coding includes running zsh and a host of other REPLs. (ruby, python, javascript, ...) Some of the packages I have used approach or exceed IDE levels of integration with the project being worked on[2][3].
You can compile a C program or run grep and then step through errors/warnings or search results visiting each line and doing what you need to do. This is one way that Emacs one-ups the shell which prints static text as output. Emacs wraps that in an interactive interface, which is great in a lot of situations.
[2] http://rubyforge.org/projects/emacs-rails/
[3] http://github.com/samsonjs/mojo.el
edit: One really cool thing I forgot to mention: js2-mode. Steve Yegge wrote a JavaScript parser in Emacs lisp which means that when editing JavaScript - which I do a lot of these days - the syntax highlighter has an immense amount of information to work with. Global vars are coloured differently from local vars (very important in JS as undeclared vars are implicitly global, ugh). Syntax errors get underlined in red instantly. If you've experienced this in other IDEs you appreciate how awesome this is. You never run your code only to find that you made a stupid syntax error that needs fixing. Someone could use js2-mode to write advanced IDE-like functionality for JS, such as renaming & refactoring.
Anyone could implement something similar for any other language, if they have the time & will.
1) Both vim and Emacs are really really good at basic text manipulation. This means for navigating files and entering/changing text, they're really quick (and don't require a mouse). Most other editors and IDEs are really bad at this.
2) They're amazingly customizable, which means whatever you want your editor to do, they can do.
3) People love messing around with them. I've been there, and I can tell you it's really fun. Finding all the amazing little things Emacs/vim know how to do, finding that extra few lines of code to make that make them do some neat trick, it's all very fun for people who love tinkering with their tools.
Disclaimer: I am not an active Emacs/vim user. But I have used both for long periods, and I respect the amazing things they can do and teach.
And a nice point of text-based programs generally is that they are easy to use over ssh allowing you to access your programming environment everywhere.
(btw, if you learn emacs well enough, you're commandline-fu goes through the roof)
Brian Fox[1] developed the readline library to handle bash's interactive input. Between Brian Fox having been an Emacs maintainer, and bash being a GNU project, the keybindings followed suit...
Had bash been "Bill Joy's[2] Awesome SHell," things might have gone differently :-) Well, it would've just been csh[3] (written by Bill Joy.)
[0] I address this introduction to anyone not already "in the know."
[1] http://en.wikipedia.org/wiki/Brian_Fox
Specifically:
(global-ede-mode 1) ; Enable the Project management system
(semantic-load-enable-code-helpers) ; Enable prototype help and smart completion
(global-srecode-minor-mode 1) ; Enable template insertion menu
Throwing in (require 'cedet) doesn't seem to work either.Not a deal breaker for me, though.
emacs-23.2.tar.gz.sig emacs-23.2.tar.bz2.sig