reddit / emacs

Are we living in the golden age of Emacs?

tdavey · 2022-04-26 20:03
I've been using Emacs for 11 years. I'm not a programmer but an ordinary business-type who values Emacs mainly for Org. However, I have taught myself Elisp and have gone down the rabbit hole of customizing Emacs extensively. It's my sense that the Emacs "ecosystem" is growing and innovating at a very healthy clip. The richness of ELPA, the frequency of new releases from the core developers, and the adoption of Emacs/Org in places like academia -- all these are examples. This appears to be happening in the world of professional coding too, despite very capable competitors like VS Code. Here's a recent quote from Jon Sander's blog, [irreal.org](https://irreal.org): "The fact — as evidenced by Org-mode and Magit — is that Emacs is at the forefront of editor/IDE development." Ponder that: "at the forefront." I have no data on the actual number of Emacs users, or on the rate of production of new packages or counts of new lines of code, but it's my anecdotal sense that Emacs is modernizing and thriving. Not least, its reach is extending beyond the English-speaking world. Is this the golden age of Emacs? Was it ever better than now?
pathemata · 2022-04-26 20:18
I think is more of a steady progression where things are built/improved on previous work.
lebensterben · 2022-04-26 20:22
lsp and tree-sitter changed the entire ecosystem of editors.
zupatol · 2022-04-26 20:40
I've been using it on and off since twenty years but I found things improving fast in the last ten years. I never wrote much elisp or spent much time configuring or exploring packages, so the single biggest step forward was switching to doom emacs. I'm really hooked now.
yep808 · 2022-04-26 20:42
LSP is the real game changer. Hats off to Microsoft despite what people might hold against the company.
ensudo · 2022-04-26 20:47
doom + native comp for me has been a game changer
tty-tourist · 2022-04-26 20:50
Could you expand on this? How and when did these things change the ecosystem? Genuinely curious as I’m not entirely sure what either of them are. Thanks
tdavey · 2022-04-26 20:56
Yes, thanks. I forgot to mention the multiple Emacs "distributions" like Prelude and Doom. They didn't exist when I picked up Emacs in 2011. Today's remarkable proliferation of YouTube tutorials is another part of this trend. What I remember from 2011 were merely blog posts offering tips on "better Emacs defaults." Steve Yegge's "Drunken Blog Rants" about Emacs were memorable. Then I found Phil Hagelberg's "Emacs Starter Kit" and began learning Elisp from it.
EricIO · 2022-04-26 20:59
lsp is a way to talk to language servers in a standardized way. The language server provides IDE-like features which can then be plugged into any extendable editor quite easily. So instead of a c++-ide-mode or go-ide mode etc we just find a nice language server and plug it into lsp mode. Tree sitter (not a user yet so might get some stuff wrong) is basically an incremental parser that allows more efficient highlighting etc.
shaggy_amreeki · 2022-04-26 21:01
People should hold against large corporations. I guess mostly individuals in the company wanted this to be OSS and they had to get past managers who saw money in LSP and had to be convinced to open source it.
lebensterben · 2022-04-26 21:02
lsp abstract away editor features such as completion, code lens, code action, debugger integration (via dap). tree-sitter provides universal framework for generating AST and is used for syntax highlighting. with these developers only need to focus on developing those **editor-agnostic** features and they should work for all editors! --- okay something more than this. LSP and tree-sitter frameworks really suits the OSS co-operation. Developers on specific languages don't need knowledge on how the editors work, they only contribute their knowledge of the language syntax/AST. Editor maintainers don't need to worry about the peculiarities of various languages. They only need to maintain a compatibility layer that works with LSP/tree-sitter.
Hamilton950B · 2022-04-26 21:11
I've been using emacs since about 1980. At that time the "elite" programmers used emacs, everyone else used whatever came with their OS. Also at that time there was a pronounced east/west coast, MIT/Stanford divide, and emacs was seen as "east coast". Things changed when Sun became popular around 1983. Bill Joy wrote much of the early Sun software, including vi, which became dominant until about 1990 when gnu emacs came along. After that emacs was the choice of the free software advocates, but they were in the minority. Most people used vi. Up until about 5 or 10 years ago most of the emacs users I worked with had been using it since the 1990s. I would definitely say that in the last five years there has been a flood of new emacs users, people who weren't even coding or maybe even born yet in the 1990s. It's gratifying to see. (My perspective is that of a professional programmer, I'm sure things are different in other fields)
SequentialDesign · 2022-04-26 21:23
this is only the beginning. mark my words: Emacs is going to conquer the world. but to answer your question: I don't really know. I just started using it last year. I'm totally in love.
No-Psychology-1351 · 2022-04-26 21:24
May I ask you, if emacs was seen as "east coast", what program was used mostly in the west coast?
Hamilton950B · 2022-04-26 21:40
I don't know, I was an east coast coder. By the time I was aware of the west coast, they were all using vi. Before that WAIS (an OS) at Stanford had an editor that I think influenced the design of emacs. There was also the Rand Editor (re) and of course the editor used on the Xerox family of computers, whatever that was called.
anamexis · 2022-04-26 21:40
Do you have a source for that? I thought LSP was part of a pretty broad open-source-first initiative, along with VS Code and TypeScript
doomvox · 2022-04-26 21:48
> Also at that time there was a pronounced east/west coast, MIT/Stanford divide, and emacs was seen as "east coast". These east and west divisions tend to break down in the computer field, where Stanford and MIT were typically on the same side-- when I was at Stanford in the mid-80s they would teach everyone-- I mean *everyone*, lit majors, etc-- to use emacs if they wanted to use the main computer systems.
nnomae · 2022-04-26 21:50
https://microsoft.github.io/language-server-protocol/ There's the official LSP github repo hosted at microsoft.github.io. It is an open source project but it's initial development was done by Microsoft for use in Visual Studio Code.
doomvox · 2022-04-26 21:52
> Yes, thanks. I forgot to mention the multiple Emacs "distributions" like Prelude and Doom. And somewhat weirdly-- from my point of view-- I think those were key things behind the current upswing in interest in emacs. It seems strange to me, because I used to tell vi people about stuff like evil mode, but the need to type a couple of commands or add a few lines to their .emacs was enough to keep them from ever experimenting with it. It turns out if you just hand them a "remixed" version that gives them an out-of-box experience closer to what they expect, they dive right in. So that lowered the bar to entry for a lot of people, and things like org mode and magit provided the carrots.
grimman · 2022-04-26 21:58
I've had the immense fortune of jumping on Emacs *and* Linux at times when things were really kicking off. I keep threatening people at work that I'll make Emacs mandatory when I get that kind of decision making power. ;) Speaking seriously though, apart from org-mode I don't really use Emacs for anything that other editors can't do in a manner that is much more familiar to most, so I am unfortunately (or perhaps fortunately?) not the ideal person to demonstrate its strengths. The fact that I'm now familiar with Emacs, and that I now actually see things happening... it certainly makes it feel like a golden age. But my perspective has shifted, and I'm far from an impartial observer.
16rlut3Br · 2022-04-26 22:10
> Is this the golden age of Emacs? Was it ever better than now? I don't think so. The infrastructure work, the sharing platforms and the amount of packages is now higher than ever. The maintainers are doing a terrific work with every version, and stuff like Mickey Petersen book will bring in a lot more in the next years. Platforms like YouTube help to spread the "gospel" further and to never reached audiences before. I'm at 20 years of using Emacs professionally now, and I can't find any reason to stop.
maskedvandal · 2022-04-26 22:43
Very interesting post. Which emacs were you using in 1980? Was it the TECO version I've heard so much about? I started with GNU emacs around 1998-99. Been a proud member of the cult ever since.
anamexis · 2022-04-26 23:00
Right, but VS Code is also open source
sickofthisshit · 2022-04-26 23:24
I'm going to hijack this discussion with my feeling that the front-end to Emacs needs a heavy re-think. My fantasy is that I would have my Emacs as a long-running server with a remotely-accessible (handwave some authentication and authorization mechanism here) server that renders a (Javascript?) Emacs frame into my web browser. Instead, I've got the same old terminal access that works pretty much the same as it did in the 1990s, plus GUI frontends that struggle to act natural. I've been using Emacs for about 30 years now, but I'm finding more and more that cloud-based interactive editing experiences are getting better and Emacs doesn't speak to that as far as I can tell.
[deleted] · 2022-04-26 23:29
Indeed. I’ve been using Emacs since 2020 and doubt if I’ll ever switch from Doom to vanilla by choice. As much of a perverse appeal as it holds for me to hack my own config from whole cloth, Henrik is doing such a good job that there’s really no need to start from the ground up.
nnomae · 2022-04-26 23:47
Yes, but VS Code also started as a Microsoft project and is Microsoft still maintain it as a community project and are actively developing it.
Hamilton950B · 2022-04-26 23:48
Gosling emacs. I just looked it up, it came out in 1981. I had played around with the teco version before that but had not used it for serious work.
anamexis · 2022-04-26 23:58
Yes, and there's nothing wrong with that (in fact it's a good thing)
gravygrowinggreen · 2022-04-27 00:10
and? Open source benefits everyone, regardless of who develops the code.
mklsls · 2022-04-27 00:20
I don't if Emacs is in its golden age or not, but I think it's in the best shape ever. I were a sporadic emacs user back in 2005 or so. Along the years I tried vanilla, spacemacs, centaur, Purcell config, scimax... As anyone I jumped between sublime, atom, vscode, texstudio, rstudio, and a long list of todo apps to keep everything in order. Nothing made me feel happy. The real game changer was in 2020 when I discover doom-emacs, magit and org-roam. With org-roam I started to discover the full power of org-mode. I think that this was the inflection point. Discovering how org-mode can replace a bunch of software to make todo lists, manage calendars and even authoring documents. In particular, the doom's discord is very friendly and I learn a lot there. There I learned about evil, lsp, tramp, etc. I can't use another editor anymore.
nnomae · 2022-04-27 00:50
I'm not denying that at all. Open source is great. The guy was asking for a source on whether LSP was a Microsoft project or not, when I provided one and mentioned it was developed as part of VS Code he countered by saying that was an open source project. I'm just pointing out that both projects came from and are still substantially developed by Microsoft. It's fantastic that they are open source, but credit where credit is due, they are both projects that came from Microsoft originally and are still run by Microsoft.
kamui78 · 2022-04-27 00:51
The only thing I would like is some kind of multi-threading. I have long org notes with a lot of math notation written in latex. From time to time I rebuild the latex fragments to clean up a bit. During those times Emacs is blocked. I cannot do anything else, besides starting another instance. My solution is to delegate these tasks to when I do not need Emacs. But when I want to open the notes on another machine, where I did not rebuild the latex fragments, the problem is still there. There is a plugin that can rebuild the fragments in parallel but it causes Emacs to stutter. I have explored EXWM a bit and I feel it has an unbelievable potential. But you really risk to fall into this trap from time to time. And when Emacs is blocked, EXWM is blocked. So, for this reason I am still using i3, which is great but it is not integrated with Emacs like EXWM. I think the front end rewriting would be nice if that would mean having a more fluid and responsive experience, but that is not my main problem. My problem is that Emacs from time to time gets blocked by its own tasks, and when it happens it sucks. Yes, I know I can use Ctrl-G but I still need that task to be completed.
anamexis · 2022-04-27 01:05
Yes, absolutely. I wasn't disputing that they are projects owned by Microsoft, but they are open source, and it was part of a company-wide strategy to embrace open source. Anyone could fork LSP or VS Code if they didn't like the direction Microsoft was taking it.
jmhimara · 2022-04-27 01:15
Hard to say without data. For as long as there's org-mode, I will never stop using emacs. That said, I've been gravitating more towards VScode in the last couple of years for coding. It's simpler to set up and customizable enough for my needs. I've also found that lsp functionality works better there than in emacs. Maybe not better overall, but much better "out-of-the-box" experience.
gf3 · 2022-04-27 01:24
what? where are you getting this from? microsoft today is not the microsoft of the 90s
karthink · 2022-04-27 01:32
For smoother latex previews in org you can try [org-auctex](https://github.com/karthink/org-auctex). It's not done yet but I find it to be a big improvement. EDIT: Multi-threading will not help with org latex previews of large documents, the preview code is written under the assumption that you only have a couple of fragments. It needs a rewrite.
Michaelmrose · 2022-04-27 01:38
There are multiple meaningful ways to measure. Maximum utility in terms of what you can do. Number of users. Number of developers. Market share. Its possible to be a stronger and healthier ecosystem in the first 3 even if you lose ground in the 4th. Seems to be doing great to me.
chandaliergalaxy · 2022-04-27 02:36
I read mostly complaints about LSP in emacs though often attributed to the speed of LSP itself... but maybe I'm just seeing the vocal minority.
jqbr · 2022-04-27 02:38
>Was it ever better than now? By basic logic, no. But maybe the real golden age will be 20 years from now, or 50, or 2000 ...
jqbr · 2022-04-27 02:43
> the amount of packages is now higher than ever This is like saying that the record 100 meter dash is now faster than ever. Such things only go in one direction as a matter of basic logic.
jqbr · 2022-04-27 02:46
Seems obvious. People are going "the amount of packages is now higher than ever" as if anything else were possible. "The record 100 meter dash time is faster than ever--we're in the golden age of running!"
jqbr · 2022-04-27 02:48
You're welcome to write it. It won't happen otherwise.
yep808 · 2022-04-27 03:00
Encourage you to test it out and see what your experience is like. I wrote a blog post on this topic a while back if you're interested: https://ianyepan.github.io/posts/emacs-ide/
kamui78 · 2022-04-27 03:17
Unfortunately the assumption is wrong in my use case. I have tons of latex fragments, to the point that I am searching for alternatives just for the math notes. I assume org-auctex is your package. Am I correct? How do I install it? Is auxtex/preview-latex already present in Emacs 28? Thank you very much for your help.
flexibeast · 2022-04-27 03:26
There's been [Cloudmacs](https://www.reddit.com/r/emacs/comments/e1o6dz/cloudmacs_emacs_in_your_web_browser/) and [Spacemacs in the browser](https://github.com/syl20bnr/spacemacs/issues/8634).
karthink · 2022-04-27 03:53
`org-auctex` is indeed my package. Auctex is not part of Emacs 28, so you'll have to install it with `package-install` or your preferred method (preview-latex is included with auctex). To install `org-auctex`, you'll have to clone the repo and load `org-auctex.el` in Emacs. The usage instructions are in the readme, your existing preview keybindings will work.
jigarthanda-paal · 2022-04-27 03:57
I adopted emacs in 2018. Can't believe it's 4 years since that fateful decision. If not for Spacemacs, Doom or LSP I would have given up a while ago
Hooxen · 2022-04-27 04:00
the scary thing is that emacs is at such a good state now with native compilation and many of the things mentioned above that can it go much higher? i can’t imagine what much better than this even looks like!
kamui78 · 2022-04-27 04:01
Thank you. Indeed, I had org-auctex among my packages.
karthink · 2022-04-27 05:01
- Better garbage collector, - concurrency and/or multi-threading with worker threads, - better html rendering, - a consistent API so every package (even the included ones) doesn't reinvent the wheel in idiosyncratic ways, - display engine improvements for images so they don't have to be in one line, - better overlay performance, - better support for embedding multimedia than xwidget These are the ones I can think of off the top of my head. There are plenty of points of daily friction to be addressed.
trimorphic · 2022-04-27 05:03
> My fantasy is that I would have my Emacs as a long-running server with a remotely-accessible (handwave some authentication and authorization mechanism here) server that renders a (Javascript?) Emacs frame into my web browser. I suspect that if it happens it'll happen with web assembly.
konrad1977 · 2022-04-27 05:27
Ive been coding for 25 years, started using Emacs in December 2021 for the first time. I'm slowly learning Elisp and I am writing my own needed packages now. I am really suprised how easy it is to customize Emacs to your needs. I really love the multiple minor-modes you can add to make your life easier. I started using Emacs beacause I wanted to learn something new, as a challenge. I'm living my life as a iOS developer and the only thing I dont have right now is support for debugging, DAP/LSP only works with swift packages. I really wish that I would switched to Emacs earlier.
kovrik · 2022-04-27 05:29
Could you please provide more info? I do understand what LSP is, do understand what tree-sitter is. But what’s the end result? Last time I checked, you have to install npm, then tree-sitter, then Emacs tree-sitter package, then download grammars for each language, then LSP server (?) implementation for each language, then integrate it all together. Looks overly complicated and not user friendly at all. I could not find any sane and straightforward tutorial on how to set it up for, say, Java language. Am I missing something? Could you please advise?
crochet_du_gauche · 2022-04-27 05:35
> The guy was asking for a source on whether LSP was a Microsoft project or not No, he was asking for a source on: > mostly individuals in the company wanted this to be OSS and they had to get past managers who saw money in LSP and had to be convinced to open source it.
tapesales · 2022-04-27 05:53
It is really difficult to draw conclusions for anecdotal data. Our hopes and desires taint our conclusions and goad us into hopeful thinking. The reality is that emacs will indeed outlast any other text editor, as it has done since its inception. There is a small group of computer users who simply cannot do without the freedom and flexibility offered by emacs. This is a fact. I don't know whether this subset is increasing out of proportion to the number of people using computers though. I think it will remain like this: + people who are normal will use something like VSCode, atom, sublime text and call it a day. They aren't really worried about things and will get along just fine. + a small group (10% of those trying a 'popular IDE') will become frustrated with how limited these programs are and will search for something else. Most of these people will happen upon vim, but most will see emacs as a meme, and the editor wars are just a funny backdrop. Vim is cemented as the thing you go to if you're frustrated with modern IDEs. Unix-fetishism and plain-text/terminal nostalgia will drive people to vim. + Then we come to the emacs people. Not normal in any sense, if we're talking about computer users. These are the people who demand absolute control over their computing environment, are not dogmatic as to 'unix ideals' and who are willing to climb the massive learning curve that comes with adopting a 40 year old text OS. We are talking about a subset of a subset of computer users. Emacs demands that you put in many hours to reap its fruits. Hours that most users do not want to commit, since they do not weigh it as being beneficial to them. Emacs is just a meme to most people. I don't think this should be lamented. A lean community of zealots is great. Once a community grows too big, it sucks in all the people who are net negatives and don't contribute anything. Emacs has a smaller intake of people, since it essentially has to initiate every one of them to adhere to the tacit rules that have preserved it for all these decades. It's like a cult. I do not see mass adoption of emacs happening, nor do I think it would be good for emacs.
tapesales · 2022-04-27 05:56
Sounds cool. I like to use my iPad to SSH into emacs running on my home computer sometimes. Its similar to what you're after, but obviously not the same. You may like LEM, which could be ported to do this, I imagine.
centzon400 · 2022-04-27 06:04
> > > I can't use another editor anymore. When you sit at someone else's box and you `M-w` `C-y` and spend a couple of seconds wondering why nothing happened before letting out an "Oh. Yeah." .…
Rotatop · 2022-04-27 06:07
> what s the end result ? It is that emacs focus solely on text editor problems and not on code parsing problèms. Unix philosophy : one program that do one things and communicate with others. So core developpers are not busy on 1M problem, just 10K :) To install tree sitter, in doom emacs : ;; Packages el (package! tree-sitter) (package! tree-sitter-langs) ; then doom sync / update ; Config.el (use-package! tree-sitter :config (require 'tree-sitter-langs) (global-tree-sitter-mode) (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
shaggy_amreeki · 2022-04-27 06:11
Standard corporate practice. Corporations don't exist to make shit for free.
JohnDoe365 · 2022-04-27 06:32
>Tree sitter (not a user yet so might get some stuff wrong) is basically an incremental parser that allows more efficient highlighting etc. It's more than that though. As treesitter semantically understands the content, you can do things like _select the surrounding object_ and from thereon _expand selection to the surrounding object_ https://github.com/emacs-tree-sitter/elisp-tree-sitter/issues/20 I am not using this one either but I think there is already a working package to make use of this, one specifically for evil-mode and onther generic one, no links unfortunatelly.
noman_032018 · 2022-04-27 06:43
I feel that it's in a relatively safe position, as its main purpose is essentially to save Microsoft from having to actually work on language support for their editor by allowing the externalization of that concern. It wouldn't be practical for them to compromise that. edit: Why the downvotes? It's true. While the resulting protocol and standard is open (and will likely keep being used even if they were to drop it), the fundamental goal is to optimize ROE and profit on *no* effort of your own to have your editor support new languages is a pretty good investment.
kovrik · 2022-04-27 07:23
Thanks. So what would happen if I put that into my config?
tty-tourist · 2022-04-27 07:27
"Coding in my east coast ways, While drinking west coast IPAs" Someone should write that rap song.
Kaligule · 2022-04-27 08:24
I recently managed to get lsp working (not that hard to do honestly) and it is _amazing_. I feel totally confident comparing emacs with all the fancy IDEs out there. I didn't write about it anywhere, there is just nothing to say then: Thank you, it is great.
Kaligule · 2022-04-27 08:27
Only if you count in dead packages that are not maintained anymore.
ramin-honary-xc · 2022-04-27 08:31
Is this a golden-age? Not really. I can remember a time when every new programming language always had syntax highlighting and REPL interaction modes available in Emacs before any other editor because every programming language designer tended to use Emacs. Nowadays, this isn't the case, and LSP and Tree Sitter have made it so anyone can use any editor at all and still have access to a wide range of IDE-like tools. This is good, because now people have a choice of what programmable editor they want to use, and they can choose based on what language they want to program their editor in, and still have the same features and functionality as anyone else. But I think Emacs is still one of the best programmable editors. It has always managed to attract some very bright and dedicated maintainers who believe in the free software philosophy. And Emacs still is, at it's core, a Lisp programming environment, which is still one of the best programming languages to have ever been invented. Lisp has never managed to become as popular as other programming languages, but with each new generation of programmers there emerges a clique of revolutionaries who rediscover the timeless minimalism of the Lisp language, and these people always end up making their way to Emacs because of it's free software philosophy, because of the vibrant community around it, and because Emacs is the oldest and most well-maintained programming tool in which they can compose new workflows in Lisp. The byproduct of their craft is the Lisp package ecosystem, which has encoded the wisdom of the workflows that they have developed for themselves which other non-coders often discover to be useful to them. It is far from perfect. But even with it's shortcomings, Emacs provides so much more to users than all of these modern novelties in terms of being able to quickly and easily view, edit, and manipulate buffers of data (especially text data) either manually or programmatically.
Crevetolog · 2022-04-27 09:06
I've had too much trouble to setup LSP within emacs and never succeeded in having a stable experience without some crashes / huge freezes. Finally I almost totally stopped programming in emacs except for customizing my emacs setup because this instable experience was driving me crazy during my working hours. This made me switch to vscode on this topic because it's more mature, stable and performant than within emacs IMO. I tried to avoid this for a long time but after you try it in vscode I think there's no coming back to emacs, at least with LSP. I didn't tried tree-sitter and I'm curious to how stable tree-sitter is and how it behaves compared to the vscode experience but I'm not sure that's comparable.
meain · 2022-04-27 09:06
I have a package which lets you target language level constructs like functions, classes, conditionals etc for text objects using tree-sitter. This is specific to evil mode as of now, though making it work outside evil would not be that big an effort. https://github.com/meain/evil-textobj-tree-sitter
Trout_Tickler · 2022-04-27 09:22
For sure. There's still an unfortunate stigma (a senior member of a place I have worked at describes emacs as "more effort for less features") but it's the best time to be an emacser.
RemcoProgrammer · 2022-04-27 09:45
IDEs still have some interesting things that I don't know how to do in Emacs: refactoring tools (like extract method, or renaming something and all references to it), and a keystroke to go from a method immediately to the method's tests.
RemcoProgrammer · 2022-04-27 09:47
The end result is that when, say, Microsoft adds smarter code completion for Typescript to VS Code, it's automatically in Emacs too. Because they add it to the server.
Heikkiket · 2022-04-27 09:54
I use these with an Emacs distribution. My choice is Spacemacs (develop-branch). After Emacs 27 and native JSON parsing, things changed quite a bit faster. After Emacs 28 this spring everything is super fast and responsive. I really think comparing VS Code to Emacs distributions like Spacemacs or Doom makes much more sense than comparing VS Code with vanilla Emacs. So if it has been few years since you last tried it might be a good idea to re-try. Things have progressed a lot since I started with Emacs in 2019.
AuroraDraco · 2022-04-27 09:58
I don't know, not a big fun of cloud based editors myself and I think a lot of people agree with me. However, you are free to write such behaviour yourself
sweetyhoneybee · 2022-04-27 10:44
Think about structural editing (or paredit/smartparens), but for every language, not just parentheses-happy ones.
chandaliergalaxy · 2022-04-27 11:15
VERY nice thanks a lot.
LordOfSwines · 2022-04-27 11:16
Like this: [https://github.com/ethan-leba/tree-edit](https://github.com/ethan-leba/tree-edit)
wargxs · 2022-04-27 11:37
My experience was the other way around … with emacs all lsp server worked out of the box or were easy to setup; but with vscode something goes wrong and you have no clue what to do … also for some plug-ins it relies on the community and if it is abandoned you are out of luck. Emacs on the other hand has more included which is still maintained.
wargxs · 2022-04-27 11:39
lsp (eglot or lsp-mode) and projectile should cover the tests
wargxs · 2022-04-27 11:39
I don’t think that this is true anymore.
_noctuid · 2022-04-27 11:42
Faster fontification in supported modes.
sickofthisshit · 2022-04-27 12:04
When you say "cloud", that suggests a hosted service; I am contemplating a connection to my personal host, but exposed externally. "you are free to write such behavior" is not actually a useful contribution. I know I have the liberty to do so, what I don't have the time and dedication to do it as a solo project or to even organize a team. Putting aside your snark, I actually tried to look into doing so years ago and as I recall I concluded the front end architecture is not actually flexible, and even the emacsclient protocol is not well documented.
AuroraDraco · 2022-04-27 12:11
I meant it more as I am not sure if there is much interest for doing this and I personally don't expect it to happen anytime soon. For this to happen someone in the community needs to make a team for it to happen, as with most things in emacs. Therefore I suggested that feel free to write such thing yourself. But I think its a similar case with UI upgrades. Not enough people are interested therefore it doesn't happen. This is both the biggest advantage and disadvantage of such software. If you want a feature, you are free to write it yourself, however if you don't have the time/knowledge/willingness to do so, its doubtful anyone is going to do it.
snippins1987 · 2022-04-27 12:22
Now this made wonder if there is an Emacs distribution that offers "normal" key bindings, the adoption rate could be greatly improved. Just having Ctrl+c/v/x acts "normal" is probably enough to attract a lot of people. It's just unfortunate that C-c and C-x is really important and would require some hair-splitting efforts for a new user to make that happen. Thinking back, I think I spent like the first whole week of my Emacs journey to just accomplish that.
sickofthisshit · 2022-04-27 12:31
Thanks for the links. I think the first is using a terminal emulator, which I can also do with an SSH in a tab. I can't actually tell quite what the Spacemacs one is doing but I think it is jamming an X11 window into the browser. I admit this is kind of a loopy desire, but I kind of want the Emacs to *know* it is in a browser.
sickofthisshit · 2022-04-27 12:35
I think what you were actually trying to say is that *you* aren't interested, but realize that is kind of bare, so you need to dress it up a bit and pretend you are a voice of an "Emacs community" that can dismiss me as a group. I am a big boy and realize the idea is a bit out there, and I know how software projects happen, but you could just talk somewhere else about something you are interested in, instead of pretending to educate me about your club.
flexibeast · 2022-04-27 12:36
\*nod\* i tend to agree with /u/trimorphic - sounds like a project for some enterprising souls with a strong enthusiasm for WASM.
sickofthisshit · 2022-04-27 12:37
I know about software freedom, and I know how software is written, so your comment is not actually useful, thanks.
nnreddit-user · 2022-04-27 12:48
I'd peg the heyday to 1995-1997 during the jwz era. While Microsoft's dominance was at its peak, Emacs was the undisputed king of graphical editing at universities and back offices when applications were still largely an affair between a user and his local disk. Then our moms discovered web browsers, and the non-Windows world pegged their hopes on Java as David's slingshot to Microsoft's Goliath (of course, we know now that David got pummeled and Linus would enter the chat). The world stampeded towards remote-first technologies that would eventually become today's high-latency cloud compute. Emacs's localhost bent couldn't and still hasn't caught up, largely by choice of a greybeard writing staff ~~unbeholden~~ unharried by commercial interests.
[deleted] · 2022-04-27 13:19
[removed]
sickofthisshit · 2022-04-27 13:19
Unfortunately I think it also requires a introducing a front end that is almost completely unlike what exists now. IIRC I looked into it a long while back and "I see you want to port Emacs to a new UI style" wasn't a clear path. I'm pretty much hoping some insane Emacs maintainer feels the same way.
jqbr · 2022-04-27 13:38
You have that backwards ... you would have to treat unmaintained packages as non-existent in order for the number of packages to shrink ... and things would have to be quite dire for the number of unmaintained packages to grow faster than the number of new packages. Anyway, the point is that it's just not saying much to say that there are more packages than ever. I've been using emacs for nearly 40 years and there have always been "more packages than ever" and I expect that to continue to be true for the indefinite future.
nolomg18 · 2022-04-27 14:14
I don’t know if golden, silver or what. I like emacs, i love customizing it on my way. But, I really miss better defaults. Install and use. I mean, no lsp, no support for exotic languajes or so, I mean just don’t fill my folder with f••ng bakups, for example….
zajasu · 2022-04-27 14:37
Personally, I use doom and lsp worked flawlessly out of box
by_wicker · 2022-04-27 15:16
I have to say I don't recognize your experience at all. I started with lsp-mode 4 years ago when it was fairly new, and back then it took a little setting up and was a bit slow. Now the config required is minimal and it's fairly unobtrusive and powerful. Servers are usually installed automatically and just work. My biggest problem was due to using `direnv` and `dir-locals.el`, and getting it all to be configured in the right order. I don't even know if that's *possible* in VS Code. I started working with Typescript and without touching my config it all just happened. Similar deal with a PlatformIO project I had to work on - initialize and build it, and all the build-aware features just worked. Code was highlit properly according to the #defines etc.. What timescales are you talking about? Things moved quickly for a while there and it seems to have been solid to me for a while now. Installing tree-sitter was a one-shot deal, and it just worked.
mklsls · 2022-04-27 15:49
It happens to me all the time with Firefox in Mac. I get shocked when a I want to ~~yank~~ copy some text and I close the tab instead. 🤦 Edit: I switched the word copy with yank in my head.
tomatoaway · 2022-04-27 16:12
Not many people know that Ryan Gosling used to be a programmer before he went into acting, starred in a few adult films, wrote Java, and then stabbed the HMS battleship in the back ^^joke, ^^joke
technomancy · 2022-04-27 16:18
> I have explored EXWM a bit and I feel it has an unbelievable potential. I basically categorize my Emacs use into two sections: before I used exwm (silver age) and after I started using exwm (golden age). Nothing else has really come close to changing the way I use Emacs in such a fundamental way. > And when Emacs is blocked, EXWM is blocked This is true, but like ... even before I switched to exwm, using elisp which makes blocking calls was an anathema. Blocking elisp is bad elisp, period. Whether you use exwm or only changes it from "very bad" to "extremely bad", non-exwm users should also avoid bad libraries like that.
crawsphi · 2022-04-27 16:33
Tree-sitter does *not* have semantic knowledge of the code. It is purely syntactical. Especially, it only works on one file at a time, so it can't know about declarations from other files. Some simple examples of the difference: in a Lisp, consider `(foo bar baz)` Tree-sitter cannot know whether `foo` is a function or a macro. In a OOP language, say Python, that has dotted member accesses on both classes and instances: `foo = Bar.baz` Tree-sitter can't know whether `Bar` is a class object, or an instance that someone just happened to name with an uppercase letter.
towelrod · 2022-04-27 16:42
20 years ago my team was split between emacs and vi, with the majority using emacs. Now most people use vscode. I don't think anyone uses emacs as their main editor any more. I still use emacs and vi every day, but I use vscode more than either one these days
jsled · 2022-04-27 16:52
This has been removed, as it is not very civil; please attack ideas, not people.
wayToGoPotato · 2022-04-27 17:00
I also like to add helm added a huge value to emacs user experience!
JohnDoe365 · 2022-04-27 17:29
Seems like we have a different understand of semantics then. Treesitter for one knows if thing at point is a variable, a function declaration, a comment etc. Semantics for me is "meaning".
oivvio · 2022-04-27 17:39
Yes, with the rise of LSP which actual editor you use will become less important. The editor is just an LSP client. This is oversimplified of course, but there is something to it.
crawsphi · 2022-04-27 17:42
It can infer semantics from syntax in many cases, in a limited fashion, but it does not have true knowledge of the meaning. `(defun foo (bar) baz)` is just a form. It becomes a function declaration only if you already know what `defun` means. If you have `(defmacro defun (x &rest _) x)` in another file that is imported (or even just further up in the same file), when you run the program you will find that the meaning is quite different than without that file imported. And Tree-sitter does not have that information. Likewise with expressions: `foo = bar`. Is `bar` a local variable, a function name, a class name, a preprocessor constant...? Tree-sitter can use a heuristic and guess, to provide nice highlighting, but you can only know for sure by interpreting the program.
oivvio · 2022-04-27 17:43
Give Spacemacs or Doom Emacs a spin. LSP for the languages I’ve tried work out of the box. When I switched to Doom I brought my config from 1200 lines to 17 (seventeen). I blogged about a while back: https://liberationtech.net/emacs-might-not-be-doomed-after-all
gf3 · 2022-04-27 17:51
there is often strategic value in offering certain things for free. look at apple for example—not exactly a bastion of open source, and yet we have webkit, swift, mach, etc… microsoft also has extensive research and open source offerings and it’s disingenuous to downplay these contributions
oantolin · 2022-04-27 17:54
> I get shocked when a I want to yank some text and I close the tab instead. You must use some unusual key bindings then! By default `yank` in Emacs is on `C-y` which does not close a tab in Firefox. On the other hand the default key binding for `kill-region` is `C-w` which would close tab in Firefox.
mklsls · 2022-04-27 18:29
Yes, is `kill-region` I switched the words yank with copy in my head. 😑
reddit_clone · 2022-04-27 18:56
This is excellent. Thanks!
Deep-Fox6860 · 2022-04-27 19:11
Syntax is the structure of the language, for example subject-verb-object is an example of a syntax structure. So without exactly understanding the words (semantics) we can still identify the subject, verb and object structure. Similarly here, understanding what are functions, variables, comments or classes is syntax parsing not semantics.
Foooff · 2022-04-27 19:46
Writer and a light programmer here (im working on an IT-degree as an adult). I first experienced emacs as a teenager in the 90s but I really didnt get in to it. Then, 5-6 years ago, I installed it to try out how it feels as a text editor, it and felt both nostalgic and inspiring. So, 2 years ago i began working on my IT-degree and emacs really was the goto tool for me. I do use eclipse for most of my java stuff but c and asm really feels nice with emacs. Also, its a great text editor :) I dont know if there is a point to this post but as a 40+ guy, i can definitely see why emacs would attract people.
draxil · 2022-04-27 19:47
I'd say definitely. The emacs ecosystem is stronger than ever, and with the easier on-ramps of the distros, and the flocks of vim converts the community feels stronger than ever as well.
draxil · 2022-04-27 19:50
> Emacs's localhost bent Not sure about that, TRAMP's ability to gloss over where files are stored really makes emacs seem much less localhost oriented than the likes of vim or vscode.
draxil · 2022-04-27 19:51
The renaming thing certainly works with most lsp servers.
[deleted] · 2022-04-27 20:01
[deleted]
lebensterben · 2022-04-27 20:30
try eglot instead of lsp-mode.
[deleted] · 2022-04-27 20:40
[deleted]
lebensterben · 2022-04-27 20:59
what the language server you're using
shaggy_amreeki · 2022-04-27 21:14
Can't disagree with that. However, if there was no strategic value, would they be like the FSF or the GNU projects and truly be open source about certain things and let go if their cash? Of course not.
[deleted] · 2022-04-27 21:23
[deleted]
tdavey · 2022-04-27 21:35
Yes, thanks. I forgot to mention Mickey Petersen and so many others who educate about Emacs. Mickey's book is excellent and his website is rich with practical tutorials, e.g. about keymaps. Not least, his traditional, incredibly detailed dissection of each major Emacs release helps me to anticipate surprises upon upgrading and to get a head start on using new features. I must also mention Sacha Chua's Emacs News. It arrives like clockwork every Monday. The many, many links in Emacs News also suggest an Emacs Golden Age. I have no idea where Sacha finds the time to discover and organize so much Emacs information each week. She's prodigious. I thank all the gods that be that Sacha was born. May she live forever.
kamui78 · 2022-04-27 23:39
I definitely see the potential in EXWM and would like to switch to it for good.
Crevetolog · 2022-04-28 05:46
My issue was not about getting it running / working but making it work without having it crash or freeze multiple times a day while working. I tried to use the fewest packages as possible to diminish their footprint but it always got instable at some point. Now that I've opted programming out of my emacs it almost never crashes or hangs indefinitely.
arthurno1 · 2022-04-28 15:23
Njah. Emacs started to bloom few years ago before tree-sitter. I would claim that probably most of people don't even run tree-sitter, but I don't know. Usually it takes for an extension to get into core until e everyone starts to use it.
arthurno1 · 2022-04-28 15:35
Someone erroneously identify tree-sitter as a major driver of Emacs and entire discussion turns into thread about tree-sitter? I personally don't think it is a songle framework or package that revolutionary instrument for Emacs rising in its popularity. I think it is naive to try to identify, this one or that one. I would say it is rather a combination of things. Lisp is an easy language to learn, it is much more "tidy" when it comes to text manipulation than any of C-like languages like JS or Java is. Git, github/gillar etc, has contributed to easy sharing of configurations, packages, etc. That lowered barrier for making Emacs accessible more people. Doom, Prelude, Scimax, Spacemacs, etc. But probably theist important, a generation completely grown up with computers. Young generation does not have trouble using gnu/Linux and command line. Command line is much faster, saving time is money. We are maybe finally at the time in history where Emacs as well integrated environment withTUI model of interaction, sort of a powershell, is not a tool of choice for few experts, but for major audience.
ObjectiveNecessary61 · 2022-04-29 04:45
>org-auctex Can it auto change preview background follow to Emacs theme ?
karthink · 2022-04-29 06:13
preview-latex (and thus org-auctex) does that automatically.
sachac · 2022-05-02 02:28
Awww, you're too nice. :) Y'all here at /r/emacs do most of the heavy lifting of sharing interesting links. I just check for duplicates and decide things like where I'm going to file those nifty avy tricks this time. (Navigation? Emacs configuration? Other? ...) It's a fun break from parenting!
techquila · 2022-05-02 19:53
notorious VI g.
gregorygsimon · 2022-05-04 14:16
I use iedit to rename something and all references to it. Maybe there is a fancier way though.
WeMissUPuccini · 2022-05-06 02:47
I get it
tonability · 2022-05-07 13:26
What's the best ressource for learning it? I use it frequently since a few years but still seem just scratching the surface.
marco_craveiro · 2022-06-13 12:02
This may be related to the LSP server you were using perhaps? I use C# and C++ LSP servers, and I must say, I can go several weeks without a crash. I do find Omnisharp crashing on Windows occasionally and when that happens it often takes down Emacs. Haven't seen clangd crash on Linux, and I have used it for several years.
marco_craveiro · 2022-06-13 12:04
Hear, hear.