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

  • JDRiverRunB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 年前

    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)))
    
    • InfiniteBarnacle9OPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 年前

      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.

      • JDRiverRunB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 年前

        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.