Have you ever just wanted to run some normal commands on your search results? I bet you have and you've done something like this g/wow/normal cwlookatme!
. It kinda worked, but you couldn't really preview what you were doing and it only worked on 1 match per line.
![](https://private-user-images.githubusercontent.com/1284289/391375911-b4998c0b-e060-433f-9a46-0810f67bd85d.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NjkzMTYsIm5iZiI6MTczOTQ2OTAxNiwicGF0aCI6Ii8xMjg0Mjg5LzM5MTM3NTkxMS1iNDk5OGMwYi1lMDYwLTQzM2YtOWE0Ni0wODEwZjY3YmQ4NWQuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTc1MDE2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjFmZDBhMjQxMTBkNmFmYjM0ZmIwYmU4ZmRhY2U0NGRmN2ZiNWU5ZjVhNmNkYTI2NWI1NDUwNTYwMWZhNGRiMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.vOw_FaZZB0fDtSj7pcZVJSTdTKgiFS8a_-eUehjum-0)
nos.nvim makes doing normal on searches a breeze by:
- executes normal commands for multiple matches on the same line
- showing you an incremental preview
- easily allows you to use NOS as an operator
Use lazy plugin manager
{
"zaucy/nos.nvim",
lazy = false,
opts = {},
config = function()
local nos = require('nos')
nos.setup({})
-- optionally set an operator keymap
vim.keymap.set({ 'n', "v" }, 'gs', nos.opkeymapfunc, { expr = true })
-- optionally set a whole buffer keymap
vim.keymap.set({ 'n' }, 'gss', nos.bufkeymapfunc)
end,
}