Необычный взгляд на редактирование текста. Часть I.
Каждому из нас хоть раз в жизни приходилось иметь дело с обработкой текстовых документов. Дело казалось бы обыденное, открыл “офис” и вперёд, но некоторые до сих пор его не любят за то, что в нём куча ненужных для них вещей, а кто-то просто откровенно ими не умеет пользоваться. :)
Данный набор советов не претендует на то, чтобы полностью заменить вам ваш привычный текстовый редактор. Однако здесь я покажу вам как с помощью бесплатной и самое главное мощной утилиты сделать редактирование текста максимально быстро и эффективно.
Первое, что необходимо вам понимать, это то, что данная утилита довольно-таки сложна для начального уровня и требует некоторого понимая работы в командной строке (да, исходная программа, которая называется *vi, не имеет графического интерфейса). И хотя я буду показывать все примеры в командной строке, эти же примеры можно повторить в программе *Vim, которая как раз имеет данный графический интерфейс и немногим облегчит вам работу.
Вторым пунктом я хотел бы выделить именно тот факт, что я не хочу чтобы вы уходили от того же MS Office, (да и функционал в данной программе несколько иной), я лишь хочу показать то, как не имея лицензии на крупные программные продукты, а также надобности в тяжелом редактировании текста, использовать действительно полезный и главное очень эффективный продукт.
Итак, пустимся же в “весёлое приключение” по небольшой Вселенной Vi и Vim!
Навигация по статье:
1. Это необходимо знать
Прежде чем приступить к написанию советов, хотелось бы остановиться на паре моментов, которые необходимо помнить.
- Установка. Скачать и установить ПО вы можете по данной ссылке. Сложного в установке нет ничего, поэтому я верю в то, что вы справитесь. Я же буду использовать версию vi, которая есть в моем текстовом редакторе VS Code. Не пугайтесь! Всё, что я буду делать, вы сможете сделать и в Vim, установленный лично вами.
- Примеры. Всё, что я буду выполнять, будет сопровождаться gif-анимационным файлом, в котором будут показаны все клавиши, задействованные в данном примере. Это очень удобно, как мне кажется, и вы сможете всегда вернуться и разобрать непонятный вам материал (хотя я очень верю, что такового не будет!). К сожалению, исходники самих примеров я выкладывать никуда не буду, поэтому вам придется на личных примерах разбираться как использовать ту или иную команду. Это поможет вам более тщательнее изучить весь материал и более подробно разобраться в интерфейсе и командах программы.
- Слепая печать. Пожалуй, это единственное условие, которое необходимо выполнить прежде чем приступить к изучению Vim. Вам действительно будет тяжело разобраться в некоторых моментах без данного навыка, так как эфффективность работы в данной программе достигается за счёт ловкости рук!
2. Совет № 1. Повторение - мать учения
В повседной работе мы не замечаем как часто выполняем одни и те же операции: “скопировал - вставил”, “скопировал - вставил” и так десятки, а то и сотни раз всеразличных комбинаций клавиш. Если мы сможем как-то упростить выполнение одних и тех же операций, то сэкономим большое количество времени.
Редактор Vim позволяет отслеживать последние выполняемые операции и затем повторять их снова и снова, пока нам это будет необходимо. Однако, прежде чем приступить к редактированию какого-либо текста, необходимо упомянуть о двух основных режимах работы редактора Vim:
- командный режим - обыкновенное состояние редактора, в котором выполняются все команды, за исключение главной функции редактора - редактирование текста. И это следует понимать, потому что очень часто возникают казусы, по которым люди не понимают различия в режимах и тем самым не могут найти решение в той или иной проблеме.
- режим вставки - как понятно из названия, в данном режиме происходит набор необходимого нам текста.
При входе в программу вы попадаете в командный режим, а при нажатии клавиши i
в режим вставки. Для того чтобы вернуться обратно в командный режим необходимо нажать клавишу Esc
. Как видим ничего сложного нет!
Примечание. Как узнать в каком режиме вы сейчас находитесь? Очень просто, в режиме вставки в левом нижнем углу будет надпись
--ВСТАВКА--
или--INSERT--
(если у вас установлена англоязычная версия). При выходе в командный режим данная надпись исчезает.
Итак, для того чтобы повторить последнее изменение, в редакторе Vim существует команда “точка”. Данная команда одна из самых мощных и гибких в редакторе. При этом, под “последними изменениями” понимается изменение как над отдельными символами, целыми строками или даже файлами!
Краткая справка по командам.
Все команды выполняются в командном режиме!
h
- шаг влевоj
- шаг внизk
- шаг вверхl
- шаг вправоx
- удаление символа под курсоромu
- отменить последнее изменениеdd
- удаление целой строки
Текущие команды будут использоваться в нашем первом примере. Вы увидите каким образом происходит перемещение по файлу, удаление символа, строки, а также повторение этих же действий с использованием магической команды “точка”.
В качестве примера я возьму небольшую программу и в ней проведу все наши эксперименты.
Пример 1. Демонстрация применения команды "точка"
Обратите внимание на то, где расположен курсор и какие изменения происходят после выполнения определенной команды. А еще лучше, возьмите произвольный текст и поиграйтесь сами, выполняя различные команды.
Замечание!!! Для того чтобы выйти из данного редактора, особенно если вы выполняете упражнения в командной строке, необходимо выполнить одну из комбинаций клавиш:
:q!
- выход из программы без сохранения:wq
- выход из программы c сохранениемНе забывайте, что команды выполняются в командном режиме!!!
Данная проблема очень популярна в интернете, так как начинающие пользователи не имеют представления как выйти из данного редактора. По этому поводу есть даже небольшая заметка в блоге stackoverflow. Там отмечено, что помощью по вопросу выхода из Vim воспользовалось более 1 млн. человек!!!