Pull to refresh

Comments 41

qq — начать запись команд в макрос
q — остановить запись
10 @q — использовать макрос 10 раз

Полезно, например, если необходимо удалить каждую вторую строчку файла или если есть серия файлов, с которыми необходимо сделать одинаковые действия.
Extra tip: «qq — начать запись команд в макрос» — вторая буква после q может быть любая. Например, qx -> @x. Так можно записать несколько разных макросов.
гг)
как раз совсем недавно удалял каждую вторую строчку с помощью
:%s/\(.*\)\n.*\n/\1/g
где вводиться как — ctrl+K, Enter

забыл про макросы)
парсер чуть текста съел (ENDL был в угловых скобках)
:%s/\(.*\)\n.*\n/\1ENDL/g
где ENDL — вводиться как — ctrl+K, Enter
А существует ли возможность выполнить макрос «до конца файла»?
К примеру, если макрос за один раз обрабатывает одну строку и этот макрос нужно применить ко всем строкам, то нужно указать N@q, где N — количество строк. А можно ли N заменить чем-то, что бы автоматически выполнялся макрос до конца.

@@ — использовать предыдущий макрос.

Есть также удобная команда. (просто точка), повторяет последнее действие.

Например, есть строка: «hello world, hello people», тогда если поставить курсор на первую букву h и в режиме редактирования нажать 5 раз delete, написать какое-то слово, и переместить курсор ко второй h и нажать точку, то оно удалит hello и запишет слово, которое было введено ранее.
как-то совсем последний абзац проигнорировал, каюсь
В чем сакральный смысл повторять то, что и так написано в тысячах других шпаргалок, мало того, все что вы написали, есть в tutorial'е для новичков.
Ответ кроется в заголовке-дисклеймере (Yet Another ...).
десять команд — это нифига не шпаргалка, а десять команд, из которых больше половины элементарщина, которая запоминается сама по себе в процессе использования — вообще гроша ломанного не стоит. Что же вы не упомянули i — вход в режим ввода, v — вход в визуальный режим.
Читателям Хабры судить, что элементарщина, а что — нет.
тогда мне жаль хабр, раз это на главной. Хабр все-таки не жж, в котором уместно писать: «Ах, я сегодня впервые увидил вим и вот команды, которые я изучил»
Хабру тебя тоже очень жаль :)
«читателям Хабры судить», «хабру очень жаль» — у вас есть собственное мнение, зачем говорить за других, говорите за себя. И не надо мне «тыкать», мы вообще не знакомы.
в vimtutor половины нету.

В принципе, этот топик — хороший способ обратить на ВИМ дополнительное внимание. По-моему, это хорошо. Кроме того, я хоть и сижу в VIM, но в целом в повседневной жизни использую ограниченный набор его «фишек», которые когда-то запомнились, как самое нужное. Проходит время, эти «фишки» становятся повседневностью и я открыт запомнить что-нибудь ещё. Неплохо, когда кто-то другой предлагает мне свой набор постоянных, отобранных «фишек».

Мне этот топик был полезен, т.к. с его помощью я немного расширил свой «постоянный» набор.
Спасибо за:
`. — перейти к последней редактируемой строке.
`` — перейти к последней активной строке.
g; g, — можно ходить по истории позиций изменений
UFO just landed and posted this here
Вопрос был не ко мне, но я за себя скажу — в виме свои регулярки, синтаксис отличается, зачем помнить 2 синтаксиса регулярок, когда можно помнить один?
UFO just landed and posted this here
Вот в том то и дело, что надо кучу всего экранировать в виме. Есть конечно 'magic', но проще использовать :perldo, чем запоминать, что надо экранировать, а что не надо и в каком режиме.
Перловые регулярные выражения знаю хорошо, а вот встроенные — не очень, поэтому и пользуюсь. К тому же реализация в перле одна из самых (самая?) мощных.
UFO just landed and posted this here
очень используемы еще комманды
do)
di"
vo{


d или v — удалить или выделить
o или i — включая или не включая пограничные символы
последний символ — область внутри любых видов скобо, ковычек, слово (w)
<b<di{ — убийственная команда, нигде раньше не встречал. А вот do{ — не работает, говорит что буфер не в diff режиме.
вместо o надо a. :help text-objects
Мнемоника: i — inner object, a — an object.
спасибо. писал уже поздно вечером и на автопилоте расшифровал как inner и outer.

извените все, что ввел в заблуждение)
gd хорош, спасибо.

[[ выходит на верхнюю из вложенных (определение класса например). Есть такая же команда, но только для текущей функции?
Я не очень понял вопрос, но возможно [{. А вообще :help 29.3
Да, спасибо, [{ должен работать. Но в python не работает :)
Очень рекомендую отличный учебник по vim на _простом_ английском языке.
Byte of Vim
Все эти шпаргалки БЕС-ПО-ЛЕЗ-НЫ.

Главое — научиться контролировать что ты делаешь и оптимизировать СВОЙ рабочий процесс. Ну а единственная команда vim, которую действительно стоит выучить, это :help.

Такая моя ИМХА :)
Именно об этом Брам рассказывает в видео 7 Habits For Effective Text Editing. Найти, что тебя тормозит — научиться делать это быстрее.
Sign up to leave a comment.

Articles