Найти в Дзене
Блокнот математика

Рубрика "Секреты Вим". Скороговорки

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

Раз уж сегодня Международный женский день, поговорим о скороговорках. Известно, что в компании женщин все могут говорить одновременно и каждая будет слышать всех остальных. Женщина, также, может делать несколько дел одновременно и думать на несколько тем синхронно; Вим так не может, но кое-что может: это и обсудим.

Оглавление рубрики

Ну и, пользуясь случаем, горячо поздравляю всех прекрасных дам, читающих эти строки: женщина, знающая Вим, прекрасна вдвойне!
Ну и, пользуясь случаем, горячо поздравляю всех прекрасных дам, читающих эти строки: женщина, знающая Вим, прекрасна вдвойне!

В Вим есть комбинации, позволяющие выполнить некоторые операции очень быстро. Например, ddp меняет местами две строки, а xp - два символа. Аналогично можно размножить строку или символ: yy42p или, например, x42p (часто надо сделать что-то вроде ---- или ====).

df. удаляет все до конца предложения, а если затесалась точка в числе или надо удалить еще предложение - команда . повторит выполненную команду. И вообще, операция "точка", которая повторяет предыдущую, очень эффективна! Особенно в сочетании с n и N (повтор поиска). Нашел-повторил, нашел-повторил... Повтор замены & тоже полезен: можно найти, и, при необходимости, заменить.

Правда, тут есть нюанс. Команда
:s/6/666/g
заменит все шестерки на число Зверя в строке, но вот повтор на другой строки заменит первую шестерку на 666, а еще один повтор сделает уже не то, что от него требуется...

0d^ убирает пробелы в начале строки.

А вот =G сделает, напротив, отступы по всему тексту, от позиции до конца.

сi( убирает содержимое скобок, позволяя ввести новое. Скобки могут быть круглые, квадратные, фигурные и уголковые.

D удаляет все до конца строки. Хорошо сочетается с f и t: f!D прыгнет на начало комментария (которйы начинается с восклицательного знака) и удалит его. А вот команду Y, которая по историческим причинам эквивалентна yy, надо переопределять:

map Y y$

s удаляет символ и переходит в режим вставки, можно указать число удаляемых символов. Экономит пару нажатий.

Удобно заменить одинокий символ под курсором: rсимвол. Без перехода в режим вставки. А ~ поменяет его регистр.

o открывает новую строку и режим вставки, это проще, чем прыгнуть в конец, перейти в режим вставки, нажать enter. Хотя так тоже можно: A<CR>.

J соединяет строки, удаляя конец строки. 2J - то же, что J. Вообще, nJ соединит n строк.

dG удалит всё до конца текста.

mm оставит закладку, потом можно переместиться, посмотреть что-то, и вернуться `m. Также удобно вернуться к тому, откуда ушли поиском или еще как-то автозакладкой ``

Команды * и # позволяют поискать слово под курсором вперед и назад, а g* и g# делают это без якорей-границ слова.

% прыгает на парную скобку любого типа, кроме уголков, а также /* */. Если под курсором нет скобки, она ищется далее по строке, а парная может быть хоть где (не обязательно на той же строке).

число% перематывает примерно указанный процент текста. Так, 50% означает "отмотай примерно половину".

Путеводитель по каналу