Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm increasingly frustrated by typing this

:%s/some_really_long_string/some_other_really_really_long_string_that_may_or_may_not_related_to_the_first_one/gc

Is there any way to copy/paste those strings in ex mode?

share|improve this question
up vote 10 down vote accepted

You can use Ctrl-R to insert the value of a register on the Ex command line. If you've yanked some text into the default register, for example, you can recall it with Ctrl-R".

There are shortcuts for some common cases, too. You can insert the current word under the cursor with Ctrl-RCtrl-W, or the current filename with Ctrl-RCtrl-F.

See these topics for more information, including several more examples:

:help c_CTRL-R
:help cmdline.txt

Registers are worth reading about, too:

:help registers
share|improve this answer

I almost always avoid typing the search string in the substitute command by first executing a search (with /) or a "word under cursor search" (with *) and then executing:

:%s//other_string/gc

When the search pattern is missing, the substitute command will use the last search pattern.

Beside making you type less characters, the first case, searching with /, allow to first test a complex search pattern before executing the substitution. The second case, searching with *, allow to avoid inserting the start/end atoms, i.e. \< and \>.

--

By the way, you can avoid the g flag by adding the line

set gdefault

in your vimrc file. Why this is not the default is question on his own.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .