Live data from Hacker News

Emacs, how it all started for me

xvw.lol

51–60 of 82 posts

Re: Emacs, how it all started for me

#51

A bit of advice to people that have the urge to try Emacs. Do not use a distribution. Yes I know.. you have read that before and then you used Doom or Spacemacs anyways. That's me in the past. And it never worked out for me. I always ended up trying to configure things and the whole setup was too complex for me, so I failed. Over the last 10 years I have been a heavy (n)vim user but I tried Emacs multiple times. Alwa…

I have been using an unstraigtened version of Doom Emacs, and had a lot of issues with the behavior on wake. It turned out the underlying rendering technology was faulty and changing to pgtk fixed it. Sometimes going back to basics forces discovery that is transferrable, like distro-hopping tor DAW switching.

Re: Emacs, how it all started for me

#52

Earlier quoted context omitted.

> but "read about the inner workings of an editor before you use it" is horrible UX. You can start using it without reading, but the UX does not follow common patterns like found in Notepad or VSCode. It is its own thing and reading the tutorial, Mickey's book, or the official manual is way faster than fumbling around. Even my bluetooth speakers came with a manual.

>the UX does not follow common patterns like found in Notepad or VSCode. It is its own thing I know. Emacs is my daily driver. >reading the tutorial, Mickey's book, or the official manual is way faster than fumbling around. Hard disagree. It may be more efficient in terms of total time spent, but you can learn 5 commands and start using emacs immediately. Compared to spending multiple hours reading a book or, worse,…

> Compared to spending multiple hours reading a book or, worse, the manual, I know which one I'd choose.

Why multiple hours? You can always skim it.

Re: Emacs, how it all started for me

#53

Earlier quoted context omitted.

And that's why it cost me two-three years of wasted experience. Looking back, I wish I had focused more on understanding Elisp, learning edebug and the built-in profiler. My bona fide Emacs journey began only after I started writing Elisp without fear.

I guess if one's hobby is fiddling with emacs, then I could see why learning edebug and the profiler are valuable first steps. But I view emacs as merely a tool to get vastly more important work done. I just want it to stay out of my way. I have been using emacs for 20 years and never heard of edebug before today, and have never used the profiler. If I install some new package and it doesn't immediately work, I usual…

> I would rather chew glass

So, you're making assumptions even without ever trying? You just decided it's hard/time consuming/worthless even though you have "never heard" about it?

> I have been using emacs for 20 years

Yeah, well. Like I said: Emacs is first and foremost a Lisp interpreter, "using Emacs" actually means dealing with Lisp. To what extent - it's everyone's own choice. I have seen too many stories of people like you - "using" it for decades and then abandoning it for VSCode or other things, without even realizing what they've given up.

It only takes just a bit of knowing the basics of Elisp to get the genuine Emacs experience, otherwise, you're just riding the car, not driving it.

> I don't have time to fuck around

That is a big misconception. Prolific Emacs users don't waste time ricing their setup just for the sake of it. They apply Lisp to meet their needs. My own work demands certain changes every single day - I have to move between different projects, in different PLs, dissimilar teams; I poke into various APIs; consume data in all sorts of formats; build prototypes, every time with different scope and requirements; analyze huge sets of data; search through documents, hop between different hosts, etc. I can only imagine how miserable my life would've been without my Lisp tools, where Emacs invariably takes the center stage.

It seems like you lack the notion of what it's like to literally shape your tools for your needs as they evolve. It's like having an entire pottery workshop at your disposal, but choosing to only pick up the already finished, dried pieces. Seriously, don't be daft - hook up an AI assistant to your config, the possibilities are virtually endless. It could be just about anything - any small annoyance that you may decide to improve in your workflow. I wish I had developed this "emacs/hacker mindset" where I don't even think twice, if something feels suboptimal - I'd try to automate it. I'd just start typing some Elisp in my scratch buffer. These days, it has gotten even simpler than that - I'd just type a prompt.

Re: Emacs, how it all started for me

#54
post #5

Earlier quoted context omitted.

Emacs is most definitely not a rocket science. The problem with people trying Emacs is that they approach it just like any other text editor, instead of understanding the grand, core principle of it - Emacs is first and foremost a Lisp interpreter with a built-in text editor and not the other way around. Therefore it makes much better sense if you approach it from a Lisp perspective. Alas, many, perhaps most, beginne…

>Emacs is first and foremost a Lisp interpreter with a built-in text editor and not the other way around. I've been using emacs as my primary editor since about 2002 and I hate this take. Emacs Lisp is by far the worst part of emacs. It is a horrible language, best kept dark and deep in the vaults, not to be used, unless at the uttermost end of need. My config, after more than two decades, is about 400 lines, and I c…

> Emacs Lisp is by far the worst part of emacs

Say what you want, but I wouldn't trade it for any other (non-homoiconic) language. Sure, it won't win the contest of the "nicest Lisp", nevertheless - it's a Lisp, and therefore far better suited for the things Emacs is designed to do.

Have you ever thought why Org-mode, developed and maintained by a handful of people (perhaps fewer people than the React.js core team has) is capable of carrying features that (despite so many brilliant minds) never appeared in any similar products? Like for example, executable source code blocks in different PLs that can pipe data into one another. Even Jupyter can't do polyglot execution with data passing between the languages. That shit doesn't exist in Neovim, or VSCode (where MSFT poured millions of $), or IntelliJ. It exists because Lisp makes it much simpler to design and build such things.

As someone who's been "using" Emacs just like you (without ever writing much Elisp), and also "properly using" it for a long time and having to see both sides, I can assure you - it's absolutely worthwhile to spend some time grokking Elisp. It's not a horrible language. For what it is - it is incredibly flexible. You just don't know what you're missing.

Re: Emacs, how it all started for me

#55

Earlier quoted context omitted.

I guess if one's hobby is fiddling with emacs, then I could see why learning edebug and the profiler are valuable first steps. But I view emacs as merely a tool to get vastly more important work done. I just want it to stay out of my way. I have been using emacs for 20 years and never heard of edebug before today, and have never used the profiler. If I install some new package and it doesn't immediately work, I usual…

> I would rather chew glass So, you're making assumptions even without ever trying? You just decided it's hard/time consuming/worthless even though you have "never heard" about it? > I have been using emacs for 20 years Yeah, well. Like I said: Emacs is first and foremost a Lisp interpreter, "using Emacs" actually means dealing with Lisp. To what extent - it's everyone's own choice. I have seen too many stories of pe…

>You just decided it's hard/time consuming/worthless even though you have "never heard" about it?

You must mave misread what I wrote, because you're conflating two different statements.

>I have to move between different projects, in different PLs, dissimilar teams; I poke into various APIs; consume data in all sorts of formats

None of this requires elisp beyond the use-package incantations to install a given mode, which is only done a single time.

>It seems like you lack the notion of what it's like to literally shape your tools for your needs as they evolve.

My needs are already mostly satisfied by emacs. It is excellent at editing and composing text out of the box already. I have language servers for auto-completion. I have syntax highlighting. If I am mangling a text file I use the build in transient macro recording feature.

The editor itself is almost never the bottleneck in my work. Elisp is so unpleasant that I have zero desire to hack around in it for fun.

Re: Emacs, how it all started for me

#56

Earlier quoted context omitted.

I did. After learning the key bindings, I actually found a library book on a pre-CLisp dialect of lisp by some finnish authors and wrote a tool i later used to write my thesis in electrical engineering. The tool was parsing my matlab files and generated latex, which i then made into the final pdf, complete with formulaes and calculations. So instead of writing a decent thesis, i learned about makefiles, latex, emacs…

GGP's claim is emacs is better learned as a lisp machine than a text editor, which is akin to saying a monad is just a monoid in the category of endofunctors. In other words, it does a neophyte no good to see the matrix without having lived in it first. It's all one can manage learning emacs's editing primitives if you've never seen it before. Reminding them some (but not all!) of these primitives are in fact elisp e…

I have not forgotten my own "beginner's journey" - au contraire - I vividly remember it, and thus I'm sharing an admonition - so people wouldn't waste their time. Because I did. Besides, I have successfully mentored people from zero-to-hero and helped them learn Emacs.

My suggestion to focus on Elisp is not like tech-splaining monads, and Lisp is not that difficult. Definitely not even in the same league of difficulty as Haskell. It is an astoundingly simple language. And yet people just ignore it for years, clueless of what they're missing.

Re: Emacs, how it all started for me

#57

A bit of advice to people that have the urge to try Emacs. Do not use a distribution. Yes I know.. you have read that before and then you used Doom or Spacemacs anyways. That's me in the past. And it never worked out for me. I always ended up trying to configure things and the whole setup was too complex for me, so I failed. Over the last 10 years I have been a heavy (n)vim user but I tried Emacs multiple times. Alwa…

GNU Emacs from gnu.org is usable without an init.el or any other customization.

Every line in init.el is something that you have to maintain and move with you.

And when you're using someone else's computer, their init.el won't be what you expect.

Re: Emacs, how it all started for me

#58

Earlier quoted context omitted.

> I would rather chew glass So, you're making assumptions even without ever trying? You just decided it's hard/time consuming/worthless even though you have "never heard" about it? > I have been using emacs for 20 years Yeah, well. Like I said: Emacs is first and foremost a Lisp interpreter, "using Emacs" actually means dealing with Lisp. To what extent - it's everyone's own choice. I have seen too many stories of pe…

>You just decided it's hard/time consuming/worthless even though you have "never heard" about it? You must mave misread what I wrote, because you're conflating two different statements. >I have to move between different projects, in different PLs, dissimilar teams; I poke into various APIs; consume data in all sorts of formats None of this requires elisp beyond the use-package incantations to install a given mode, wh…

> I have zero desire to hack around in it for fun

You just sit here stiff-necked without even the slightest clue of what I'm talking about. I don't hack for "fun", I hack with a purpose. Here's a practical anecdote. I was pair programming with Matthew over Zoom and he was showing me certain things. He would navigate to different sites, switch between terminal and his editor, run some scripts etc. I just couldn't bear interrupting him all the time saying, "hey, hey, hey, slow down, please. I'm trying to take notes here... Hey, can you share this link?...", etc. So that bothered me for a minute. I sacrificed my lunch break, sat down and figured that out. I wrote a tiny function that checks if the last thing in the clipboard is an image and sends it to tesseract CLI for OCRing. Took me not even fifteen minutes. Now I can just select an area of my screen (with Flameshot), and the text pops into an Emacs buffer.

This feature never existed - not in a package, not in anyone's config on GitHub. It's a specific problem that I quickly solved for my own needs. Could I have done this with Python, Bash, or AWK? Sure, why not? The thing is - before Emacs distilled this mindset into me, I wouldn't even have bothered about it. It wouldn't be a bottleneck I would ever think of noticing. And that is just a single example of hundreds of different things Emacs helps me with. Anything text-related invariably ends up being routed through Emacs, and majority of programmers have little idea how empowering this could be. I consume much of the content through Emacs - I read HN threads in Emacs. Also Slack, Reddit, Jira, my browser history and other things. This very comment is being typed in Emacs.

I have seen both of these worlds. You are sharing just one side of it, of which I am very familiar. So why don't you take my word for it and give it a try, instead of arguing that the side (you have never even experienced) is not worth your attention? What do you have to lose anyway?

Re: Emacs, how it all started for me

#59

Earlier quoted context omitted.

Agreed. Work through the Emacs tutorial to find out how vanilla editing works. Then look at buffer management, window management (Emacs 'windows' are actually more like frames in other apps) and simple tooling like search. Then start to tweak some settings in your config, find the bare minimum of packages you need to scratch your worst itches (for me: Vertico, Corfu, Avy and Dumb Jump). Finally, figure out tree-sitte…

Yep. I also forgot one important point. If you come from vim, like myself, you should probably use evil-mode right from the start and then just get used to a few important Emacs shortcuts over time and use them additionally to your evil keymaps. No one will ever convince me that there is something better than vim mode for editing text (or comparable modal editors).

I was a huge skeptic of evil-mode/modal editing for about a decade and a half. Then I bit the bullet when I switched to Spacemacs in ~2017 and I am a full convert. The "change-in-" functionality alone is worth the price of admission/climbing the learning curve; the rest is a huge bonus!

Re: Emacs, how it all started for me

#60
post #44

If you find yourself wanting to try out Emacs but are (understandably) turned off by some of its archaic defaults, I encourage you to check out my Emacs Bedrock [1] project. It is not a framework like Doom Emacs or Spacemacs. Instead, it's just a bunch of better defaults, plus some example configuration for some of the most popular packages. It's meant to just be a starting point, and not a framework to keep up-to-da…

> The only problem is that, in the name of not breaking backwards-compatibility (or something like that), the archaic defaults have remained. As a user since '97, I've often felt that this philosophy is entirely, well, backwards. I know how to read the release notes to learn of such changes and how to edit my personal init.el file to revert a setting if I don't like the new default. As long as no one takes away the o…

One solution that I really like for that is having the user configuration carry some kind of version number.

Then, to change a default from `old` to `new`, you instead change it to `configVersion >= x ? new : old`, and add some kind of non-fatal warning in the else case instructing users to set their config to `old` explicitly.

You don't break people's setups, they become aware of new defaults without reading release notes, and new users get the new defaults.

Post reply on HN