Антипаттерны Vim

Автор оригинала: Tom Ryder
  • Перевод
  • Tutorial
Когда вы находитесь в состоянии потока, Vim серьёзно ускоряет редактирование, будь то написание кода, поэзии или прозы. Но поскольку кривая обучения слишком крута для текстового редактора, то очень легко сохранить вредные привычки с тех времён, когда вы только осваивали редактор. Vim настолько ускоряет работу, что искоренить эти привычки особенно трудно, ведь их можно даже не заметить. Но это того стоит. Перечислю некоторые из наиболее распространённых антипаттернов.

Перемещение по одной строчке


Если вам нужно перепрыгнуть больше пары строк, то перемещение по одной строке клавишами j или k неэффективно. В Vim существует много способов перемещения по вертикали. Я считаю, что два наиболее полезных — прыжок по параграфам и по экранам. Это зависит от того, как далеко и как точно вам нужно двигаться.

  • { — Перейти к началу предыдущего абзаца или блока кода.
  • } — Перейти в конец следующего абзаца или блока кода.
  • Ctrl+F — Перейти вперёд на один экран.
  • Ctrl+B — Перейти назад на один экран.

Если вы точно знаете, куда нужно переместиться, то можно использовать навигацию через поиск: поиск вперёд клавишей /, а назад — ?.

Также всегда полезно вернуться на предыдущее место, что достаточно легко сделать двумя кавычками или gi: возврат к последнему месту, где вы вводили текст. Если хотите, можно даже перемещаться между всеми местами, где вводился текст, с помощью g; и g,.

Перемещение по одному символу


Точно также и перемещение по одному символу клавишами h и l часто является пустой тратой времени, когда у нас есть t и f:

  • t<char> — Переместиться вперёд до следующего появления символа.
  • f<char> — Переместиться вперёд за следующее вхождение символа.
  • T<char> — Переместиться назад до предыдущего вхождения символа.
  • F<char> — Переместиться назад за предыдущее вхождение символа.

Перемещение по словам клавишами w, W, b, B, e и E тоже лучше. И здесь полезна навигация с поиском, и не забывайте, что вы можете копировать, удалять и изменять текст вперёд или назад к результату поиска:
y/search<Enter>
y?search<Enter>
d/search<Enter>
d?search<Enter>
c/search<Enter>
c?search<Enter>

Поиск слова под курсором


Не утруждайте себя набором слова или копированием/вставкой, просто нажмите * или #. Поразительно, насколько быстрее становится работа, когда освоишь эти горячие клавиши.

Удаление и вставка


Нет необходимости удалять текст с целью его замены, перейдя в режим вставки:

d2wi

Быстрее и аккуратнее использовать изменения клавишу c:

c2w

Так вся операция становится повторяемой с помощью точки (.).

Использование клавиш со стрелками


Vim позволяет использовать клавиши со стрелками для перемещения в нормальном режиме и в режиме вставки, но если вы привыкли использовать для навигации hjkl, то стрелки уже кажутся какими-то неуклюжими, потому что в течение всей сессии Vim пальцы находятся в центре клавиатуры, что удобно для слепой печати. Аналогично и клавиши Home и End: хотя они работают как в большинстве редакторов, но нет особой причины их использовать, когда ближе эквиваленты ^ и $.

Таким образом, целесообразно отучить себя от клавиш со стрелками, отключив их хотя бы временно:

noremap <Up> <nop>
noremap <Down> <nop>
noremap <Left> <nop>
noremap <Right> <nop>


Слепая печать центральными клавишами не только даёт преимущество скорости, но и позволяет лучше себя чувствовать, потому что запястья отдыхают перед клавиатурой и не перемещаются слишком далеко, а некоторых людям это даже помогает уберечься от туннельного синдрома.

Перемещение в режиме вставки


Дополнительное преимущество слепого набора в центральной строке в том, что вы избавляетесь от привычки перемещаться в режиме вставки: для этого предназначен нормальный режим. Как только нужно куда-то переместиться, вы переходите в нормальный режим и перемещаетесь гораздо более эффективно. Это также помогает сделать операции вставки более атомарными и, следовательно, более удобными для повтора.

Нажатие Esc


Клавиша Escape на современных клавиатурах намного дальше от центрального ряда, чем на клавиатуре Билла Джоя, когда он разрабатывал vi. Обычно нажатие Escape не требуется: Ctrl+[ намного ближе и удобнее, вы довольно быстро измените свои привычки. Как вариант можно рассмотреть вопрос о сопоставлении в операционной системе на Esc довольно бесполезной клавиши Caps Lock или даже необычных сочетаний, таких как jj. Хотя это немного радикальное предложение, но хорошо работает для многих людей:

inoremap jj <Esc>

Перемещение к началу или концу строки, затем вставка


Просто используйте I и A. К тому же, они делают действие повторяемым для других строк, где может понадобиться такая же операция.

Вход в режим вставки, затем создание новой строки


Используйте o и O, чтобы создать новую строку ниже и выше, соответственно, и одновременно войти в режим вставки на ней.

Вход в режим вставки для удаления текста


Здесь довольно очевидное противоречие. Вместо этого удалите текст, переместившись в него и используя d с соответствующим движением или текстовым объектом. Опять же, такое действие повторяемо и означает, что вы не удерживаете Backspace. Вообще, если вы удерживаете какую-то клавишу в Vim, вероятно, есть более быстрый способ.

Повтор команд или поисков


Просто введите @: для команды или n/N для поиска; Vim не забывает последний поиск. Если это была не самая последняя команда или поиск, но она точно есть в истории, введите q: или q/, найдите её в списке и нажмите Enter.

Повторные замены


Введите & для повтора на текущей строке последней замены. Можете повторить её на всех строках, набрав g&.

Повторный вызов макросов


Просто введите @@.

На самом деле это всего лишь несколько распространённых способов, чтобы увеличить скорость и общую эффективность работы с редактором без установки плагинов или существенных переназначений клавиш. См. также вики с советами по Vim, там есть несколько других действительно полезных примеров.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 55

    0
    Не ошибка ли?
    поиск вперёд клавишей /, а назад — ?

    Это одна и та же клавиша.
      +1
      и как вы тогда набираете их в тексте?
        0
        С Shift'ом же. Только тогда это будет обозначаться комбинацией Shift+/
      0
      В русской раскладке нет.
      0
      Вместо Esc есть ctrl+c
        0
        Это не равнозначные команды.
        –1
        Мне кажется, что тут описаны какие-то совсем тривиальные действия, доступные в любом приличном ide, но только делаются они совершенно контринтуитивно. В принципе, «привычные» сочетания клавиш — тоже всего лишь привычные. Но в чем тут соль? Чего из описанного я не могу сделать в jetbrains? Где преимущество vim?
          +2
          Ну не много где такое же управление как в vim. И да, многие продукты копируют стиль vim.

          Его плюс в том, что он, например, есть на каждой Linux машине, и работает в терминале (привет, ssh).
          Мне, как инженеру-админу очень удобно например. И код подправить, и конфиг написать.

          И грузится он моментально в отличие от ide.
            0
            Ну, как я понимаю, главным преимуществом вима заявляется скорость. Так-то nano тоже везде есть. И конфигурации править в нем тоже можно. Но никто же через ssh не редактирует код так, чтобы там надо было десятипальцевой печатью пользоваться?
              0

              Скорость имеет значение, но она точно не главное преимущество. Скорость важна ровно настолько, чтобы не испытывать раздражение от тормозов: быстро работает подсветка синтаксиса, быстро открываются большие файлы, быстро можно попасть в нужное место файла… но всё это отдельные и не очень критичные кусочки общей картины.


              А общая картина в том, что vim позволяет легко сделать абсолютно что угодно. Любая сложная операция над текстом выполняется нажатием нескольких кнопок. В результате нет задержки между "решил что-то сделать" и "уже готово", что позволяет работать с текстом вообще не чувствуя препятствия в виде "приложения текстовый редактор" между собой и текстом. Конечно, у этого есть цена, и она довольно высока: нужные кнопки надо знать, vim надо настроить под себя, надо подобрать к нему плагины, изредка эти плагины надо сначала написать. Но если текстовый редактор — это одно из основных приложений, в которых проводится большая часть времени, то оно того стоит.


              И вот здесь проявляется принципиальное отличие между большинством редакторов. Vim и Emacs достаточно сложные, чтобы их было возможно настроить под себя и освоить до такой степени, чтобы действительно перестать воспринимать редактор как помеху, чтобы он стал уютным и удобным чудо-инструментом, невероятно облегчающим ежедневные задачи. А все остальные популярные редакторы и близко не обладают такой сложностью и гибкостью, поэтому ими проще начать пользоваться, но уютными они не станут никогда и всегда будут где-то мешать, в большей или меньшей степени — в зависимости от сложности и разнообразия выполняемых с текстом операций.

                0
                быстро работает подсветка синтаксиса, быстро открываются большие файлы

                В коде на плюсах это сломалось в районе 2011-2012 года.


                Не подумайте, я сам любитель вима (вернее, его биндингов).


                Vim и Emacs достаточно сложные, чтобы их было возможно настроить под себя и освоить до такой степени, чтобы действительно перестать воспринимать редактор как помеху, чтобы он стал уютным и удобным чудо-инструментом, невероятно облегчающим ежедневные задачи.

                Только если начинать делать из них IDE, то они начинают тормозить. Емакс у меня тормозил ну просто сразу, а vim… Ну, hie жрёт по 4-6 гигов на проект, idris-vim начинает лагать на файлах больше пары сотен строк.


                Нет счастья.

                  0

                  Если не пытаться делать "вообще совсем полноценный IDE", а ограничиться "самое важное и основное от IDE" — то в среднем оно вполне летает и разницы по скорости с vim "из коробки" практически не заметно. Но, да, это сильно зависит от языка, и скорость работы и поддержка IDE-шных фич сильно отличается. Для Go — всё просто супер.

                +3
                В смысле, никто не редактирует?
                  0
                  Но никто же через ssh не редактирует код так, чтобы там надо было десятипальцевой печатью пользоваться?

                  Почему нет?
                  Какие-нибудь скрипты писать-отлаживать сразу на месте на удаленном сервере — нормальный такой способ использования.

                  При использовании совместно с mosh, а не ssh — даже и на не очень хорошем канале связи комфортно работать.

                  Так-то nano тоже везде есть.

                  Он не совсем полноценно эмулирует те «горячие клавиши», к которым мы привыкли в Windows, к примеру. У терминалов есть ограничения на сочетания клавиш. Поэтому все равно придется учить. Ну а почему бы не выучить сразу нечто более заточенное на терминал?

                  vim только кажется сложным.
                  40-минутного vimtutor вполне достаточно чтобы начать работать.

                  0
                  И грузится он моментально в отличие от ide.

                  Это голый vim, без кучи плагинов, что приближают его к IDE — только такой голый vim и грузится мгновенно.

                  Но целом да, даже и с плагинами — все равно существенно быстрее IDE.
                    0

                    Существенно быстрее — это явное преуменьшение. У меня куча (36 в данный момент) плагинов в ~/.vim/bundle/ плюс тьма других настроек (750 строк только в vimrc, а плюс к нему ещё кучка файлов с настройками есть), и при этом vim запускается (восстанавливая при этом предыдущую сессию и открывая кучу файлов в разных вкладках, которые были в нём открыты в прошлый раз) быстрее, чем на клавиатуре отжимается Enter после набора vi<Enter>.

                  +2
                  Дело в том, что это статься не про преимущества вима, статья всего лишь показывает новичкам, чего им стоит остерегаться и к чему приучаться, чтобы стать умельцами этого редактора. Чтобы люди прекратили приходить в вим и использовать его как блокнот, только с hjkl вместо стрелок. А если Вы хотите найти причины, зачем вам стоит на вим перейти, для этого существуют многие другие статьи, хотя лично меня убедили видео, как другие люди со скоростью света редактируют tex, это было невероятно круто. (-:
                    0
                    Ссылочку на видео не дадите?
                      0
                      Большую часть времени я всё же думаю над тем, что написать в коде или в тексте, а не собственно пишу. В этом смысле, не особо понятно, зачем мне редактировать текст быстрее, чем сейчас. По крайней мере, освоение 10-пальцевого метода печати покрыло бы нужду с значительным избытком, но не привязывало бы меня к одному конкретному редактору. К чему все эти «скорости»? Потоковый перегон речи в текст? А для этого точно нужен вим?
                        +1

                        Суть не в скорости набора текста, а в скорости преобразования мыслей в результат. Мысль "надо переставить этот абзац выше, перед предыдущим" может быть реализована нажатием нескольких кнопок. Равно как и мысль "надо скопировать содержимое этого блока for в вот тот if". Равно как и мысль "надо отсортировать поля в объявлении этой структуры". Равно как и мысль "надо добавить json-теги полям этой структуры". Когда такие преобразования выполняются моментально, то не происходит прерывания процесса обдумывания реальной задачи ради обдумывания последовательности действий, которые надо выполнить в текстовом редакторе, чтобы получить результат, и ожидания пока все эти действия будут выполнены.

                          0
                          Быстро сделал пару мелких правок, а потом всё равно сидишь и думаешь. Куда так торопиться-то?
                            +3

                            Не "торопиться", а "не отвлекаться".

                              0
                              Быстро сделал пару мелких правок, а потом всё равно сидишь и думаешь. Куда так торопиться-то?


                              Не совсем так.

                              Да, программист мало пишет и много думает. Но при этом он регулярно по коду перемещается. Еще и пробы проводит, которые потом удаляет.

                              Сидит совсем уж неподвижно мало времени.

                              Есть специальные программы для замера «пробега мыши в день» и количества нажатий на клавиши.

                              Поставьте, замерьте и сравните с тем объемом правок, что отправляете в git (там как раз будет видная разница изменений в количестве символов). Разница, вангую, будет и в сотни раз.

                        0
                        Vim для тех, кто владеет слепой десятипальцевой печатью, а также не задумывается при использовании его команд. В таком случае скорость работы с текстом просто умопомрачительная. В JetBrains, как и во многих других популярных программах можно включить эмуляцию Vim.

                        habr.com/ru/post/307084
                        Смысл в том, что с vi ваша клавиатура превращается в специализированный геймпад для редактирования текста с практически сотней кнопок, каждая из которых имеет как минимум две функции — с шифтом и без шифта; таким образом, у вас уже под две сотни функций доступных по нажатию одной кнопки (не считая шифта) (прим. пер.: что-то много автор насчитал, можно смело на два делить). Мощные сами по себе команды можно комбинировать друг с другом для получения наилучшего результата. Во время ввода это стандартная клавиатура, но при возврате в командный режим это идеальная машина для редактирования текста
                          +1
                          Я регулярно пишу как код, так и тексты. Довольно много. И даже десятипальцевый метод ввода для меня избыточен, так как большую часть времени всё же думаю. Мне не понятна область применения программы. Хорошо, конечно, что и такое есть, но выглядит это чем-то из прошлого века без видимых преимуществ.
                            0
                            Даже если не нужна высокая скорость, десятипальцевый метод гораздо лучше, так как не нужно напрягать глаза и кивать головой. Процесс обучения нудный и раздражающий, но если осилите, обычный способ набора будет восприниматься как пытка.

                            Мне же захотелось пойти дальше, и я начал изучать Vim. Не могу сказать, что владею им в совершенстве, но уже сейчас при работе в других редакторах чувствую себя связанным по рукам и ногам. Редактором дело не ограничилось, и я перевел на аналогичное управление браузер, IDE и для программу для просмотра PDF и djvu.
                              0

                              Суть не в том, что десятью пальцами текст набирается быстрее. Суть в том, что при этом учишься слепому набору. А слепой набор позволяет преобразовывать мысли в текст не отвлекаясь на рассматривание клавиатуры и постоянное переключение внимания между клавиатурой, экраном и мыслями.

                              0
                              В JetBrains, как и во многих других популярных программах можно включить эмуляцию Vim.


                              Использую.
                              Но, к сожалению, там не полноценная поддержка:

                              1) Копирование-вставка из внешних источников не проходят командами vim. Только обычными командами копирования (при включенном vim-эмуляторе эти команды только мышью через контекстное меню и возможны).

                              2) vim-команды только к области окна редактирования относятся.

                              –1
                              «Преимущество Vim» в статье не перечислены ) На мой вкус они следующие:
                              — это редактор который работает в текстовой консоли через ssh)
                              — Им действительно можно пользоваться когда у вас плохая связь с удаленным узлом где вы пытаетесь поправить конфигурационный файлик или посмотреть логи) все вот эти странные команды: типа перейти на 5 слов вперёд или на четыре строки вниз — помогают )
                              — VIMом можно открыть на редактирование текстовый файлик размером 1Gb )
                              … откровенно говоря не знаю чем ещё можно.
                              Конечно команды VIM это суровое легаси, но просто дизайн и идеология в нем от VI который в свою очередь задумывался во времена зелёных терминалов и тогда видеть на экране текст который ты редактируешь это было высшим достижением человеческой мысли)
                              Тогда VI конкурировал по юзаблити с перфокартами)
                                +2

                                Насчёт "суровое легаси" я не уверен. Я вчера спросил жену, зачем она много лет назад поставила под виндой Vim… я ожидал услышать про какие-то киллер-фичи Vim по сравнению с виндовыми редакторами, но ответ был неожиданным: "мне надоело постоянно набирать :wq при попытке выйти из Блокнота". :) Суть в том, что это "суровое легаси", как ни странно, достаточно мнемонично и въедается в мышечную память, и в результате это не столько легаси, сколько вполне актуальный и эффективный в наши дни способ управления редактором.

                                  0
                                  Плюс один. А для всех, кто говорит «да зачем мне учить десятипальцевый метод, думаю я все равно медленнее, чем печатаю», и «да зачем мне учить Vim, у меня все что мне надо есть в Idea» я бы сказал — вы просто попробуйте. Если осилите, вам скорее всего понравится.
                                0
                                Чего из описанного я не могу сделать в jetbrains?

                                Мышью не пользоваться от слова «вообще» — то есть вообще не пользоваться. Возможно, можно все и в IDE Jetbrains настроить на безмышинный способ, только вот в реальности никто этого не делает.

                                Использовать куда как более слабое железо для полноценной работы.

                                Работать удаленно вполне себе полноценно.
                                +1
                                Вместо этого удалите текст, переместившись в него и используя d с соответствующим движением

                                Кстати ИМХО использовать операции с движениями не всегда лучше, чем лупить по одной и той же клавише. У повторного нажатия клавиши огромное преимущество — 0 ментального усилия, не нужно думать, какой текстовый объект скормить команде. С этой точки зрения jjjjj, как ни странно, лучше чем 5j. Парадокс — при маленьких перемещениях вверх-вниз удобнее повторно жать j, чем использовать префикс, а при больших перемещениях не знаешь префикс — тоже приходится искать более удобную альтернативу, например поиск.

                                Примерно то же с удалением — при правке небольшого неструктурированного куска порой приятнее x/X, чем d с аргументом.
                                  0

                                  вот тоже иногда думаю, что 5j надо ещё подумать, на сколько j сместиться… но так и не пришёл к какому-то однозначному выводу: то так попробую, то эдак… как в том анекдоте про мешающую спать бороду не могу выбрать что лучше.

                                    +2

                                    set rnu
                                    И больше не надо думать, vim покажет номер строки.

                                      0
                                      все равно надо отнимать в уме
                                        0
                                        Зачем? Номер же относительный, от положения курсора.
                                    0

                                    Согласен, но есть нюанс: при работе на удалённом сервере и в условиях диких тормозов (либо из-за сети, либо из-за гигантского loadavg на сервере) промахи из-за лишнего нажатия обходятся слишком дорого (по времени), но зато очень легко посчитать на сколько строк/символов надо сместиться/удалить/заменить и использовать префикс для точной и быстрой навигации.

                                      0
                                      Мне кажется, это значит, что вы ещё не привыкли к виму. (-: Однажды я открыл его и понял, что текстовые объекты и движения стали моим способом мыслить о строчках и буквах передо мною: когда я вижу интересующий меня объект, я вижу его как слово, СЛОВО, строку или text-object, а например думать про движения в рамках 5j помогает опция 'relativenumber'.
                                        0

                                        В случае с Vim есть ещё вариант «войти в визуальный режим (v / V / ^V), выделить нужный текст, выполнить операцию» — с одной стороны, это позволяет перед выполнением операции убедиться в том, что выделено именно то, что нужно, с другой стороны, в случае, если для выделения достаточно одной команды движения, это значит, что нажатие v было лишним. Хотя привычка использовать v и V мешает, если приходится редактировать что-то в среде, где полноценный Vim недоступен, а есть только базовый vi.

                                        +3

                                        Я vim использую уже лет 20 примерно, но никогда не понимал ни тяги к hjkl, ни смысла отказываться от навигации стрелками в режиме вставки. Более того, я ещё и на Ctrl/Alt/Shift-стрелки навесил разные полезняшки.


                                        И не надо рассказывать, как это замедляет работу — нажать Up из режима вставки точно не медленнее, даже с учётом перемещения кисти на стрелки и обратно, чем Esc, k, i. Более того, обычно смысл выходить из режима вставки для навигации объясняется тем, что просмотр текста и внесение изменений — это разные задачи. Это правда, и именно поэтому перенос руки на стрелки и обратно при переключении между этими задачами работает ничуть не хуже (а как по мне — даже лучше), чем Esc и i. Плюс когда рука на стрелках то легко доступны дополнительные кнопки навигации PgUp, Home, etc. плюс комбинации с Ctrl/Alt/Shift — и хотя по возможностям это далеко от того, что может вытворять vim в командном режиме, но в 99% случаев этого более чем достаточно.


                                        Плюс к этому есть и другие причины, по которым перемещение руки на стрелки не является проблемой: при работе в браузере (например, написании этого комментария) и других приложениях (мессенджерах, etc.) всё-равно приходится пользоваться стрелками (поэтому проще использовать один подход везде), при программировании большую часть времени мы читаем код и думаем, а не быстро редактируем текст, так что постоянно держать обе руки в середине клавиатуры большую часть времени бессмысленно и неудобно.

                                          0
                                          Является ли золотая комбинация <Esc>:wq<Enter> антипаттерном vim?
                                            +1
                                            ZZ по мне быстрее
                                              0
                                              Вместо неё удобнее использовать :x, кмк.
                                              0
                                              Может кто-нибудь знает какой-нибудь plugin или имеет готовый remap чтобы при смене раскладки команды работали. Например чтобы клавиши ролд работали как hjkl.
                                                –1
                                                попробуйте
                                                set langmap =йцукенгшщзхъ;qwertyuiop[]
                                                set langmap+=ЙЦУКЕНГШЩЗХЪ;QWERTYUIOP{}
                                                (таких пар строк может быть несколько)

                                                И вообще покурите langmap.
                                                (но у меня замечание есть: не удаётся сделать langmap для 'б' и 'Ю')
                                                  0

                                                  Я для этого написал ruscmd, он более продвинутый по сравнению с вышеупомянутым вариантом на langmap.

                                                    0

                                                    set keymap=russian-jcukenwin в .vimrc

                                                      0
                                                      Возможно, Вам как и мне, будет удобно мапнуть все и сразу:
                                                      set langmap=ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕHГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ;`qwertyuiop[]asdfghjkl\\;'zxcvbnm\\,.~QWERTYUIOP{}ASDFGHJKL:\\"ZXCVBNM<>


                                                      Уже упомянутый до меня вариант
                                                      set keymap=russian-jcukenwin
                                                      позволяет не переключаться в русскую раскладку в системе, а только в vim по <C-^>.
                                                      +2

                                                      В VSCode классная эмуляция Vim. С ним проблема выбора: IDE или нормальный редактор — наконец-то отпала.

                                                        0
                                                        Если вам чтото надо повторить много раз, логичнее использовать регекспы.

                                                        Вообще непонятно почему выход-вход в режим редактирования быстрее передвижения руки на стрелку.
                                                        Комуто удобнее так, кому то этак.
                                                          0
                                                          По своему опыту работы с vim (точнее эмуляцией vim на VisualStudio), постоянно сталкиваюсь с одной очень неудобной ситуацией: когда нужно скопировать один кусок текста и вставить с заменой в нескольких местах. После первой вставки с заменой, в буфер помещается заменяемый текст, поэтому приходится повторно копировать кусок. Выглядит это примерно следующим образом: yaw (скопировал) vaw(выделил другое слово) p(вставил) yaw(копирую заново в буфер) и т.д. Я знаю, что есть специальная команда вроде «0p, которая выполняет вставку из определенного буфера, однако само сочетание „0p набирать не очень удобно.
                                                          Интересно, с какими неудобствами сталкивались Вы и как их преодолели?

                                                          P.S: Почему автор в статье не обратил внимание на одну из важнейших команд — .(точка), которая повторяет предыдущее действие.
                                                            0
                                                            Макрос? Запишите действия по замене слова, затем повторите через @@. При необходимости перезабейте @@ на более удобную.
                                                              0

                                                              Можно загнать текст в нестандартный буфер ("ayy например) и вставлять от туда. Так заменяемый текст не будет затирать вставляемый.

                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                            Самое читаемое