nvim-surround
Add/change/delete surrounding delimiter pairs with ease. Written with :heart: in Lua. (by kylechui)
targets.vim
Vim plugin that provides additional text objects (by wellle)
nvim-surround | targets.vim | |
---|---|---|
29 | 48 | |
2,717 | 2,511 | |
- | - | |
7.1 | 0.0 | |
6 days ago | 6 months ago | |
Lua | Vim Script | |
MIT License | MIT License |
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.
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.
nvim-surround
Posts with mentions or reviews of nvim-surround.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-30.
-
An opinionated article about vim
(Neo)vim supports plugins, which make your code editor much better. You need a faster way to comment stuff? Sure, here is nvim-comment. Now you need a better tool to surround text by certain characters? Alright, we also have nvim-surround. And this goes on for almost everything you ever needed. And in the rare case that you can't find a plugin for what you need: Write it yourself! It's very easy to write plugins, as vim and neovim both have a lot of functions that help with writing those.
-
Using Floaterm, what's the best way to toggle between the editor and opened window and maintain the shell session?
So, I've been using floaterm and I like it a lot so far! But my ideal workflow would look like this
-
How to know what is "surrounding" a piece of text
My guess would be to save the current location of the cursor, then iterate through all possible motions you want, i.e. a[, at, etc. After each time your operator marks get updated and you can save those locations, before resetting the cursor position to the original spot. Finally, take the innermost/closest pair of marks to be your selection. That would be my guess at least, I think your question is similar to how aliases are implemented in nvim-surround.
-
Efficient way to delete highlighted text
Thanks! I was using nvim-surround, but I didn't check dit
-
Can I separate `v` and `vi/va` like Helix?
Oh sorry I forgot to add additional context. I already have keymaps that starts with m but not dealing visual mode. For example, I'm using ms, mr, md for nvim-surround. That is why I'm trying to map mi and ma, not just m for entering visual mode.
-
Automatically encapsulate or surround existing code with symbol pair
I'm trying out https://github.com/kylechui/nvim-surround (maybe a Lua port of that same plugin) and it it seems very capable. With some remapped shortcuts I think I can bend it to my will. Thanks!
-
markdowny.nvim
The other plugin that can do this is kylechui/nvim-surround. Not sure how to set it up, though.
-
Vimtex feature or a script for wrapping a word in a latex command?
You could probably use a surround plugin like nvim-surround and then have an ftplugin that uses the buffer_setup function to create a custom surround.
-
ns-textobject.nvim update! Smater, more useful!
require("ns-textobject").setup({}) -- from https://github.com/kylechui/nvim-surround/discussions/53#discussioncomment-3134891 require("nvim-surround").buffer_setup({ surrounds = { ["l"] = { add = function() local clipboard = vim.fn.getreg("+"):gsub("\n", "") return { { "[" }, { "](" .. clipboard .. ")" }, } end, find = "%b[]%b()", delete = "^(%[)().-(%]%b())()$", change = { target = "^()()%b[]%((.-)()%)$", replacement = function() local clipboard = vim.fn.getreg("+"):gsub("\n", "") return { { "" }, { clipboard }, } end, }, }, },
-
NeoVim as IDE
this might actually be a better surround plugin for surround https://github.com/kylechui/nvim-surround
targets.vim
Posts with mentions or reviews of targets.vim.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-01.
-
How to move really efficiently in Vim?
targets is nice too.
-
Two Weeks into Vim: A Transformation
The thing that has the biggest impact on me is ci”, ca”, da”, etc.. so I suggested getting used to using those.. and then you can get more pedantic with it using https://github.com/wellle/targets.vim
-
Is there a shorcut to select words in quotes including the quotes?
I do recommend getting, targets.vim https://github.com/wellle/targets.vim .. which unlocks the n(ext) and l(ast) verbs(?) ..ahhhh it’s REALLY REALLY good, I use 2in” like a lot
-
Text-object selection works forward, but not backwards, and I'm curious about that
In fact, as /u/Chillbrosaurus_Rex points out, there's a plugin, targets.vim, that expands on Vim's built-in text objects, and one of the things it does is to provide this kind of forward and reverse direction functionality.
- Installing argtextobj.vim
- How to delete inside backtick pairs, e.g JS template strings.
-
neovim plugins that have improved your workflow
Hey, I use targets.vim, how does it compare with that?
-
Leap.nvim: Neovim’s Answer to the Mouse
You might benefit from targets.vim, it works well with your thought process. It adds a bunch of new really useful editing targets (which should be builtin imo).
https://github.com/wellle/targets.vim
-
Is there a textobject for `object.` in `object.property.another`?
Thanks for the through explanation. I has seen that and considered using it in the past. Can I ask how it compares to https://github.com/wellle/targets.vim? Would you consider mini.ai a replacement or complementary?
-
Why does ci" work from elsewhere on a line, but it doesn't for ci[ , ci{ ?
This is provided by targets.vim, along with a bunch of other useful text objects.
What are some alternatives?
When comparing nvim-surround and targets.vim you can also consider the following projects:
vim-sandwich - Set of operators and textobjects to search/select/edit sandwiched texts.
nvim-treesitter-textobjects
mini.nvim - Library of 35+ independent Lua modules improving overall Neovim (version 0.7 and higher) experience with minimal effort
wilder.nvim - A more adventurous wildmenu
indent-blankline.nvim - Indent guides for Neovim
todoist.nvim - A todoist extension for neovim
Neovim-from-scratch - 📚 A Neovim config designed from scratch to be understandable
vim-surround - surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease
harpoon
nvim-parinfer - parinfer for Neovim
paq-nvim - 🌚 Neovim package manager
nvim-surround vs vim-sandwich
targets.vim vs nvim-treesitter-textobjects
nvim-surround vs mini.nvim
targets.vim vs wilder.nvim
nvim-surround vs indent-blankline.nvim
targets.vim vs todoist.nvim
nvim-surround vs nvim-treesitter-textobjects
targets.vim vs Neovim-from-scratch
nvim-surround vs vim-surround
targets.vim vs harpoon
nvim-surround vs nvim-parinfer
targets.vim vs paq-nvim