7 ms·
I never fully "got" emacs even though it was the popular editor during university times and I occasionally use it for quick server admin stuff. Today I feel it
by psp 12y ago
I never fully "got" emacs even though it was the popular editor during university times and I occasionally use it for quick server admin stuff.
Today I feel it has missed its boat with good looking and user friendly stuff available like Sublime Text, Atom, Eclipse and even cloud IDEs.
I cant help but to laugh quietly to addons like this.
- tuhdo 12y agoCan Sublime Text/Atom do all of this here: https://news.ycombinator.com/item?id=8639804 https://news.ycombinator.com/item?id=8639804 ? I want to jump to any file at any time regardless of where I am in the project instantly, can Sublime do it? And even if a project has 30-40k files, it must be fast and make me jump instantly. See the demos in this guide for details: http://tuhdo.github.io/helm-projectile.html http://tuhdo.github.io/helm-projectile.html Atom has a limit of 2MB text file which is worse than Vim in the 90s.
- thrw1q 12y agoThose videos on the Idris mode are also very impressive: https://www.youtube.com/channel/UCsON_8vogp4nCQFTnfu43kA https://www.youtube.com/channel/UCsON_8vogp4nCQFTnfu43kA (Other languages also have nice modes for context-aware completion (and more), like Haskell's ghc-mod and Rust's racer, which is incomplete but is already very nice)
- pmoriarty 12y agoOr take a look at the videos at Emacs Rocks.[1] [1] - http://emacsrocks.com/ http://emacsrocks.com/
- giovannibajo1 12y ago> I want to jump to any file at any time regardless of where I am in the project instantly, can Sublime do it? And even if a project has 30-40k files, it must be fast and make me jump instantly Yes, Sublime handles that smoothly. Do a linux tree clone, enter the directory, run "subl .", then ctrl+p (or cmd+p) and start typing whatever. It fuzzy-completes your typing and immediately displays your selection as a preview in the background as well. Video here: https://www.dropbox.com/s/wjc9k8ocwiukq5t/sublime-linux.mov?dl=0 https://www.dropbox.com/s/wjc9k8ocwiukq5t/sublime-linux.mov?... (note the percentage in the footer, it was indexing in background the files for code completion and other stuff, since I had just cloned it, but the file jumping still works smoothly). I skimmed through your other videos, and I didn't instantly see anything that I couldn't do with a recent editor as well.
- tuhdo 12y agoEmacs also has that preview feature when you move the highlighter to a selection. However, I feel it annoying because screen keeps changing while I narrow to a file or a set of files, and luckily it is off by default. How about other thing? Like switch between source and header files without configuring anything? Or Jump to any file I see instantly, even without full filepath and you only have just a name and without typing the filename? http://tuhdo.github.io/static/helm-projectile/helm-projectile-find-files-dwim-1.gif http://tuhdo.github.io/static/helm-projectile/helm-projectil... Can it do powerful automatic indentation: https://github.com/Bruce-Connor/aggressive-indent-mode https://github.com/Bruce-Connor/aggressive-indent-mode. It does not only indent the current line, but the whole Semantic context around your cursor. Demos inside the homepage. Beautiful compile output: http://tuhdo.github.io/static/c-ide/compilation-compile.gif http://tuhdo.github.io/static/c-ide/compilation-compile.gif Open man page for symbol at cursor: http://tuhdo.github.io/static/part3/helm-man-woman.gif http://tuhdo.github.io/static/part3/helm-man-woman.gif Emacs can save any arbitrary window layout and restore it later. You can even have workspace in Emacs, each can store a set of window layouts (i.e. one for debugging, one for reading doc, one for just source code...), can be saved as a bookmark and later restore in future session. In Emacs, you can bookmark everything, even a git commit.
- giovannibajo1 12y ago> How about other thing? Like switch between source and header files without configuring anything? Yes (ctrl+alt+up). > Or Jump to any file I see instantly, even without full file path > and you only have just a name and without typing the filename? I'm not sure I understand. I mentioned fuzzy completion before, the way it works is that it matches even subparts of the paths and/or filename, with the only requisite of preserving left to right. For instance if I type "bmx25" I can find boot-related imx25 files, because it will match the "b" from the boot path, and then "mx25" from the filename (even a few directories down the path). > Can it do powerful automatic indentation: I never saw such a plugin; generically speaking, plugins can do stuff on keypresses (in a separate thread of course to avoid blocking), for instance you can configure the linters to run at each keypress, at each save, every Nth seconds, after N idle millesconds, etc. So it depends whether you want to compare the richness of the ecosystem or the core capabilities of the editor. > Beautiful compile output: I honestly don't know; it doesn't that by default, though there might be some plugin to that effect; when I use compiled languages, I prefer a linter-like approach to showing compilation errors, so I don't use this kind of plugins in my own environment. > Open man page for symbol at cursor yes, this is supported, though I personally switched to Dash (http://kapeli.com/dash http://kapeli.com/dash) recently, which is similar but much more powerful than just man, as it allows to cache and index documentation from dozens of programming environment and frameworks, taking care of the different formats, etc. So for instance with the same shortcut I can get the help for a POSIX function from its man page, or a Boost class method from their official documentation, and everything is blazingly fast because of local cache and index, so my computer doesn't need to go to boost.org to show that page. > Emacs can save any arbitrary window layout and restore it later. You can do that in Sublime, but you need to define a project (which, in its most basic form, is just a "save project" command after having opened a directory); at that point, you have a shortcut to switch between projects with fuzzy completion, and each project keeps the full workspace, ALSO including unsaved modifications to files (which sounds crazy but I love it) as it means that you can do it without even thinking once. --- Generally speaking, I don't think there's a world of difference. I find vim harder to replicate in its more advanced features, with its approach to command combinations which is totally different from anything else; but emacs introduced to the world the concept an extendible editor based on complicated, targeted commands (which is the one in widespread usage today), so I think that any sufficiently advanced editor can get very close to emacs in most features. Obviously emacs has many years of history and contributors that created a vast ecosystem, but there might also be some ecosystem bias given its legacy (e.g.: I think it's safe to assert that most web programmers don't use emacs, so I think it's normal to expect Sublime or Atom support for web programming to be generically more advanced). In fact, I don't think Emacs have a specific paradigm that is hard to replicate, as it's the contrary (what used to be special in Emacs 20 years ago as become the default for all editors nowadays). We can battle on the last advanced feature in one specific workflow, but I think the discussion then becomes anecdoctal or at least very niche-related. If look at Atom for instance, they introduced a concept where the editor window is not simply line-based, but they can open graphical windows within it, which is a paradigm shift which might introduce unique features, very hard to replicate. See for instance their nested CSS editing feature, which is very nice because it helps my brain limit the context switching a lot.
- alexk 12y agoProbably you have never seen a good emacs setup, that turns it into powerful customized IDE with great usability. Emacs is like minecraft for editors, you never stop building on it.
- barrkel 12y agoEmacs can be made prettier, but that's not its forte - power and extensibility are. It's a better text editor, IMO, than any of the three you mention. However, it's not particularly suited to quick server admin stuff. If you're using emacs as its intended, you'll have a lot of packages to load on startup, making it sluggish for ad-hoc editing with sudo (precluduing use of emacsclient). Emacs -q or mg would be faster. Personally, I'm fond of joe for this purpose - more functionality than mg while far smaller an install than emacs.
- hollerith 12y ago>ad-hoc editing with sudo (precluding use of emacsclient) It looks to me like you're probably unaware that an Emacs not running as root can edit files owned by root. The way it goes about it (in a word, TRAMP) is a little complicated under the hood, but (at least for files residing on the same machine as the Emacs process) reliable. Specifically, both C-x C-f /sudo::/etc/hosts and `emacsclient /sudo::/etc/hosts` work.
- bazfoo 12y agoAnd you can have something fun like the following in your bashrc to allow attaching to your running emacs daemon any time you need in the terminal: function semacs() { emacsclient -t -a "" "/sudo::$(realpath $@)" }
- mitchty 12y agoEven more fun is using tramp to edit files as root on a machine via ssh. The whole installed editor canard is somewhat a nonissue from the emacs side.
- adlpz 12y agoThere's nothing to "get" really. If you feel that Sublime Text, Atom, Eclipse, etc. are sufficient for your workflow, and wholly capture your needs, then you don't need emacs (or any other editor for that matter). It just happens that there are people out there, like me, that want more out of their software and really enjoy tweaking and improving our editor. For us, there's emacs :).
- latiera 12y agoYou are a fool.
- tmalsburg2 12y agoYou shouldn't blame him. The truth is that Emacs does a great job at hiding its potential from users. Editors like Atom are ultimately much less powerful but they make it easy to discover and use the features that they provide. When I started using Emacs (after a decade of Vim), it took me two years to make myself fully feel at home in Emacs. Part of the reason was that you can't really use Emacs to its fullest without learning a good deal of Elisp. This is the part were other editors do much better.
- klibertp 12y agoEmacs is an outstanding image-based IDE for Elisp, with extensive support for text editing. It's a dynamic environment where you can script your way out of any situation as you go, without restarting and recompilation and so on, which is probably its most powerful feature. No wonder you need to know how to script it to appreciate this power - but I don't think Emacs hides this feature from users. On the contrary, the second thing you see when running vanilla Emacs (after its logo and greeting) is a scratch buffer, so a feature directed at users who want to customize or extend Emacs.
- tmalsburg2 12y agoThe potential of Emacs comes from the huge number of excellent third-party extensions not from the ability to evaluate lisp code in the scratch buffer. Many of these extensions are not very visible. Did you know that there is a really powerful PDF viewer for Emacs that has extensive support for annotations? It took me a long time to find out about it although reading and annotating PDFs is an important part of my work, which is why I did a fair amount of research into the topic. For some reason, this PDF viewer doesn't have a proper web page or documentation. I had to read the code in order to find out what its capabilities are. I leave it as an exercise to you to find out which extension I'm talking about. Perhaps that makes clearer what I meant when I wrote that Emacs is hiding its potential.
- unknownian 12y agoWhat's the point in being so condescending?
- abroncs 12y agoGood. You seem to favor form over functionality, nothing wrong with that. Emacs is the complete opposite of that.
- endgame 12y agoIt's hard to explain when there are all these reasonably featureful programming editors and IDEs going around. The key realisation to have is that even today I spend a huge amount of time just editing text. Commenting on HN? Editing text. Emails? Editing text. Coding? Editing text. Once you have that "everything is text" realisation, there are two ways to make the most of it. One is to have an editor that's easily called from other places (e.g., vim) and the other is to have an editor that can be integrated into everything (e.g., emacs). I started using emacs over a decade ago, and it keeps growing and changing to best suit my workflow. And yes, that includes reading mail.
- catern 12y ago>One is to have an editor that's easily called from other places Emacs is even better than vim at this, ironically. emacs --daemon makes it easy to call emacsclient anywhere I want without worrying about the file already being open - a common pain in vim, at least for me before I switched.
- endgame 12y agoYeah I use emacsclient as well, but I wanted to keep the description simple.