this post was submitted on 29 Nov 2023
1 points (100.0% liked)

Emacs

305 readers
3 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 1 year ago
MODERATORS
 

Is there a way to replace all hyperlinks in a buffer with some shorthand phrase say "link" while keeping them as clickable links to their respective site?

I've been importing csv files as tables and one of the columns stores links but they're quite long and making things awkward looking so I'd like to replace them with some shorthand.

Sorry, probably a noob question, still new.

top 5 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 9 months ago

I would just use a macro.

[–] [email protected] 1 points 9 months ago (1 children)

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.)

[–] [email protected] 1 points 9 months ago

never heard of goto-address-mode, seems cool

[–] [email protected] 1 points 9 months ago

you can do this with an Overlay, if you know where the link starts and ends. For example I have the buffer README.org

#+title: hypop - emacs minibuffer-frame + hyprland

* Demo
https://www.youtube.com/watch?v=jXRt598HqCY

the first character of the link is the 60th and the last is the 103rd. So I could write

(with-current-buffer "README.org"
  (overlay-put (make-overlay 60 103) 'display "link"))

Clicking the "link" text still opens YouTube as expected.

To do this all over a buffer you'd want to add a font-lock rule based on a regular expression like browse-url-button-regexp.

If you only need it in Org files, there's probably some machinery to facilitate that as well

[–] [email protected] 1 points 9 months ago

Hyperbole’s ebut:program function lets you create explicitly named buttons that look like <(link)> in place if your long URLs.