Считается, что
основным достоинством редактора Vim
является производительность. Та
производительность, которой достигает
пользователь, работающий над текстом
не снимая рук с клавиатуры.
Простой пример:
заменить слово под курсором на другое
слово, ранее скопированное в буфер
обмена. И потом еще несколько раз
повторить замену в нижележащем блоке
текста.
Как это делается
в Vim, цитирую:
Copy a word and paste it over other words:
yiw
|
yank inner word (copy word under cursor, say
"first").
|
...
|
Move the cursor to another word (say "second").
|
viwp
|
select "second", then replace
it with "first".
|
...
|
Move the cursor to another word (say "third").
|
viw"0p
|
select "third", then replace
it with "first".
|
Deleting, changing and yanking text copies the
affected text to the unnamed register (
""
).
Yanking text also copies the text to register 0 ("0
).
So the command yiw
copies the current word to ""
and to "0
.
Typing
viw
selects the current word,
then pressing p
pastes the unnamed register over the
visual selection. The visual selection that was just replaced is then
stored in the default unnamed register.
As you can see in the examples above, if you want
to paste the same thing a second time, then you must use the
"0
register, as in viw"0p
.
Попробуйте
проделать эту операцию несколько раз
и скажите мне, это правда быстро и просто?
Как я это делаю
в редакторе SciTE:
Даблклик ЛКМ
на копируемом слове.
^-C – скопировал.
Даблклик ЛКМ
на заменяемом слове.
Если заменить
надо несколько слов, ^-F
^-V – заменил
выделенное.
F3 – выделил
следующее вхождение заменяемого слова.
^-V – заменил
выделенное. И т. д.
Мне только
кажется или и правда, так проще?
Справедливости
ради необходимо упомянуть альтернативный
способ замены в Vim, цитирую:
An alternate method is to do the paste/replace
using
cw
. This method has the advantage of being easily
repeatable using the .
repeat command.
yiw
|
yank inner word (copy word under cursor, say
"first". Same as above).
|
...
|
Move the cursor to another word (say "second").
|
ciw<C-r>0
|
select "second", then replace
it with "first" If you are at the start of the
word then
cw<C-r>0 is sufficient.
|
...
|
Move the cursor to another word (say "third").
|
.
|
select "third", then replace
it with "first".
|
Да, чтобы найти
следующее вхождение слова под курсором
(Vim) надо нажать
*
следующее: n
а предыдущее:
N
Вот это и правда
проще.
И да, для еще
большей справедливости, поиск и замена,
вообще-то, делаются несколько иначе.
Через поиск и замену :)
original post http://vasnake.blogspot.com/2015/04/replace-word-with-yanked-text.html
Комментариев нет:
Отправить комментарий