Emacs

368 readers
1 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 2 years ago
MODERATORS
51
 
 

TLDR: I really want to learn emacs, getting frustrated with the basics and seeking help. Can't install use-package on my mac installation of emacs.

I've been using neovim for awhile but have been increasingly frustrated with not being able to understand how things work when they break down. Hoping to learn emacs for fun and maybe to even replace/improve my nvim workflows.

Things went well at first. I followed the tutorial and got used to some basic navigation as well as window and buffer navigation. I LOVE being able to `C-h` for functions, keys, and variables.

I decided it was time to start trying to configure things and installing packages. I'm not patient enough to watch 10 hours of system crafters videos and didn't really want to buy Mastering Emacs, so I decided to do some googling and figure things out myself. I came across a guide with some basic starting points and was feeling good about things until I got to this part: https://medium.com/@suvratapte/configuring-emacs-from-scratch-use-package-c30382297877

I am completely unable to install use-package and that feels pretty defeating. I followed the instructions and the package was not found. I tried `package-refresh-contents` and found use-package-hydra use-package-chords and use-package-el-get. Can't seem to find use-package.

After some googling I thought it might be that my mac-homebrew-installed version of emacs was missing TLS support, so I deleted it, pulled the emacs-mac repo, and installed it with no issues. Started up my new install and had to navigate the fact that my alt key was no longer bound and my command key was magically mapped to meta which I don't want. It was really frustrating to run into this and have no idea how to C-h my way out of it. I managed to map alt to meta and map command to super, but not I can't command-c any more which is an annoyance.

On top of this, I still can't install use-package, the exact same thing happens. I deleted the part of my config that sets up melpa and used the instructions from their site. I confirmed using eww that I have TLS support working. I tried a number of commands from reddit and elsewhere and have not made any progress. I feel like I'm back in my vim config hopelessly adding lines to my config until it's not broken.

Primarily I need help passing this hurdle so that I can try and set things up myself. It would also be super nice to understand why these things have been failing and how I can better use resources to fix issues like this in the future.

52
 
 

Hello Everyone,
This is my first post every on reddit I hope I don't get RTFM ed.
Problem: Until about a week ago I used to use a doom emacs config I got off of the internet with some modifications just for references in latex. this week I finally decided to code my own literate gnu emacs config but there is one feature I am sorely missing. In the image attached in a org-mode document there is syntax highliting for latex code outside of src_code blocks I want that but I don't know how to get it into my new config. Further information can be provided on request.

https://preview.redd.it/lglj2nzsbj3c1.png?width=1902&amp%3Bformat=png&amp%3Bauto=webp&amp%3Bs=c4a77a9df21eeb9d4f450348b4717f7bb1fb61a4

53
54
 
 

Hi there, I'm trying to brush off my emacs and Orgmode since it's been years. I'm hitting a few snags and am also wondering about current standards since there has been many updates.

My goal:

Use Orgmode to customise my emacs and init files while using the Dropbox directory. I would also like to use a custom named init file so it's like eckoinit.el instead of init.el (For easier recognition and modification).

Overall, I'd like to sync and use emacs from different computers using the same configs.

I know one of my current snags is I can't remember how to tell emacs from Orgmode to use a differently named init file. I feel like this should be an obvious answer that I should have found by now and I feel silly.

Thanks for your time!

55
 
 

Hello Emacs Community!,

I'm a long time Emacs user, right now using the Doom framework and, I recently took a look at the power Nix, specifically the devenv.sh project. I wonder if someone is using it in some manner. As it being quite powerful and allowing having separate development environments.

Are there any packages for this?, and if not, how complicated would it to be to for example, once entering a project, Emacs gets all of its PATHs (languages like NodeJS and other niceties) so that little by little, the project can be replicated and used completely with devenv and Emacs without having to installing anything globally.

Thank you, I would love to hear your workflows!, just wanting to be sure I'm getting the best of the best in my environment, I will be coding in Javascript, Angular and so on.

56
 
 

Emacs on Hyprland

This Emacs config's built from scratch by this humble Elisp noob. I want it to be minimal and plain. Love some feedback!

57
58
 
 
59
60
61
 
 

Hey everyone, quite a while ago I created the Naga theme; it's also on MELPA. I used it for a long time (and I'm still using it in the evenings), but I'm not totally happy with it. I'd like to spend a little more time on it, changing some colors, updating the slightly outdated screenshots in the readme and so on. While I'm at it, I could have a look at packages that don't work well with it as well. I have some other ideas for themes, and an improved naga would also give me a better base to work from for these.

I'd be glad if some of you could maybe test-drive it and give me feedback, especially if it perhaps breaks or looks plain bad with some packages you use.

The main idea of the theme was to get a "more modern retro green" theme, with high contrast, but a non-standard foreground color -- green in this case.

Thanks in advance!

62
 
 

I'm using Emacs Mac from Homebrew on my M1 Macbook Pro with the notch, and when I toggle fullscreen using (toggle-frame-fullscreen) I see that part of the top line of text gets hidden by the notch (like in image). In other applications fullscreen omits the entire top height of the notch, but for some reason Emacs fullscreen isn't like other native fullscreen - the Emacs frame occupies the entire screen but is still in the Desktop space. So I lose words in the middle of the top line. How can I avoid this situation? I don't see a ns-use-native-fullscreen variable (or any variables containing the words "ns", "native", or "fullscreen" that are useful).

https://preview.redd.it/fonw4bxbrf3c1.png?width=2982&format=png&auto=webp&s=fe9699c278f66944d4dcbb0ed6240cd93674fb65

63
 
 

Hello emacs and Lisp enthusiasts,

I remember seeing an article that talked about the superfluity of parenthesis in Lisp code, and how non-Lisp programmers were overwhelmed by them, but Lisp programmers had trained their eyes to look at indentation structure and didn't see the parenthesis, and it showed an image of Lisp code without and with the parenthesis faded. I don't have a link to the article, but even as a slightly seasoned Lisper I thought the fainter parenthesis improved readability.

So I'm wondering if/how it's possible to achieve this effect in emacs. Is there already a minor-mode for it? Would it involve a font-lock/face for parenthesis? I've tried to navigate the syntax highlighting code before and was a bit turned off by the apparent complexity, so any form of introduction would be greatly appreciated.

64
 
 

ultra-scroll-mac: scroll like lightning

Emacs-mac is a beautiful port, and was the first to offer pixel-precise smooth scrolling nearly a decade ago. But with modern high-resolution trackpads and high density displays, I found its scrolling handlers just couldn't keep up. On large, full-screen buffers in a heavy mode, trackpad scrolling verged on painful, and, maddeningly, was much worse in one direction than the other. And no wonder: modern trackpads deliver scroll events >50⨉ per second! The other key problem with all known smooth scrolling packages is they tend to stutter and loop back as you try to scroll across images taller than the window.

This package solves both of these problems:

  • Scrolling performance has been increased 25-50⨉ — you move your fingers, the page responds, instantly.
  • Large image handling has been worked around so you can scroll right across them without any hiccups.
  • As a bonus, dumb mice get pretty good smooth(-ish) scrolling too.

I'll be contributing the core scrolling functions upstream, so hopefully pixel-precision-scroll-mode (which inspired this package, and is recommended on other builds) can make use of some of these improvements in the future.

Finally, this was all (to me) surprisingly hard to achieve, which you can read all about if you are a glutton.

65
 
 

Hello I'm having some troubles fixing the next error.

Error (use-package): aas/:config: Condition must be either nil or a function

the source of code is:

(use-package aas
  :hook (LaTeX-mode . aas-activate-for-major-mode)
  :hook (org-mode . aas-activate-for-major-mode)
  :config
  (aas-set-snippets 'org-mode

    ;; set condition!
    :cond #'texmathp ; expand only while in math

   "fr" '(yas "\\frac{$1}{$2}$0") 
   "lr(" '(yas "\\left( $1 \\right)$0") 
   "lr[" '(yas "\\left[ $1 \\right]$0")
   "lr{" '(yas "\\left\\\\{ $1 \\right\\\\}$0")
   "lr|" '(yas "\\left| $1 \\right|$0")
   "lr<" '(yas "\\left\\langle $1 \\right\\rangle$0")
   "sqr" '(yas "\\sqrt{$1}$0")
   "cbr" '(yas "\\sqrt[3]{$1}$0")
   "nthr" '(yas "\\sqrt[$1]{$2}$0")
   "dint" '(yas "\\int_{$1}^{$2}{$3 d$4}$0")
   "int" '(yas "\\int{$1 d$2}$0")
   "lim" '(yas "\\lim_{$1 \\to $2}{$3}$0")
   "neq" '(yas "\\neq $0")
   "geq" '(yas "\\geq $0")
   "leq" '(yas "\\leq $0")
   "sim" '(yas "\\sim $0")
   "->"  '(yas "\\to $0")
   "=>"  '(yas "\\implies $0")
   "inn" '(yas "\\in $0")
   "set" '(yas "\\\\{$1 \\\\}$0")
   "cc"  '(yas "\\subset $0")
   "EE"   '(yas "\\exists $0")
   "nEE"  '(yas "\\nexists $0")
   "VV"   '(yas "\\forall $0")
   "xx"   '(yas "\\times $0")
   "..."  '(yas "\\dots $0")
   ";."   '(yas "\\vdots $0")
   ";/"   '(yas "\\ddots $0")

   
    )

(aas-set-snippets 'org-mode

    "mk" '(yas "$$0$") 
    "md" '(yas "$$ $0 $$")
))

I think the problem is in the line :cond #'texmathp.

Thanks in advance!

66
 
 

I have been a user of emacs for more than a decade. I am not a pro, but my config has swollen little by little. What really got me into emacs was the interaction with the python repl. It was amazing. Only Jupyter notebooks did something similar for me. Lately I have been using VScode, as the notebook experience for data science is very good and emacs cannot really compete here as notebooks are web based since the beggining, and vscode is an electron app. Packages like ein was just an ok replacement. Also I have been using logseq instead of org-mode, as the android app is very good and allow me to add stuff from the camera and using the pen with the whiteboard. I am mainly using org-mode to define large project files and leaving logseq for note taking.

The later but the hype with neovim and in much smaller scale with helix got me interest, as I have been using less emacs lately. So I decided to try them. And for the first time I feel I was in the presence of real competitors. Emacs has always been about text editing + poweful ide like tools added using plugins made by the community using a scripting language, in emacs case elisp. I liked VSCode despite the bloat because it was similar in spirit, a editor that can customize and make tools for using a scripting language, javascript. I never like vi/vim. Modal typing is nice for using command without modifier keys. But you could only use those commands on vi /vim, so I did not see the point in learning a typing system for some type saving. I always laugh with the emacs pinky meme, when in practice most vim users used screen and tmux and use ctrl all the time. And alt+tab for geeting to the browser. Plugins were not really enough for my coding and they were awful in comparison with the emacs ecosystem. And you can get evil mode in emacs. But neovim is a different beast. The change from the old vimscript to Lua and how the community embraced the change turn it into an editor very close to emacs. I installed the lazyvim distro, and my experience was very similar to doom emacs. Actually I found a bit better to update all the packages installed by default. And the interaction python was also closer to emacs thanks to iron.nvim. I could installed in a remote machine that I have issue installing a new version of emacs due to lack of permissions. So very nice experience.

Helix is a monolitic editor that comes with "battery include", and it doesn't have a plugin system yet (although the devs might add a scheme like scripting in the future). But the editor is much more feature complete than neovim without plugins. It lacks a repl interaction, so I cannot really use but it looks nice and might have a interesting future.

My conclusion is that editors of all kinds are becoming more and more like emacs, a core with a plugin system. Emacs is a very tiny core and the rest is elisp so you can change everything, but most people never get close to try to do that. Neovim+Lua is a good example that a you don't need so much flexibilty and you don't even need a powerful scripting language. Lua point is to be simple enough without losing too much power. Vscode+JS is a similar story. We are witnessing carcinisation for editors.