Редактор VIM как пользоваться, инструкция команд
Vim — один из наиболее функциональных текстовых редакторов для интерфейса командной строки. Построенный на основе “vi”, редактора 1976 года, vim мощнее и обладает дополнительными возможностями, сохраняя подход своего предшественника к работе с текстами.
Установка
Редактор есть практически в любом стандартном репозитории каждого дистрибутива Linux. Воспользуйтесь своим установщиком пакетов (например, yum для CentOS):
После этого vim должен корректно установиться.
Запуск Vim
Если не указывать никаких агрументов открывается пустой файл. В зависимости от вашего дистрибутива могут присутствовать представление и информация о лицензии.
Когда вы начнете пользоваться редактором, они пропадут. Чтобы открыть файл, укажите его имя. Например, далее мы создадим файл “newfile” и откроем его в vim.
Открытие файла при помощи vim:
Режимы работы
Основное отличие vim от многих других редакторов заключается в том, что в нем несколько режимов редактирования, а не один, как в большей части других. В других программах особые функции, например, копирование текста, приводится в действие комбинациями клавиш. В vim для разделения этих функций и набора текста используются разные режимы.
Нормальный режим
Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется.
Режим вставки
Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом:
i — в текущем положении курсора
a — на следующем символе после текущего положения
I — в начале текущей строки
A — в конце текущей строки
Режим визуального выделения
Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования.
v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо
V — режим построчного визуального выделения. Строки выделяются целиком перемещением вверх или вниз
[ctrl]-v — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий.
Перемещение
Вы всегда можете передвигаться по документу стрелками, но vim предоставляет более быстрый и удобный способ. В нормальном режиме для навигации применяются следующие клавиши:
h — перемещение влево
j — перемещение вниз
k — перемещение вверх
l — перемещение вправо
Сначала эти клавиши могут показаться непонятными и неинтуитивными, но они были выбраны потому, что находятся в среднем ряду на стандартной клавиатуре. Это значит, что рука пользователя проходит от положения покоя значительно меньшее расстояние, чем при использовании стрелок.
Также есть дополнительные функции навигации, вот несколько наиболее важных:
gg — переход в начало документа
G — переход в конец документа. Если предварительно ввести номер — переместиться на строку с этими номером
w — перемещение к следующему слову. Если предварительно ввести количество — переместиться на это количество слов
b — перемещение к предыдущему слову. Если предварительно вввести количество — переместиться на это количество слов назад
e — перемещение к концу слова. Если предварительно указать количество — переместиться на указанное количество слов
0 — перемещение к началу строки
$ — перемещение к концу строки
Поиск текста
Что бы найти фрагмент текста, нужно перед текстом поиска ввести слэш «/» и нажать enter
Если же наоборот нужно сделать явное задание регистрозависимого поиска используйте комбинацию «/\C»
Что бы найти следующий фрагмент нажмите «n» предыдущий «N»
Редактирование
Редактирование выполняется посредством команд в нормальном режиме. Они очень эффективны в комбинации с командами перемещения. Любая команда из раздела перемещения может задать направление. Например, можно удалить или скопировать одно слово, указав “w” за соответствующей командой.
Рассмотрим наиболее употребимые действия.
Удаление текста
x — удалить символ на позиции курсора
d — удалить в заданном командой перемещения направлении. Например, “dl” удаляет один символ справа
dd — удалить строку
D — удалить все символы от положения курсора до окончания строки
Замена текста
r — заменить символ на позиции курсора заданным после команды символом
c — заменить в заданном командой перемещения направлении. Например, “cb” заменяет предыдущее слово. Для набора текста на замену запускается режим вставки.
C — заменить до окончания строки. Текст на замену набирается в режиме вставки.
Копирование и вставка
y — копировать в заданном далее направлении
yy — копировать всю строку
Y — копировать до окончания строки
p — вставить последнюю скопированную (или удаленную!) строку ниже текущей
P — вставить последнюю скопированную (или удаленную!) строку выше текущей
Дополнительные команды редактирования
u — отменить последнее действие
-r — вернуть последнее отмененное действие
J — присоединить строку ниже к текущей
Командный режим
Используется для продвинутого редактирования, изменения параметров и управления. В нем выполняется сохранение, выход из программы, продвинутый поиск и многое другое. Активируется клавишей двоеточия “:”.
Команды управления
Команды управления задаются вводом “:” перед каждой командой.
:q — выход из программы. Действие не будет выполнена, если не сохранить изменения
:q! — выход из программы с отменой всех изменений, которые не были сохранены
:w — сохранить изменения. При первичном сохранении или сохранении в другой файл укажите имя через пробел
:e — редактировать указанный далее файл
:bn — редактировать следующий файл (если открыто несколько файлов)
:bp — редактировать предыдущий файл (если открыто несколько файлов)
:qw – сохранить файл и выйти
Объединение команд
Как упоминалось выше, эффективность vim обусловлена возможностью строить цепочки разных действий. Лучше всего этот принцип иллюстрируется, если представлять команды vim в виде языка. Клавиши в нормальном режиме играют роль различных частей речи.
Например, для копирования 5 слов представьте эту фразу как команды, которые понимает vim. Это будет выглядеть так:
:y5w (y — копировать, 5 — количество, w — слов)
Удалить текст от текущей позиции до окончания файла:
:dG (d — удалить, G — переход в конец файла)
Также полезно усвоить ряд используемых в действиях vim принципов. Например, сдвоенный символ обычно распространяет действие команды на всю строку. Следующая команда скопирует не один символ, а строку целиком:
С другой стороны, соответствующая команде заглавная буква часто действует от положения курсора до окончания линии. В случае с изменением текста это будет следующая команда:
Чтобы выполнить операцию с несколькими символами или строками, укажите перед командой число. Например, такая команда заменит весь текст от текущего положения курсора до окончания следующей строки:
Заключение
Vim — очень мощный инструмент, но рассмотрение многих его функциональных возможностей выходит за пределы этой статьи. Если вы хотите узнать больше, полезно начать со встроенного в vim обучающего интерфейса:
В нем не рассматриваются тонкости, но он позволит вам разобраться в работе vim и освоить основы редактирования.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как пользоваться текстовым редактором vim
Опытные пользователи Linux часто используют терминал, потому что так можно намного быстрее выполнить необходимые действия. Во время настройки системы нам довольно часто приходится редактировать различные файлы. Это могут быть настройки программ, какие-нибудь данные или обычные текстовые файлы.
В операционной системе Linux есть несколько текстовых редакторов, которые работают в терминале. Чаще всего новички используют редактор nano, но если вы заметили на нашем сайте во всех статьях используется текстовый редактор vi. Nano неудобный, и недостаточно функционален. Я сознательно не пишу в своих статьях о nano. Есть намного лучший текстовый редактор, это редактор vi. Здесь поддерживается быстрое перемещение по тексту, удобное редактирование, команды для изменения настроек работы, выполнение команд терминала из редактора, а также плагины для расширения функциональности. Но он немного сложный для новичков и очень непривычный.
В этой статье мы рассмотрим как пользоваться vim, рассмотрим основы работы с этим редактором, а также его основные команды.
Минимальные основы
На данный момент существует две версии редактора — vi и vim. Vim расшифровывается как Vi Improved, улучшенный vi. Это новая версия, которая принесла очень много улучшений. В большинстве современных дистрибутивов используется именно она. Поэтому если я буду писать vi, это значит, что я предполагаю использование vim.
Текстовый редактор Vim может работать в двух режимах. Это и есть его главная особенность. Первый режим, который используется по умолчанию при открытии редактора — это командный. В этом режиме вы можете вводить команды vi, а также использовать символьные клавиши для управления редактором. Второй режим — обычное редактирование текста, он работает так же как и редактирование текста в nano. Для переключения в командный режим используется клавиша Esc. Для переключения в режим редактирования — клавиша i. Если вас интересует только как в редакторе vi сохранить и выйти, листайте вниз, но если вы хотите узнать как пользоваться текстовым редактором vim, эта статья для вас.
Перед тем как идти дальше я бы посоветовал вам пройти курс обучения встроенный в редакторе. Выполнение всех обучающих заданий займет 25-30 минут. Но после того как вы освоите все что там написано, эта статья поможет вам закрепить материал. Дело в том, что команд и сочетаний клавиш у vim очень много и запомнить их все без практики невозможно. Для запуска обучения наберите:
Но делать это сейчас необязательно, в этой статье есть вся необходимая базовая информация и после ее прочтения вы уже сможете уверенно пользоваться vim, а обучение пройти чуть позже.
Как использовать редактор Vim
Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:
$ vim опции имя_файла
$ vi опции имя_файла
Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:
- +номер — переместить курсор к указной строке после запуска.
- +/шаблон — выполнить поиск по шаблону и переместить курсор к первому вхождению
- «+команда» — выполнить команду после запуска программы
- -b — двоичный режим, для редактирования исполняемых файлов.
- -d — режим поиска различий в файлах, нужно указать несколько файлов для открытия.
- -g — графический режим.
- -n — не использовать автосохранение для восстановления файла при сбое.
- -R — режим только для чтения.
- -w — сохранить все действия в файл.
- -x — шифровать файл при записи.
- -C — режим совместимости с Vi.
Круто, правда? Но это только начало. Опции ничего по сравнению с командами редактора.
Командный режим Vim
В командном режиме вы можете перемещаться по редактируемому тексту и выполнять действия над ним с помощью буквенных клавиш. Именно этот режим открывается по умолчанию при старте редактора. Здесь вы будете использовать краткие команды, перед которыми может устанавливаться номер, чтобы повторить команду несколько раз. Для начинающих может быть поначалу очень запутанно то, что в командном режиме символы интерпретируются как команды.
Для перемещения используются такие команды:
- h — на один символ влево;
- l — на один символ вправо;
- j — на одну строку вниз;
- k — на одну строку вверх;
- w — на слово вправо;
- b — на слово влево;
- H — перейти в низ экрана;
- G — перейти в конец файла;
Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.
Для переключения в режим редактирования используются такие команды:
- i — вставить текст с позиции курсора, символ под курсором будет заменен;
- I — вставить текст в начало строки;
- a — добавить текст начиная от позиции курсора;
- o — вставить новую строку после этой и начать редактирование;
- O — вставить новую строку перед этой и начать редактирование;
- r — заменить текущий символ;
- R — заменить несколько символов.
К этим командам тоже применимы символы повторения. Поэкспериментируйте, можно получить интересный и не совсем ожиданий результат.
Более сложны команды редактирования текста. Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Для этого применяются такие команды:
- d — удалить символ;
- dd — удалить всю строку;
- D — удалить символы начиная от курсора и до конца строки;
- y — копировать символ;
- yy или Y — скопировать всю строку;
- v — выделить текст;
Эти команды редактора vim работают немного по-другому после нажатия одной из них ничего не произойдет. Мы еще можем задать количество символов, к которым будет применена команда и направление, с помощью кнопок перемещения курсора. Например, чтобы удалить два символа справа от курсора нажмите d3l, а чтобы удалить три строки вниз — d3j. Команды yy, dd, Y — не что иное, как сокращения.
Кроме этих команд, есть еще несколько полезных, которые мы не можем не рассмотреть:
- p — вставить после позиции курсора;
P — вставить перед позицией курсора; - u — отменить последнее действие;
- . — повторить еще раз последнее действие;
- U — отменить последнее действие в текущей строке;
- /шаблон — искать вхождение;
- %s/шаблон/заменить — заменить первое слово на второе;
- n — продолжить поиск вперед;
- N — продолжить поиск назад;
С основными командами разобрались. Но у нас есть еще командная строка Vim, которая сама по себе тоже представляет огромный интерес.
Командная строка Vim
Командная строка Vim запускается в командном режиме нажатием двоеточия — «:«. Здесь доступны команды для сохранения файла и выхода из редактора, настройки внешнего вида и взаимодействия с внешней оболочкой. Рассмотрим наиболее часто используемые команды редактора vim:
- :w — сохранить файл;
- :q — закрыть редактор;
- :q! — закрыть редактор без сохранения;
- :e файл — прочитать содержимое файла в позицию курсора;
- :r файл — вставить в содержимое файла в следующую строку;
- :r! — выполнить команду оболочки и вставить ответ в редактор;
- :set переменная=значение — установить значение переменной, например, tabstop=4, или set number, с помощью этой команды можно управлять многими аспектами работы vim.
- :buffers — посмотреть открытые файлы.
Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.
Редактирование файла в Vim
Несмотря на то, что из всего вышесказанного можно понять как это делается рассмотрим еще раз. Чтобы открыть файл выполните:
Затем, если вы не хотите пока использовать возможности командного режима просто нажмите i, чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.
Поиск и замена в Vim
Довольно часто нам нужно найти определенную последовательность в тексте. Текстовый редактор Vim умеет это делать.
Во-первых, если нужно найти символ в строке, нажмите f и наберите нужный символ, курсор будет перемещен к его позиции.
Для поиска по всему файлу используйте команду /. После нее нужно ввести слово, которое нужно найти. Для поиска следующего вхождения используйте n, для предыдущего — N.
Для замены будет использоваться немного другая конструкция:
Двоеточие запускает командную оболочку с командой s для замены. Символ % означает что обрабатывать нужно весь файл, а g значит, что нужно обработать все найденные строки, а не только первую. Чтобы программа спрашивала перед каждой заменой можно добавить в конец строки опцию c.
Одновременное редактирование нескольких файлов
Чтобы открыть несколько файлов, просто передайте их в параметры при запуске программы:
vim файл1 файл2 файл3
Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N.
С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 3 переключится на третий файл.
Буфер обмена Vim
Текстовый редактор Vim имеет свой буфер обмена. Например, вам нужно скопировать в четыре строки и вставить их в другое место программы, для этого выполните такую последовательность действий:
- Нажмите Esc, чтобы перейти в командный режим;
- Наберите 4yy чтобы скопировать четыре строки;
- Переместите курсор в место где нужно вставить эти строки;
- Нажмите p для вставки.
Также можно использовать выделение vim, чтобы скопировать строки. Выделите текст с помощью v, а затем нажмите y, чтобы скопировать.
Кириллица в Vim
Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.
Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл
/.vimrc и добавляем туда такие строки:
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.
Выводы
В этой статье мы рассмотрели как пользоваться текстовым редактором vim. Это еще далеко не все его возможности, но теперь вы можете уверенно обращаться с редактором и забыть о nano. А вы уже пользуетесь Vim? Или другим редактором? Напишите в комментариях!
Еще немного информации по использованию Vim можно почерпнуть из видео: