Текстовый редактор vim

У меня директор в компании, которому я подчиняюсь, любит работать с vim, причем это девушка и она прекрасно пишет исходный код C# в этом редакторе из под Windows. И это не смотря на то, что для C# на много лучше подходит Visual Studio.

Тут есть какой-то смысл, потому что с помощью vim можно редактировать файлы имея доступ к удаленной системе только из командной строки, а под Windows это легко достигается, если установить cygwin.

Лично я знаю vim не так уж и профессионально, но достаточно для того, чтобы пользоваться этим редактором. Я не помню всех команд и пользуюсь только некоторыми, которые мне нужны в ежедневной работе. Хотя если честно, то я не пользуюсь им ежедневно. Только по мере необходимости. Просто я не на столько повернут, чтобы писать код в vim, но если надо, то смогу без проблем. Я больше использую этот редактор для работы с конфигурационными файлами и для написания shell скриптов. В общем, для системных нужд. 

На первый взгляд текстовый редактор vim кажется очень сложным, но это только кажется. Запомнив всего несколько команд, которые мы рассмотрим в этой статье вы будете себя чувствовать вполне комфортно. 

Прелесть vim в том, что он есть для разных платформ и я им пользуюсь как в Linux, так и в MacOS X. 

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

vim test.txt

Можно указывать полный путь к файлу, а можно ограничиться только именем, если файл находиться в той же директории. Команда выше откроет для редактирования файл test.txt. 

Тут нужно сразу же отметить, что если файл test.txt не существует, то не будет никакой ошибки, vim все равно запуститься и сделает вид, что он открыл test.txt. Если же вы попросите vim сохранить текст, то в этот момент будет создан файл с указанным именем. Если же вы просто выйдите из редактора без сохранения, то файл создан не будет. 

У vim есть два режима работы – командный и редактирование текста. По умолчанию редактор открывается в режиме команд. Все, что вы вводите с клавиатуры будет восприниматься как команды, а не как желание что-то напечатать в файле. 

Чтобы перейти в режим  редактирования текста, нужно нажать клавишу i (наверно от слова insert). Курсор измениться на курсор редактирования и внизу окна (наверно правильнее сказать консоли) появиться надпись:

-- INSERT --

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

Рекомендую читать этот манул и одновременно пробовать команды, которые мы будем описывать, тогда вы сможете быстрее запомнить их. Попробуйте нажать клавишу i и набрать немного текста. Для возврата в командный режим нужно нажать кнопку ESC. Надпись внизу консоли исчезнет. 

Небольшое отступление. Все команды я буду указывать в квадратных скобках: [команда].  Сами квадратные скобки нажимать не нужно, они здесь только для выделения. Вам нужно только нажать клавиши, которые указаны внутри скобок. Например, [i] говорит о том, что нужно нажать клавишу i. 

Команды vim я бы разделил на два типа (не знаю правильно ли это, но мне кажется так будет удобнее) – работы с текстом и работы с редактором. Вторые начинаются с символа двоеточия. 

Чтобы записать изменения, нужно выполнить команду [:w]. Прямо так и нужно нажимать: сначала двоеточие, и потом клавишу [w]. Если вы создали новый файл без указания имени, то сохранение будет невозможным и редактор покажет ошибку. Чтобы указать имя файла при сохранении выполняем команду: [:w filename.txt]. Здесь filename.txt – это имя файла. 

Сохранив изменения можно выйти из редактора, нажав :q (скорей всего от слова quit). Для некоторых случаев есть удобные сокращения, которые выполняют сразу две операции. Например, следующая команды говорит vim, что нужно сохранить изменения и выйти [:wq]. Если после этого через пробел указать еще и имя файла, то данные будут сохранены в файл с этим именем и vim закроется. 

Если не нужно сохранять изменения, то выполняем команду [q!]. 

В режиме редактирования по файлу можно перемещаться с помощью стрелок, а в режиме команд можно использовать стрелки или клавиши [h], [j], [k] или [l]. Нет особого смысла запоминать эти клавиши, потому что большинство кажется пользуется стрелками, они удобнее. 

В командном режиме для перемещения по тексту лучше запомнить клавиши: 

[w] – переместиться в начало следующего слова. Чтобы проще было запомнить, воспринимайте это как первую букву слова word, то есть перемещение по словам. 

[e] – переместиться в конец текущего слова. Тут проще запомнить по слову end (конец).

[b] – переместиться в начало слова – begin. 

[0] – переместиться в начало строки.

[$] – переместиться в конец строки. 

[g][g] – переместиться в начало файла

[G] – в конец файла

X[G] – сначала вводите номер строки, а потом нажимаете [G] чтобы переместиться на конкретную строку в файле. 

В vim очень удобно вводить повторяющиеся символы. Например, если вы хотите напечатать длинную строку из знаков тире из 80 символов, то можно набрать на клавиатуре последовательно [30] [i] [-] [ESC]. Последовательность нужно конечно же начинать нажимать из командного режима. В принципе, все команды, которые мы рассматриваем выполняются в командном режиме, потому что в режиме редактирования все, что вы вводите будет просто печататься на экране. 

Итак, разберем команду выше. Сначала вы вводите число повторений, потом входите в режим редактирования, вводите текст, который нужно повторить несколько раз и нажимаете esc для выхода из режима редактирования. Повторять можно не просто один символ, а целые слова. Например, так можно ввести 5 раз подняд слово hello:

[5] [i] [hello] [ESC]

Такие задачи встречаются очень редка, чаще все же нужно рисовать полоски или слеши для комментариев. 

Для поиска по тексту вводим слеш [/], потом печатаем текст, который нужно найти и нажимаем enter. 

Еще некоторые интересные команды:

[o] – вставить новую строку под курсором и сразу же перейти в режим редактирования. 

[d] – удалить текущий символ под курсором из режима команд



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

Комментарии

Ilya

23 Aпреля 2022

Коротко и ясно! :wq


Georgy

13 Aпреля 2024

Спасибо, для начала полезно.
PS Очень много грамматических ошибок (тся/ться, редка) :)


Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне