• 0 Posts
  • 60 Comments
Joined 1 year ago
cake
Cake day: October 8th, 2023

help-circle

  • Assuming that you are referring to plain text…

    while keeping them as clickable links

    First of all you need to establish why a plain text URL is doing something when you click on it, as your new requirement is going to need to interact with that.

    (I’m guessing goto-address-mode is enabled, so I would check that first.)



    • They used to be hard to remove. As mentioned, M-x remove-hook has alleviated that to an extent.
    • They are still harder to update because you need to remember to remove the old one when adding the replacement. I’ve seen any number of cases where people were inadvertently adding lots of slightly different versions of their function to a hook variable, and wondering why they were still having problems.
    • They are very unhelpful when you inspect the hook variable. Rather than seeing a function name (from which you could jump to the nicely-formatted function definition), you see at best the lisp code all jammed into a single line, and at worst a heap of unreadable byte-code.

    Use named functions. It’s just better.




  • However, if attempt it on a remote file (opened over tramp) it says it can’t find the binary and prompts me to point it at it. I could do that, but then the language server would start on that same machine and that’s a no go since it’s a shared login machine.

    How would the local language server inspect a file which is on some other machine?

    You should start by establishing how that is going to work, and add that information to your question.



  • If you’re sold on sticking with Emacs, then learning elisp will unquestionably pay dividends, and the more you learn the more you’ll be able to do (but you don’t need to understand everything in order to do anything).

    and how exactly can i improve my emacs experience if i learned elisp?

    That’s the thing – it’s up to you. The ability to “scratch any itch” is what elisp give you. That doesn’t mean any given thing is easy to do (although it might be) but, to a significant extent, if you can identify a problem then implementing a solution is also a possibility.



  • This is 100% expected behaviour. save-excursion has nothing to do with windows.

    Perhaps you are confused about the phrase “…and the current buffer [is] restored”. The “current buffer” is independent of the buffer in the selected window, and moreover need not be displayed at all. The current buffer is simply the buffer which is being acted on at the time.


  • This is 100% expected behaviour. save-excursion has nothing to do with windows.

    Perhaps you are confused about the phrase “…and the current buffer [is] restored”. The “current buffer” is independent of the buffer in the selected window, and moreover need not be displayed at all. The current buffer is simply the buffer which is being acted on at the time.


  • I feel like whenever I am browsing emacs content online there are still many topics for me to discover.

    This will never not be the case.

    My suggestions are:

    • focus on addressing known pain points
    • if something seems very popular, it might be worth trying to learn why and whether it could be beneficial to you as well
    • if something else sounds super-interesting, take a look
    • don’t fret about not keeping abreast of everything – it’s almost certainly impractical




  • I don’t use use-package, but I’ve seen a lot of questions from users who do use it but don’t understand how to use it, or what it’s going to expand to, or what the things that it expands to actually do. My conclusion has been that for some users it introduces as many problems as it solves. I think those users would be better off if they learned how to manage their config without it first, and only considered use-package after understanding the more fundamental building blocks upon which it is built.

    It’s certainly not something you need to use, in any case. It’s clearly an invaluable system to many users, but if you don’t get along with it, don’t use it.




  • Looks like a bug (whether documentation or code) as read-kbd-macro still claims to return a string if possible, but nowadays it forcibly returns a vector. Please M-x report-emacs-bug to get that clarified.

    You could extract a string of characters from the vector:

    (mapconcat (lambda (event)
                 (and (characterp event)
                      (char-to-string event)))
               (read-kbd-macro "C-c"))
    

    But if you look at the code for read-kbd-macro you’ll see that it calls this:

    (defun edmacro-parse-keys (string &optional _need-vector)
      (let ((result (kbd string)))
        (if (stringp result)
            (seq-into result 'vector)
          result)))
    

    Hence the string value you wanted is coming from kbd:

    (kbd "C-c") => "^C"
    

    There are of course arguments you can pass to kbd which won’t return a string, but that would always have been the case for your code, and presumably you’re not attempting to use any of those.