Emacs

352 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
101
 
 

Hi all, I thought I was being very clever by creating a virtual machine build environment so I didn't have to litter my main computer with 100s of packages to build emacs. So I built it in a gnomebox and set the prefix to $home/.local/opt/emacs as I saw someone do. It runs fine in the virtual machine

The issue is now, I'd like to move the install or the built files to my host machine and run it, but it won't run. If I just try to move the $home/.local/opt/emacs folder to my own computer, and run it I get the following:

./emacs-29.1.90: error while loading shared libraries: libgpm.so.2: cannot open shared object file: No such file or directory

When I try to move the whole directory (source code and the build directories inside there) out of the virtual machine into the Host and try to run make install (this is after make and compilation completed) it says

make install
if [ -x ./config.status ]; then	\
     ./config.status --recheck;	\
else				\
     ../configure --cache-file=/dev/null; \
fi
/bin/sh: line 4: ../configure: Permission denied
make: *** [Makefile:573: config.status] Error 126

I have tried to chown -R : ./ to the whole directory but it still gives me the permission denied.

Any ideas how I might accomplish this task?

Thanks!

102
 
 

I wrote a few functions to improve my research workflow and easily add ArXiv papers to my library, hopefully you'll find it useful. I am aware of `arxiv-citation`, I couldn't get it to work, perhaps I did something wrong. I also added a few extra options.

https://gist.github.com/ndrwnaguib/fe7245ca5b2e8ba21b05a44679fc6148

https://i.redd.it/jgmfkyve9s2c1.gif

103
104
 
 

Hi all, I'm moving towards Emacs as an old vim user, with the goal of giving up my heathen C ways in favor of Lisp.

Attempting to use slime on a fresh install gives the error: Eager macro-expansion failure: (wrong-number-of-arguments (3 . 4) 2)

wth is this? ):

105
 
 

Hello fellow Emacs enthusiasts,

I'm reaching out to see if there's anyone here who's successfully integrated a modern development environment within Emacs for Python programming. Specifically, I'm interested in a setup that incorporates eglot, tree-sitter and company.

I've encountered a significant issue: whenever I enable python-ts-mode, Emacs consumes all my system's memory and crashes. While I've managed to use a more basic setup that limits tree-sitter to syntax highlighting only, I can't shake the feeling that I'm missing out on some great functionality.

To help with investigation:

  • I am running on a Mac
  • The bare minimum to reproduce this problem is on the following gist: https://gist.github.com/hnarayanan/a6397d6723fce19e2802d4305071e611
  • I happen to use Emacs from MacPorts, but to double-check, I also attempted to download it from https://emacsformacosx.com and it crashed in the same way
  • This seems to happen independent of the language server used in the backend. I intend on using python-lsp-server, but it fails even if I don't have it installed.

Has anyone faced a similar problem and found a solution? Perhaps I am doing something very wrong with my config? I'm eager to learn from your experiences and would greatly appreciate any advice or tips you can offer.

Thank you!

106
107
108
 
 

Calc'c elisp functions (imho) all have the prefix calcFunc-. So in order to use a calc function like vlen in an org table lisp formula, one could use calcFunc-vlen. That's nice.

What bothers me is the lack of "on-line" documentation (i.e. usable with eldoc or completion frameworks).

All calc functions are nicely documented here: https://www.gnu.org/software/emacs/manual/html_mono/calc.html , thats good.

It is possible to modify a elisp's function documentation. e.g. like so:

(put 'calcFunc-vlen 'function-documentation
     "Computes the length of a vector.
The length of a non-vector is considered to be zero.
Note that matrices are just vectors of vectors for the purposes of this command.")

Now calcFunc-vlen would have a nice "on-line" documentation, usable with C-h f, autocompletion and eldoc.

Has anyone already bothered to gather some of those strings from the manual, in a more machine processable form? So I could save some work to create "on-line" documentation of the calc functions?

109
 
 

Hi all,

I am using native Emacs build for Android.

Is there a way to send notification from my Emacs app to Android using some package?

Has anyone found a way or a workaround?

110
 
 

Im looking at the org babel WORG webpage on running shell code and it says there that we can run shell command asynchronously. However, when I try some of the examples in my machine, the async is completely ignored. Am I supposed to install something else?

111
112
 
 

I talked to someone about the extensibility of emacs, but the person I was speaking to assumed that any IDE is just as extensible by using Plug Ins.

Without turning the conversation into a university style lecture, what is one or two simple actions I can do in emacs to show someone what separates it from other IDES.

113
 
 

Hi,

I am not sure if many people are using alerts for the appointments, I do, I like the behavior where it brings Emacs to the front and shows a message in the mini buffer. However, when I am quickly writing in another application I sometimes end up writing in the active buffer. I am contemplating creating a function which puts the buffer in read only mode before showing switching to Emacs, if it was not already Read Only, and restores it when the reminder disappears. That should be enough to avoid accidental writing.

Before I embark in that task I would like to know if anybody has done anything like that, or any other creative ideas to avoid contaminating the current buffer.

Thanks!

114
115
116
 
 
117
118
 
 
119
 
 
120
 
 

Hi, I’ve been banging my head against something and I figured I’d ask for help.

I open files over tramp and use a remote login machine to do that. Said login machine is shared by many people and thus I can’t run a language server on it. I’d like to use eglot but don’t want to run the language server on it.

I’ve been trying to either run the language server on a computer machine (another remote one) or on my local Mac (Mac would be preferable).

Has anyone managed to point a language server running on a local Mac to files over ssh?

121
 
 

Just as C-x C-e evaluates ELisp code, this ±10min Youtube video shows how C-x C-j evaluates inline Java code to build a gallery app.

This is done with Emacs slurping text from any buffer and barfing it into the standard Java repl, run in a background process. These phases are glued together using the repl-driven-development.el package.

122
 
 

A "I just want no input lag no matter how many packages I install. Its a frigging editor after all!! Is that too much to ask??"

B "Yes. (it's an OS btw)"

A "Sigh."

123
 
 

I would like to share a code snippet designed to simplify the task of opening Vertico/Consult/Embark or Ivy/Counsel candidates in a new Emacs tab.

The generic function that opens candidates in a new tab

This function below, tab-new-func-buffer-from-other-window, is designed to open the buffer generated by a specified function (func) in the other window and subsequently create a new tab. It also ensures that the state of the original window and tab is preserved.

;; License: MIT
;; Author: James Cherti
;; Latest version: https://www.jamescherti.com/emacs-open-vertico-consult-ivy-counsel-candidate-new-tab/

(defun tab-new-func-buffer-from-other-window (func)
  "Open the buffer created by the FUNC function in the other window in a new tab."
  (let* ((original-tab-index (1+ (tab-bar--current-tab-index)))
         (original-window (selected-window)))
    ;; Save the state of the other window
    (other-window 1)
    (let* ((other-window (selected-window))
           (other-window-buf (current-buffer))
           (other-window-point (point))
           (other-window-view (window-start)))
      ;; Move back to the original window
      (other-window -1)

      ;; Call the specified function (e.g., embark-dwim, ivy-call...)
      (funcall func)

      ;; Switch back to the other window
      (other-window 1)
      (unless (eq (selected-window) original-window)
        (let* ((preview-buf (current-buffer)))
          ;; Create a new tab and switch to the preview buffer
          (tab-bar-new-tab)
          (switch-to-buffer preview-buf)

          ;; Go back to the original tab
          (tab-bar-select-tab original-tab-index)

          ;; Restore the state of the other window
          (select-window other-window)
          (switch-to-buffer other-window-buf)
          (goto-char other-window-point)
          (set-window-start nil other-window-view)

          ;; Switch to the original window
          (select-window original-window))))))

Option 1: Open Vertico, Consult, and Embark candidate in a new tab (embark-dwim)

For users of Vertico/Consult/Embark, the following function utilizes the generic function tab-new-func-buffer-from-other-window to open the default Embark action buffer in a new tab:

(defun tab-new-embark-dwim ()
  "Open embark-dwim in a new tab."
  (interactive)
  (tab-new-func-buffer-from-other-window #'embark-dwim))

You can add the following key mapping to Vertico:

(keymap-set vertico-map "C-t" #'tab-new-embark-dwim)

For Emacs Evil users, you can also add the following mappings:

(evil-define-key '(insert normal) vertico-map (kbd "C-t") 'tab-new-embark-dwim)

Option 2: Open Ivy, Counsel candidates in a new tab (ivy-call)

For users of Counsel/Ivy, the following function utilizes the generic function tab-new-func-buffer-from-other-window to open the buffer opened by ivy-call in a new tab:

(defun tab-new-ivy-call ()
  "Open ivy-call in a new tab."
  (interactive)
  (tab-new-func-buffer-from-other-window #'ivy-call))

You can add the following key mapping to ivy-minibuffer-map:

(keymap-set ivy-minibuffer-map "C-t" #'tab-new-ivy-call)

For Emacs Evil users, you can also add the following mappings:

(evil-define-key '(insert normal) ivy-minibuffer-map (kbd "C-t") 'tab-new-ivy-call)

Links

124
 
 

I am trying to install ement.el with the following config

#+begin_src emacs-lisp
  (use-package ement
    :elpaca (:host github :repo "alphapapa/ement.el"))
#+end_src

When the config is loaded I get the error as follows. There are no network issues.

ement [GNU-devel ELPA|GNU ELPA]
Matrix client

source: GNU-devel ELPA
url:    https://elpa.gnu.org/packages/ement.html
menu item:
( :package   "ement"
  :repo      "https://github.com/alphapapa/ement.el.git"
  :local-repo "ement"
  :files    
  (:defaults "*" (:exclude ".git")))
recipe:
( :package   "ement"
  :host      github
  :repo      "alphapapa/ement.el"
  :local-repo "ement"
  :files    
  (:defaults "*" (:exclude ".git"))
  :protocol  https
  :inherit   t
  :depth     nil)
dependencies: ?
dependents: ?
commit:  
statuses:
  (failed cloning reclone cloning queued)

125
 
 

I see theres an android version of gui emacs as of version 30.1, but would I be able to run it within the quest 3? Which limitations would I run into? Could I run pdf tools and the latex preview feature in auctex? Would i be able to download stuff from melpa?

view more: ‹ prev next ›