5 ms·
My impression has been that emacs is a poor window manager. Granted, I am not incredibly skilled with emacs but even after some weeks I was still confused by th
by cJ0th 12y ago
My impression has been that emacs is a poor window manager. Granted, I am not incredibly skilled with emacs but even after some weeks I was still confused by the way emacs opened up new windows or changed existing windows when you've clicked on something (for instance, in dired or org-mode's agenda) I ended up to open everything in a new frame and left the management of these frames to awesomewm.
- agumonkey 12y agoIt's pretty bare. The thing is, anyone can build a new management library (the buffer-window tree is accessible), there are some extensions, like tabs, too, but it seems most emacsers are ok with the way things are. Things are moving a little smoother in its dev though (migration to git, windows can be sized per-pixel ...), so maybe now is the time for pushing some new ideas.
- brudgers 12y agoEmacs has many frustrating behaviors out of the box. Typo-> C-z->Crap->Grab Mouse->Expand Emacs Window->Scold self for not calling it a frame. "Frames v. Windows" thing aside, every behavior in Emacs is configurable. It's just that the default assumes that the user fired up Dired to seriously use Dired. The default assumes that the user is using Emacs as Dired and so it becomes Dired with lots of dedicated resources. Orgmode is the same way. They don't constrain the amount of information they show in deference to other activities.
- chriswarbo 12y agoYeah, I do find it annoying how many Emacs-based applications assume they're the only thing running. I'm developing an application built on ProofGeneral, which itself is built inside Emacs. I ran the test suite one day and one function turned out to quit Emacs if it encoutered an error! It took out all of my open shells, files, etc. (everything was saved, but I had to open them all again). Now I'm running the tests in a dedicated Emacs process, launched via a command from eshell!
- brudgers 12y agoI know it's the internet and the standard assumpution is that what I wrote is a complaint. But just to be clear, I don't find Emac's behavior annoying. I find it empowering. The idea that I might know what I am doing and be doing it seriously is refreshing. Even if I don't. I get annoyed with the fact that I don't know Emacs better. But I love the fact that I can change that fact. I love that there's something else to learn about Emacs and that it's likely to be worth learning because it involves diving into an incredible piece of software as an object of design.
- chriswarbo 12y agoWell, I was mostly piling my own complaints on top of what you said. I also agree that Emacs is wonderful, and I agree that it's great how much power it gives us to reconfigure everything. However, that doesn't make it perfect. It's completely legitimate to point out flaws, whether they're actual bugs, subjective annoyances or hand-wavey project-wide things. For example, I think that the Emacs community should embrace starter kits more when encouraging others to get started. Of course there's some truth to the "thrown in at the deep end" and "get to grips with the real, inner-workings" approaches, but at the same time the line has to be drawn somewhere; I doubt many would recommend new starters to compile Emacs themselves. Still, Emacs is certainly not as scary as many make it out to be. This week I was helping out a Haskell programming class of CS students, where the instructions included setting up Emacs and installing haskell-mode (in Emacs 23, so they had to install the package manager first!). Out of a group of 60, only one struggled to do this, and it turned out to be because the sysadmin hadn't installed Emacs on the machine he was using ;)
- brudgers 12y agoThe Emacs community embraces starter kits to the extent it makes sense to embrace starter kits. That extent is the extent to which people are willing to expend the energy to develop and maintain those configurations. My impression is that few people have the energy and will to make such projects a successful ongoing enterprise because in the end, pretending that Emacs is notepad.exe comes crashing down to the reality that Emacs is a power tool and even newbies are drawn to it for that reason. The bill for its learning curve comes through.
- chriswarbo 12y agoBTW, you can run "killall -CONT emacs" instead of having to use a mouse and expand the window (which is hack anyway). You could also use cua-mode, which makes Ctrl-Z work like in other applications. Or you could use an "Emacs starter kit" which includes it (I started with "Emacs Prelude", although that doesn't include cua-mode if that's what you're after). Other answers are given here, including a one-liner to disable Ctrl-Z completely: http://superuser.com/questions/349943/how-to-awake-emacs-gui-after-pressing-ctrlz http://superuser.com/questions/349943/how-to-awake-emacs-gui... Of course, this "frustrating behaviour" goes the other way too. I've lost count how many times I've made a selection in some application, then pressed Ctrl-W to cut it, only to have the document/program close! I don't think it's fair to blame this kind of mis-match on Emacs though, since it's been around for 30 years and pre-dates the "standard" conventions by quite a bit. Emacs shouldn't have to change based on current trends, and as I've already mentioned, changing the default behaviour is a job better suited to Emacs starter kits than Emacs itself. I don't blame the convention for not being Emacs-compatible either. It's just another unfortunate case of standardising on a sub-optimal solution. An "optimal" solution wouldn't need to work across every application, it would just minimise the chances of accidental data loss, crashes, etc. when used across as many popular applications as possible. Accidentally selecting text, or moving to the end of a line, is better than accidentally closing an application ;)
- brudgers 12y agoTo be clear, I'm not blaming Emacs. I find it mind boggling incredible. It's computer science not an ad-supported app built about culled Creative Commons content. I've written the one liner - which just maps C-z to 'undo. Got the tee-shirt the first time. I just find myself thinking about it as a manifestation of the nature of Emacs because I seem to install some version of Linux over another a few times a year and wind up redoing the defaults because I'm too lazy in the wrong way to set up a central init.el somewheres. Emacs takes a long time to learn and I think that's a good thing. The fact I grab the mouse after hitting C-z shows that I don't know the OS's underlying hotkeys for managing windows. It shows that I've been trained to use the mouse rather than actually control my computer. I love that Emacs points this out to me regularly. Speaking of SuperUser, did you know that there's an Emacs site in beta on StackExchange? http://emacs.stackexchange.com/ http://emacs.stackexchange.com/
- gcv 12y agoI agree, some Emacs commands use windows unintuitively and destructively. Dired and various searching modes (grep, ack, ag) are major offenders. You should (1) mitigate the problem with winner-mode so you can easily recover your window configuration, and (2) learn enough Elisp to tweak the poorly-thought-out commands. It usually takes me no more than 15 minutes to figure out what function does the wrong thing and add a small snippet of code to my .emacs.d/init.el which either reimplements the behavior or uses Elisp's brilliant advice feature to isolate and override with better behavior. More modern modes usually behave well. Magit, for example, uses windows correctly. Here is an example of how I used advice to fix bad mouse behavior (yes, I use the mouse sometimes to switch windows): http://emacs.stackexchange.com/questions/7347/preventing-mouse-clicks-in-inactive-windows-from-repositioning-the-cursor http://emacs.stackexchange.com/questions/7347/preventing-mou...
- gknoy 12y agoThanks for the suggestion of `winner-mode`! Swapping between buffer arrangements based on task (coding vs shell work, etc) always felt weird. I solve it with having a giant editor on one monitor on one screen and a large terminal w/ tabs on the other, but that doesn't work so well if I am accessing in a headless way (e.g. remote work).
- gcv 12y agoI use persp-mode (https://github.com/nex3/perspective-el https://github.com/nex3/perspective-el), it solves nearly all my problems managing different projects, shells, code buffers, note-taking, dired, and just about everything else. The only slight wart is term.el performance, making shell output a bit slow sometimes, but I can live with it.