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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjc3NzUsIm5iZiI6MTczOTM2NzQ3NSwicGF0aCI6Ii8xMjg0Mjg5LzM5MTM3NTkxMS1iNDk5OGMwYi1lMDYwLTQzM2YtOWE0Ni0wODEwZjY3YmQ4NWQuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTMzNzU1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjM4ZWZmMGVhYTE1YzNmODY0NTQ2NjdjMzJhMDQxZTIzMTgzYzExYWQwMDI0Y2ZlZTgzZjFkOTVkNjIwNTNiMiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Zo6weEXZNmq2_mErywdra9IeHayHaNbW00nr7CSnDqM)
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,
}