this post was submitted on 22 Oct 2023
2 points (100.0% liked)

Emacs

311 readers
2 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
 

Hey, folks.

I've been digging around to see if there's a package for this but the closest I've found is expand-region and that's not quite it...

Take the indent level and block at the line where the point currently sits and set the mark region to the end of the current block + indent level. I hope that explanation is clear.

This seems very much in the wheelhouse of Emacs and I'm guessing it exists -- maybe even in core as opposed to a package -- and I'm just not looking in the right place.

thx

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 1 year ago (2 children)

No need for a package, this is a great chance to learn some elisp. To get you started:

(let ((cur (current-indentation)))
  (push-mark nil t t)
  (while (and (not (eobp)) (= (current-indentation) cur))
    (forward-line 1)))
[–] [email protected] 1 points 1 year ago (1 children)

Nice. I think mark-defun is going to work out per other comments here but this is interesting.

Related question... I've not done a ton of elisp hacking but can I ask how you found uot about these functions? I've never heard of the two key ones: eobp and current-indentation.

[–] [email protected] 1 points 1 year ago

Start with the Elisp intro; it’s great. M-x shortdoc buffer gives a nice overview of buffer commands. I love consult-info for general searching of the Elisp (and other) info files. But M-x apropos-function is builtin and useful too.