i have this code snippet. I want to replace all the empty spaces with one space.
In IntelliJ i would simply multi-cursor, jump to the -- use option + shift + left arrow then right arrow to select all the spaces and type a space which replaces them.
I'm new to vim and haven't found any solution that achieves this.
vim.opt.showmode = false -- we don't need to see things like -- INSERT -- anymore
vim.opt.showtabline = 2 -- always show tabs
vim.opt.smartcase = true -- smart case
vim.opt.splitbelow = true -- force all horizontal splits to go below current window
vim.opt.splitright = true -- force all vertical splits to go to the right of current window
vim.opt.swapfile = false -- creates a swapfile
vim.opt.termguicolors = true -- set term gui colors (most terminals support this)
vim.opt.timeoutlen = 1000 -- time to wait for a mapped sequence to complete (in milliseconds)
vim.opt.undofile = true -- enable persistent undo
vim.opt.writebackup = false -- if a file is being edited by another program (or was written to file while editing with another program), it
Thanks.
In my semi-fresh install of Intellij IDEA CE, the correct sequence would be:
In Vim, you could simply use a multi-cursor plugin, there are a few, or do it…
With a substitution:
where…
vipvisually select the current "paragraph", see:help vand:help text-objects.'<,'>is the:help :rangeof lines on which to execute the following command. You can indicate a range explicitly or implicitly, by selecting the range of lines before entering command-line mode. This is what we did, here, and Vim inserted the corresponding range automatically:'<,'>.s/ \{2,}/ /is the substitution\{2,}matches 2 consecutive spaces or more.is, well… a single space.<CR>is the Enter key.With the "dot formula":
where…
/ \{2,}<CR>searches for the next sequence of 2 or more spaces. In this case, we are just setting the stage for the next commands.cgn<space>replaces the current or next search match with a<space>, see:help cand:help gn..repeat the previous command nine times, see:help ..FWIW, I have a custom mapping that makes it possible to use a count before
.:which shortens the command above quite a bit at the cost of counting the lines so YMMV:
Philosophical considerations:
<down>s and<left>s, but it eventually grows on you.