Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2015-04-15

Replace a word with yanked text

Считается, что основным достоинством редактора 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

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)