Live data from Hacker News

Absolute Beginner's Guide to Emacs (2012)

jesshamrick.com

71–80 of 262 posts

Re: Absolute Beginner's Guide to Emacs (2012)

#71

Watching Jonathan Blow flying around Emacs on his Twitch streams is always very impressive.

I find Jon enraging, especially when he whines about Emacs: a number of the things he complains about are either fixed in newer versions of Emacs (he's still on Emacs 23) or packages offer a vastly improved user experience.

Re: Absolute Beginner's Guide to Emacs (2012)

#72
post #64

Earlier quoted context omitted.

Exact same thing works in vi/vim. I often use ctrl-o to do the same thing (jump back to previous cursor position).

The fact that Ctrl-O and Ctrl-I exist is just a tiny example of why the modern editors just can't compete with vim and the plethora tiny productivity features it has.

Hardcore vimmer here, but I don't think you're right. I know at least VSCode has this functionality and probably other editors as well. I don't use vim because of it's features but more because modal editing and the keybindings are cemented into my muscle memory. There's also the extremely lightweight nature that let's me have several projects open in vim at once with little resource impact. Were I to start over today, I might pick VSCode and be just as happy.

Re: Absolute Beginner's Guide to Emacs (2012)

#73
post #42

I tried Emacs several time. The concept is cool but the execution makes it so that for me, in practice, VS Code is better. I'd want either: * tabs with a good UX or * super powerful, easy to use, integrated command and fuzzy file search, also with a good UX. I'd also want a terminal at least as good as the VS Code one, on Windows, to use with Cygwin. With Emacs I'd have to learn a big bunch of terminology no other ed…

> * super powerful, easy to use, integrated command and fuzzy file search, also with a good UX.

Sounds like you should try ivy and its companions. Ivy offers fuzzy matching for all operations in Emacs (e.g., switching buffers, opening files, looking up documentation) and the counsel packages (e.g., counsel-rg) use that same interface to interact with external tools such as ripgrep or git grep.

Ivy has completely taken over my Emacs experience, and it did not require a lot of configuration, just a few keybindings.

As for a terminal, I don't have a Windows machine to test, but `M-x ansi-term` is pretty much exactly like a regular terminal: you can run any program in it, including htop or even vim.

Re: Absolute Beginner's Guide to Emacs (2012)

#74
post #11

At some point I realised maintaining my own Emacs setup was just too much work. I've used a few Emacs setups (Prelude and Spacemacs are the ones I used for the longest) and now I use Doom: https://github.com/hlissner/doom-emacs It's very fast and has a lot of built-in in niceties, and I find it easier to understand than Spacemacs. If you use Doom make sure to use the develop branch.

Oh man, your link led me to shackle[1] to make transient buffers behave and I have wanted that for... well for as long as I've been using Emacs really, and that's quite a long time now. I don't get how anybody is fine with Emacs' default "let's pop this buffer anywhere, possibly hiding a useful window". [1] https://github.com/wasamasa/shackle

That looks awesome.

Emacs's default behavior in this respect is theoretically customizable, but the mechanism for doing so (display-buffer-alist) is (to me) incomprehensible. It seems like what Shackle does is provide a clean interface for specifying rules that get translated into display-buffer-alist rules.

Re: Absolute Beginner's Guide to Emacs (2012)

#76
post #42

I tried Emacs several time. The concept is cool but the execution makes it so that for me, in practice, VS Code is better. I'd want either: * tabs with a good UX or * super powerful, easy to use, integrated command and fuzzy file search, also with a good UX. I'd also want a terminal at least as good as the VS Code one, on Windows, to use with Cygwin. With Emacs I'd have to learn a big bunch of terminology no other ed…

> * super powerful, easy to use, integrated command and fuzzy file search, also with a good UX. Sounds like you should try ivy and its companions. Ivy offers fuzzy matching for all operations in Emacs (e.g., switching buffers, opening files, looking up documentation) and the counsel packages (e.g., counsel-rg) use that same interface to interact with external tools such as ripgrep or git grep. Ivy has completely take…

M-x ansi-term ask for [...]/emacs/libexec/emacs/26.1/x86_64-w64-mingw32/cmdproxy.exe and then throws "Spawning child process: Invalid argument".

M-x term does the same.

Those lead down this rabbit hole: https://stackoverflow.com/questions/4535432/terminal-in-emac...

M-x shell seems kind of dumb.

M-x eshell is not a usable shell.

Anyway, everything feels and is very stitched together.

(I also don't understand why declaring VS Code better than Emacs for my use case is downvoted, since it's the truth...).

Re: Absolute Beginner's Guide to Emacs (2012)

#77

I have yet to encounter anything that can match the sheer flexibility of Emacs. For example I am currently using Org mode to write some documentation complete with hyper-links, tables, foot notes and the option to export the results as LaTeX, HTML, Open-Office, and so on with just a few keypresses. It's not just an editor, or an IDE, or even a windowing system - it is a cross-platform computing environment that can b…

How much time have you invested?

Relatively little really. Probably the biggest individual customisation I have made is using Poet Theme (and its recommendations) to provide a good-looking GUI setup: https://github.com/kunalb/poet

I also have a basic (text only) init.el for when solely working in a Terminal environment.

My advice would be to perhaps start with just what is recommended to use Poet theme and then add what you need when you need it.

Re: Absolute Beginner's Guide to Emacs (2012)

#78
post #67
post #65

Earlier quoted context omitted.

You can consider these points: - Tabs are not present in Emacs, but C-x C-b will list all open buffers + Fuzzy file search : you can take a look at the popular Ido-mode + eshell is pretty powerful, if you think about it, you have all the emacs search functionality etc. available in a shell inside the editor itself. I am not trying to popularise emacs, but "inflexible" is not something that you associate with emacs. I…

> - Tabs are not present in Emacs, but C-x C-b will list all open buffers I want a passive, not an active interface. I want to be able to visually scan the tabs. I want to be able to click them when I'm not in the mood for keyboarding. I want the tabs and the tab bar to not be ugly as sin :) Etc, etc. Heck, if Vim has them built-in (and Vim also has the same concept of buffers as Emacs), surely Emacs could (should?)…

>I want a passive, not an active interface. I want to be able to visually scan the tabs. I want to be able to click them when I'm not in the mood for keyboarding

Ibuffer is included in the gnu Emacs distro and does all of this.

Re: Absolute Beginner's Guide to Emacs (2012)

#79

I have yet to encounter anything that can match the sheer flexibility of Emacs. For example I am currently using Org mode to write some documentation complete with hyper-links, tables, foot notes and the option to export the results as LaTeX, HTML, Open-Office, and so on with just a few keypresses. It's not just an editor, or an IDE, or even a windowing system - it is a cross-platform computing environment that can b…

How much time have you invested?

I second to have choose Emacs as a main computing environment and since I often here the question "how much time ..." well...

I'd like to add a note: time can't be only measured in hours, days, etc. To learn Emacs enough to decide that's the way I'd like to interact and use my desktop it take a very little time, in around three month I start using Emacs as WM (EXWM), MUA (notmuch-emacs) in around two months with a "false start" on Mu4e, main docs solution, tramp, personal finance (ledger) etc

But the real point is: I do it when I like to do, as much as I like, in my free time. In other words I can start easily and grow as I wont and need, and this knowledge will survive for decades to came.

With commercial software you need to invest time (and money) before start, and after having reached a certain amount of knowledge you can't go further, you have to keep yourself up to date following upstream changes and you new knowledge have a very little value in the long run.

That distinction is important because too many people say "hey it took too much time to proficiently use FOSS" completely ignoring the big picture. Good time to learn FOSS is at school, when you have plenty of time and (in theory) you are willing to learn, after you get the benefit for the lifetime. Another good time is when you feel the need, in free time. You do not have to pay something in advance, you do not have "training", "diplomas" etc, you grow at your speed and desire, limitless.

That's the real matter, not how many hours.

Re: Absolute Beginner's Guide to Emacs (2012)

#80
post #76

Earlier quoted context omitted.

> * super powerful, easy to use, integrated command and fuzzy file search, also with a good UX. Sounds like you should try ivy and its companions. Ivy offers fuzzy matching for all operations in Emacs (e.g., switching buffers, opening files, looking up documentation) and the counsel packages (e.g., counsel-rg) use that same interface to interact with external tools such as ripgrep or git grep. Ivy has completely take…

M-x ansi-term ask for [...]/emacs/libexec/emacs/26.1/x86_64-w64-mingw32/cmdproxy.exe and then throws "Spawning child process: Invalid argument". M-x term does the same. Those lead down this rabbit hole: https://stackoverflow.com/questions/4535432/terminal-in-emac... M-x shell seems kind of dumb. M-x eshell is not a usable shell. Anyway, everything feels and is very stitched together. (I also don't understand why decl…

> M-x ansi-term ask for [...]/emacs/libexec/emacs/26.1/x86_64-w64-mingw32/cmdproxy.exe and then throws "Spawning child process: Invalid argument".

Ah, that's too bad.

Post reply on HN