Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vim lisp plugins #11

Open
Deraen opened this issue Jun 29, 2017 · 1 comment
Open

Vim lisp plugins #11

Deraen opened this issue Jun 29, 2017 · 1 comment

Comments

@Deraen
Copy link

Deraen commented Jun 29, 2017

Paredit.vim is probably quite similar to paredit.el

My favorite is https://github.com/guns/vim-sexp + https://github.com/tpope/vim-sexp-mappings-for-regular-people which is probably inspired by paredit and others. But unlike paredit, it doesn't prevent writing unbalanced code, or doesn't modify existing Vim operations, but instead provides collection of Vim text objects, movements and operations, to work with elements, forms and parentheses, that can be composed together with each other and other Vim operations.

For example:

ysae( will add parentheses around current element. ys is a command from separate vim-surround (non lisp specific) plugin that will surround given text object in given pair of "surroundings" (e.g. parenthesis). ae is text object for "around element" from vim-sexp.

daF (delete around Form) removes current top-level form (delete is Vim built-in op), diF (delete inside Form) removes contents of current top-level fom (leaves the parenthesis), and same logic holds for ae, ie, af and ie (around/inside, element/form), and these can obviously be used with other commands like y (yank, copy), c (change) etc.

TL;DR; Vim-sexp enables "Vim native" operations on Lisp code.

@shaunlebron
Copy link
Owner

Thanks for not just linking the projects, but for giving a contextual summary of why it's noteworthy. 💯

I added it to the timeline, but I'll leave this open since I am feeling compelled now to give a short summary of the benefits of each contemporary tool, like the one you gave here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants