Live data from Hacker News

Emacs Bedrock: A minimal Emacs starter kit

sr.ht

71–80 of 132 posts

Re: Emacs Bedrock: A minimal Emacs starter kit

#71

Earlier quoted context omitted.

I own no windows machines but afaik it should run OK on windows. Emacs is a pretty good application platform that glosses over lots of OS inconsistencies. :)

I heard that some addons (like magit and vterm) run much worse on Windows than on Unix-like. That's my main concern. Maybe it's an outdated view tho.

Magit worked perfectly fine when I was using Emacs on Windows, but nowadays I run it with gWSL on the only windows machine I own.

Re: Emacs Bedrock: A minimal Emacs starter kit

#72
post #44

Earlier quoted context omitted.

First, for every IDE experience you definitely need flycheck mode: (use-package flycheck :diminish flycheck-mode :init (global-flycheck-mode)) This will underline syntax errors for you. (It'll use the language server as a backend once lsp-mode runs.) Next we install and set up "company-mode" for simple autocompletion. Basically, it starts the (minor) company mode after starting "lsp-mode", sets up key bindings and re…

Sounds great, I love time-consumingly setting up a bunch of fragile config for a less-than-fully-functional result instead of a 1-click installation of any number of IDEs that require none of that and work better and more completely in every way

Well, Emacs is all about choice and flexibility -- not 1-click convenience. If you do not want to spend some time learning your tool, it's definitely not for you. I respect that.

See, if you hate "lsp-mode" and "lsp-ui" you can go for the more minimal "eglot.el". Similarly, you can exchange "company.el" with "corfu.el" if you prefer the latter. It's all about freedom of choice. Emacs means to many people different things.

The code I pasted, however, are standard "use-package" expressions that work the same for every Emacs extension. And all of the configuration options you've got for an extension are usually well documented on the corresponding project page (at least for matured ones). And if you look closely, I haven't actually made a lot of modifications -- so the lines actually boil down to just installing five extensions.

While language ecosystems evolve so is Emacs and correspondingly my Emacs configuration. Sometimes you'll need to look into new alternatives. Especially in web development I'll probably need to switch over to "javascript-ts-mode" for JS and "typescript-ts-mode" for TS soon. For my configuration this will mean I'll remove the lines corresponding to "web-mode" and modify my language server client like this:

  (use-package lsp-mode
    :commands (lsp lsp-deferred)
    :hook
    (lsp-mode . gernoti/lsp-mode-setup)
  - (js-mode . lsp-deferred)
  - (typescript-mode . lsp-deferred)
  - ;; We only turn lsp-mode on if web-mode runs in JSX or TSX mode.
  - (web-mode . gernoti/lsp-deferred-maybe-jsx)
  + (js-ts-mode . lsp-deferred)
  + (typescript-ts-mode . lsp-deferred)
    :init
    (setq lsp-keymap-prefix "C-c l")  ;; Or 'C-l', 's-l'
    :config
    ;; You want this if you want to discover all lsp mode's goodies.
    ;; Though I found I actually don't use many features, really.
    (lsp-enable-which-key-integration t))
That's about it.

So it's not like I have to trash all of my configuration every other week. But it certainly looks a bit obscure to someone who is not familiar with ELISP. For me learning that to some extent has certainly has paid off as I did not have to relearn a new editor every couple of years.

Re: Emacs Bedrock: A minimal Emacs starter kit

#73
post #10

yes But can someone please tell me how to get typescript auto complete like vscode (eg auto import, linting) that also works for jsx. running tests. oh and simple auto complete. i couldn’t get that to work with https://github.com/viksit/prelude/blob/master/init.el as someone else said - need to get work done :))

I use tide-mode for Typescript/TSX and it works perfectly. All it needs is a package.json file to find the ts server.

Re: Emacs Bedrock: A minimal Emacs starter kit

#74
post #62
post #3

If you’re running emacs 29+ I posit you get less value out of a starter kit or framework than beforehand. Treesitter is baked in for syntax, eglot is baked in for language servers (intellisense), project and tab-bar give you scoped workspaces. use-package is baked in for downloading and configuring dependencies. Modus-themes are also built in now, so you can use modus-operandi and modus-vivendi out of the box. Two in…

Oh wow thanks for this. Just deleted a bunch of config and packages.

tab-bar is what I've wanted for so long without knowing it!

Re: Emacs Bedrock: A minimal Emacs starter kit

#75

Earlier quoted context omitted.

> Emacs is a relic People were saying that when I started using it, over 20 years ago. Apparently I was supposed to be using Notepad++ or some MS program du jour which no one remembers now. I wouldn't be surprised if I keep using it for the rest of my career. > it can take weeks of configuring More like decades ;) > to get it anywhere near as productive as something like VS Code or Jetbrains IDE Nope - it's significa…

Processing text is like 10% of time and 5% of effort of software development. emacs fails at basic core IDE features like semantic location of variable declaration and usage out of the box

> semantic location of variable declaration

This can only work if the editor internalizes the corresponding language. That does not scale for all languages available.

That’s exactly what the language server protocol is all about (and certainly what parsers like tree sitter are there for). Emacs can connect to those and acquire semantic analysis capabilities. The degree to which such a semantic language features will work for you will also depend strongly on the language, of course.

If you use a commercial editor it’ll jump start you for the popular languages. But, say, you wanted to program in Raku or Scheme you’ll also going to need to fiddle around.

Re: Emacs Bedrock: A minimal Emacs starter kit

#76
post #29

Earlier quoted context omitted.

I'm a casual emacs user for 30 years. Decided to give prelude a try after reading this... 2 minutes in: "" keybinding is discouraged! Use instead." Ok, well, then. Time to uninstall.

It's very much worth taking it as true. I was in the same position as you initially and it took a week or two to get the muscle memory but it's so smooth to navigate using keys near the home row compared to arrow keys.

the keys prelude pushes you towards with guru-mode are not the ones on the home row (hjkl, which is justifiable) but keys originally chosen for english words: n(ext), p(revious), f(orward), b(ack). It's mystifying, these aren't ergonomic at all, but just memnomics to help teach navigation _in the absence of clearly marked arrow keys_. So if anything, rather than being for gurus, these are keys for beginners.

Dug out a quote from Guy Steele on why the key bindings in emacs got this way:

    [...] not being a human-factors guy at all, I 
    didn't think at all about convenience for touch typists. I was 
    principally concerned with mnemonic value. And so that's why Meta-C and 
    Meta-L and Meta-U stand for capitalize and lowercase and uppercase.
(from Peter Siebel's Coders At Work, quoted here https://classiccmp.org/pipermail/cctech/2015-August/008498.h...)

Re: Emacs Bedrock: A minimal Emacs starter kit

#77

Well, I haven't updated my configuration in many years... I've never heard of any of the extra packages this kit installs outside of Avy (but I use ace-jump). Some do look nice though. One thing I feel is a strange one to optimize for: startup times. Typical Emacs use is to start it once when the graphical interface of the system starts, and never turn it off. What's even the point of this optimization?

Because people outside the Emacs world generally launch an editor from scratch almost every time they want to edit a particular file. Even such monstrosities like VisuatStudio, MS Office and LibreOffice take just some seconds to start on my very old PC. If Emacs takes longer that's a serious turn-off for anybody who doesn't live in Emacs already.

Re: Emacs Bedrock: A minimal Emacs starter kit

#78
post #56

Earlier quoted context omitted.

> I'd love to see what you're referring to There is Google, you know. https://ergoemacs.github.io/ It's the biggest thing to happen to Emacs in 30 years. That is presumably why all the beardies ignore it. I used to know 20-30 totally different editors. That all went away circa 1990 when the CUA UI swept the world. https://en.wikipedia.org/wiki/IBM_Common_User_Access All late-era DOS stuff, and Windows >= 3.x, Mac OS…

>It's the biggest thing to happen to Emacs in 30 years. That is presumably why all the beardies ignore it. Clearly bearing the costs of a wrong decision - learn vim keybindings 30 years ago, and use it in every popular editor and ide, including emacs, ever since. Only half-joking.

:-)

That's sort of the point.

I learned all those editors (VMS EDT and RPED and LocoScript and Edlin and WordStar and WordPerfect and DisplayWrite and MultiMate and loads of BASIC editors, including the very strange RISC OS one, with two independent cursors) before I ever saw Vi for the first time, which was on SCO Xenix in about 1989 or so.

Vi was just another weird editor to me, a supercharged Edlin and you'd have to be mad to love Edlin.

So I learned the bare rudiments and moved on. Then a wave of standardisation happened across the industry, and I surfed it and it was great. Suddenly all mainstream editors used the same UI and it was so much easier.

Then [record scratch, fast forward] in 2014 I got a job in a Linux vendor and discovered all these rabid Vim enthusiasts in the 21st century. I was amazed. Later I got a job in a _different_ Linux vendor, where we had a significant presences of Emacs fans.

I never thought I'd meet keen Vi(m) users who weren't born yet when MS-DOS 5 got a full screen editor. I thought all that nastiness had gone away.

So, yes, there are these 2 camps who learned one set of UI, way back when, and love it: Vi users and Emacs users. I am not saying either is wrong. But there is another camp that doesn't know it's a camp: the millions of unknowing CUA users.

Emacs is meant to be the ultimate in configurability. Well configure it to look like an editor from the 1990s instead of the 1970s, and I'll try it.

But I'm not learning another new 1970s editor now, after 40 years of this stuff. Hard no.

I am not a programmer. I don't care how good it is for programmers. I write human language. I need an editor for that: Markdown, these days, mainly.

Re: Emacs Bedrock: A minimal Emacs starter kit

#79
post #70
post #56

Earlier quoted context omitted.

> I'd love to see what you're referring to There is Google, you know. https://ergoemacs.github.io/ It's the biggest thing to happen to Emacs in 30 years. That is presumably why all the beardies ignore it. I used to know 20-30 totally different editors. That all went away circa 1990 when the CUA UI swept the world. https://en.wikipedia.org/wiki/IBM_Common_User_Access All late-era DOS stuff, and Windows >= 3.x, Mac OS…

> All late-era DOS stuff, and Windows >= 3.x, Mac OS X and ~all Linux GUIs are compliant. CUA was "influenced" by the old Mac OS Human Interface Guide mid/end 80s. The influence on macOS (as it is called now) is tiny. macOS is mostly not compliant.

Oh, yes, absolutely.

CUA was 100% clearly IBM's response to the Apple HIG. But it was a good one and mostly it's won. It did adopt Apple's Ctrl-X/C/V for cut/copy/paste, but that's about all.

Mac OS X isn't very compliant, no, but it's quite a bit closer than Classic MacOS was, and I find that very welcome. The menus, the hotkeys, the editing keys and so on mostly just work. All you do is use Cmd instead of Ctrl and it becomes invisible.

Re: Emacs Bedrock: A minimal Emacs starter kit

#80
post #57

Emacs is a relic, it can take weeks of configuring to get it anywhere near as productive as something like VS Code or Jetbrains IDEs. If you want to procrastinate for a few months it's the perfect tool.

> Emacs is a relic It's true. The thing is, so is Unix. And yet we use it. So is macOS because it's a Unix™. So is Windows, it's just a newer relic (from 1993 instead of ~1973). We don't have anything left that are not relics any more. The relics got good enough that we stopped trying.

I agree but also feel like there is so much to improve in editor spaces but current “defaults” are just good enough. I like the keyboard example - current staggered keyboard layout is only used because we had physical typewriters that needed staggered keys because of physical constraints. But our fingers aren’t really good at going left and right, even slight movement means that you need to move your whole wrist left or right. Also keeping your wrists so close to each other is painful and not natural, definitely less comfortable than keeping them at shoulder distance. But the default is just good enough and too strong. We have split ortho keyboard but they are niche. So any revolution in editors will be stopped by the fact that too many people are comfortable enough with current default. And I’m honestly hungry for some revolution here
Post reply on HN