puni VS expand-region.el

Compare puni vs expand-region.el and see what are their differences.

puni

Structured editing (soft deletion, expression navigating & manipulating) that supports many major modes out of the box. (by AmaiKinono)

expand-region.el

Emacs extension to increase selected region by semantic units. (by magnars)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
puni expand-region.el
8 16
357 1,316
- -
6.0 5.2
3 months ago 2 months ago
Emacs Lisp Emacs Lisp
GNU General Public License v3.0 only GNU General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

puni

Posts with mentions or reviews of puni. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-27.
  • Paredit-like features in non-lisp modes?
    4 projects | /r/emacs | 27 May 2023
  • Good Emacs Packages
    7 projects | /r/emacs | 14 May 2023
    For working with delimiters, you might want to check out Smartparens or Puni. There are many other packages like these, but those are the two I know about.
  • Tree-sitter starter guide
    7 projects | /r/emacs | 17 Jan 2023
    I'm guessing the way forward here for navigation is to change Emacs' built-in sexp-navigation when treesitter is available? forward-sexp, backward-up-list, down-list, raise-sexp etc do a good job in lisp environments, and they can now work everywhere. Packages that build on these (like Puni will automatically gain treesitter-awareness.
  • What modal sexp editing mode should I switch to?
    6 projects | /r/emacs | 10 Jan 2023
    I have never used lispy, but I have used puni for a while now, and I'm pretty satisfied with it. I am not sure that it's exactly what you're looking for since it takes a more limited approacg, but it has a lot of the same features: slurping, barfing, raising, splicing etc.
  • What packages do I need to for the best elisp editing environment?
    8 projects | /r/emacs | 6 Jan 2023
    For any Lisp you want paredit or any other structural editing package (I switched to puni recently because it’s more customizable and works with non-Lisp languages too). The first three days will suck hard because it’ll feel like the tools get in your way, but once you’re comfortable with it it’ll be the best thing ever.
  • paredit based on treesitter
    3 projects | /r/emacs | 30 Nov 2022
    Afaik puni uses only forward-sexp for navigating and manipulating sexps. So if you implement a forward-sexp-function that uses treesit.el it should work without any changes.
  • Find out a great emacs package for structural editing.
    2 projects | /r/emacs | 23 Jan 2022

expand-region.el

Posts with mentions or reviews of expand-region.el. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-04.
  • Question for Meow users
    4 projects | /r/emacs | 4 Feb 2023
    I don't use Meow, so this may be wildly off the mark (no pun) here. But I use and really like expand-region for selection and marking. With modal editing, I imagine it would be extremely fast and intuitive.
  • ts-movement: a package to navigate the tree-sitter syntax tree (supports multiple-cursors)
    7 projects | /r/emacs | 15 Jan 2023
    I think the following packages would fit your wishlist, as it is very similar to mine. As mentioned in the replies, there is (https://github.com/magnars/expand-region.el) and (https://github.com/mickeynp/combobulate). I regularly use (https://github.com/Fuco1/smartparens).
    7 projects | /r/emacs | 15 Jan 2023
    Until combobulate comes out, classically I think most people uses expand-region. It generally works okay, but needs a lot of language specific logics to work perfectly. Only bringing it up in case you were unaware of it.
  • What packages do I need to for the best elisp editing environment?
    8 projects | /r/emacs | 6 Jan 2023
    Paredit, Speed-of-thought lisp, Helm, perhaps Lispy but I am not using it myself. I found expand-region to work really well when writing and modifying elisp. lisp-extra-font-lock if you want some more blink (and font-lock-studio). Helpful is very good to have instead of built-in help, it displays the source code by default as well as symbol properties. It is a very informative learning experience to see how built-in stuff is implemented. I am quite lazy to press extra in built-in help to see the source code, but with Helpful, you get it auto in the same window, whicih is great for learning. Seeing symbol properties is sometimes a time saver so you don't have to M-: and type an Elisp function to see the symbol properties when debugging. Learn Edebug, it is very useful built-in application for Emacs Lisp development.
  • vanish.el: hide parts of a buffer
    8 projects | /r/emacs | 6 Aug 2022
    Exactly. Consider you have point in a table definition. You can programmatically find which org element you are in, at least for org-mode. Or in a defun for elisp-mode, a sentence or paragraf in plain text and so on. You could just press a shortcut, and based on major-mode you could find boundaries of the element and put it in hidden-list. It would be really fast to work that way. I don't know if it already exists in some package. Or you could go for somewhat easier version, and just check if a region is active, and if it is, hide region, and if not, hide current line, or based on mode, hide element at point. That way we can easily expand/contract region with er/expand-region and press a key to temporary hide/unhide it. It is not difficult to write a function to do that based on text properties. Thing-at-point might be useful here too.
  • Why not use Evil in 2022?
    5 projects | /r/emacs | 7 Apr 2022
    https://github.com/magnars/expand-region.el is your friend. I use the built-in equivalent of it in IntelliJ all the time. it's a bit like a vi text objects in the simplest possible way.
  • Paredit Mnemonics for Slurping and Barfing Lisp Symbolic Expressions
    3 projects | news.ycombinator.com | 12 Mar 2022
    Thanks, I will give paredit a shot.

    I'm a regular emacs user, but I normally use expand-region[1] and cut/paste to edit lisp code. Expand-region usually knows what I want to move around after just one or two calls, only requires one key binding, and has visual feedback. And it works great in every language I have used.

    https://github.com/magnars/expand-region.el

  • Sharing my first emacs extension: csharpto.el
    3 projects | /r/emacs | 18 Feb 2022
    One thing that I always missed is the ability to select a whole function in C#, but I thought I just didn't know the right package or it was something trivial to do ad-hoc. Surprisingly, up to these days I still couldn't find anything. I bumped into the expand-region package at some point, which is awesome, but still something was missing. After going through the Emacs Lisp Intro tutorial, I learned a bit how to search things in a buffer, and I was also editing csharp files every day, so I decided to try to implement the functions myself. Fast forward some weeks, here I am, with a smile on my face :)
  • Looking for evil-mode resources for non vim users emacs beginners
    10 projects | /r/emacs | 13 Oct 2021
    If you want to try out some third-party packages in the beginning, I think the most "bang-for-your-buck" you'll get is with Avy. Also, expand-region. And specifically for writing: olivetti-mode, flyspell, dictionary, and Nicolas Rougier's Nano and Elegant Emacs setups.
  • Effective and efficient text editing using Emacs (Alternative to Evil)
    11 projects | /r/emacs | 19 Aug 2021
    You will probably like expand-region.el. It is fantastic for selecting inside brackets, quotes, etc.

What are some alternatives?

When comparing puni and expand-region.el you can also consider the following projects:

evil-guide - Draft of a guide for using emacs with evil

meow - Yet another modal editing on Emacs / 猫态编辑

.emacs.d - My current Emacs setup.

elegant-emacs - A very minimal but elegant emacs (I think)

whole-line-or-region - In Emacs, operate on current line if no region is active

xah-fly-keys - the most efficient keybinding for emacs

avy - Jump to things in Emacs tree-style

easy-kill - Kill & Mark Things Easily in Emacs

kmonad - An advanced keyboard manager

olivetti - Emacs minor mode to automatically balance window margins

.emacs.d - My personal emacs settings, and the ones used in @emacsrocks

smartparens - Minor mode for Emacs that deals with parens pairs and tries to be smart about it.