- Редактор VIM как пользоваться, инструкция команд
- Установка
- Запуск Vim
- Режимы работы
- Нормальный режим
- Режим вставки
- Режим визуального выделения
- Перемещение
- Поиск текста
- Редактирование
- Удаление текста
- Замена текста
- Копирование и вставка
- Дополнительные команды редактирования
- Командный режим
- Команды управления
- Объединение команд
- Заключение
- Как отсюда выйти: шпаргалка по Vim
- Основы
- Выход из Vim
- Навигация
- Изменение текста
- Выделение текста
- Копирование, удаление, вставка
- Отмена и восстановление последнего изменения
- Работа с файлом
- Поиск и замена
- Подсветка синтаксиса и отступы
- Вкладки
- Разделённый экран
- Настройка Vim: файл .vimrc
- Полезные ресурсы
- Консольный VIM в Windows
- Введение
- Cygwin и Mintty спешат на помощь
- Заключение
Редактор 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 принципов. Например, сдвоенный символ обычно распространяет действие команды на всю строку. Следующая команда скопирует не один символ, а строку целиком:
:yy
С другой стороны, соответствующая команде заглавная буква часто действует от положения курсора до окончания линии. В случае с изменением текста это будет следующая команда:
:C
Чтобы выполнить операцию с несколькими символами или строками, укажите перед командой число. Например, такая команда заменит весь текст от текущего положения курсора до окончания следующей строки:
:2C
Заключение
Vim — очень мощный инструмент, но рассмотрение многих его функциональных возможностей выходит за пределы этой статьи. Если вы хотите узнать больше, полезно начать со встроенного в vim обучающего интерфейса:
В нем не рассматриваются тонкости, но он позволит вам разобраться в работе vim и освоить основы редактирования.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как отсюда выйти: шпаргалка по Vim
Вы собираетесь создать файл crontab и внезапно оказываетесь в этом странном редакторе по умолчанию. В том, в котором всё никак не разберётесь.
ESC? Ничего не произошло. CTRL + C? Нет. ESC ESC ESC? Неа. Вы в тупике.
Ну вот, опять. Склонив голову от стыда, вы запускаете очередной терминал, чтобы исполнить команду killall vim и продолжить заниматься своими делами.
С вами бывало такое? Конечно, бывало. Что ж, потратив несколько минут на эту статью, вы познакомитесь с основами редактора Vim (и научитесь быстро выходить из него).
Vim по умолчанию установлен во многих операционных системах (включая большинство дистрибутивов Linux и macOS), поэтому хотя бы поверхностные знания о нём лишними не будут. Откройте терминал и введите vim .
19–21 апреля, Онлайн, Беcплатно
В умелых руках Vim может стать мощнее многих IDE. И, разумеется, он не ест сотни мегабайт памяти лишь для отображения пустого файла (да, Eclipse, это о тебе).
Основы
Некоторые из нижеописанных команд начинаются с двоеточия: нажав его, появится подсказка, в которой будет указана полная команда. Команды без двоеточий — это скорее горячие клавиши, которые можно использовать в режиме по умолчанию (в нём запускается Vim). Команды, написанные ЗАГЛАВНЫМИ БУКВАМИ — это отдельные клавиши: например, ESC — это клавиша Esc на вашей клавиатуре.
Все команды чувствительны к регистру и должны выполняться вне режима insert.
Выход из Vim
Выход без сохранения изменений:
Как запомнить: quit dammit! (закройся, чёрт возьми!)
Выход с сохранением изменений:
Как запомнить: write to disk and quit
Навигация
Для перемещения по открытому файлу используйте стрелки.
Перемещение на строку 285:
Поиск слова «import»:
Изменение текста
Вставка текста там, где стоит курсор:
Вставка текста в конце текущей строки:
Выход из режима редактирования (возврат в стандартный режим):
Выделение текста
Переход в визуальный режим:
Для выделения текста используйте стрелки.
Выход из визуального режима:
Копирование, удаление, вставка
Копирование выделенного текста в буфер:
Удаление выделенного текста:
Копирование текущей строки в буфер:
Как запомнить: yank yank
Копирование трёх строк, включая текущую, в буфер:
Удаление текущей строки и помещение её в буфер:
Как запомнить: delete delete
Удаление 5 строк, включая текущую:
Вставка из буфера перед текущей строкой:
Вставка из буфера после текущей строки:
Отмена и восстановление последнего изменения
Отмена последнего изменения:
Восстановление последнего отменённого изменения:
Отмена двух последних изменений:
Многоуровневое дерево отката изменений Vim очень мощное, подробнее о нём можно почитать в документации.
Работа с файлом
Открытие файла index.html вместо текущего:
Сохранение текущего файла:
Как запомнить: write to disk
Сохранение файла с изменённым именем, например, changes.txt:
Поиск и замена
Поиск и замена всех вхождений строки в файле:
Поиск и замена с запросом подтверждения замены:
Подсветка синтаксиса и отступы
Включение подсветки синтаксиса:
Включение автоматических отступов:
Увеличение отступов нескольких строк при выделении их в визуальном режиме:
Вкладки
Открытие server.py в новой вкладке:
Переход на вкладку справа:
Переход на предыдущую вкладку слева:
Как запомнить: tab previous
Для закрытия вкладки переключитесь на неё и используйте команду :q или :wq .
Разделённый экран
Открытие templates/base.html в режиме вертикального разделения экрана:
Как запомнить: vertical split
Открытие shared.js в режиме горизонтального разделения экрана:
Как запомнить: the ’default’ horizontal split
Перемещение между «частями» экрана:
Для закрытия экрана переключитесь на него и используйте команду :q или :wq .
Настройка Vim: файл .vimrc
Многие команды, используемые для изменения вида и поведения Vim, можно сделать включёнными по умолчанию, поместив их в .vimrc — файл конфигурации Vim, который расположен в домашнем каталоге.
Например, добавление этих строк в
/.vimrc сделает подсветку синтаксиса и автоматическую корректировку отступов включёнными по умолчанию:
Идеи для кастомизации Vim можно почерпнуть в этом GitHub-репозитории.
Полезные ресурсы
Вот ещё несколько полезных материалов для изучения Vim:
А какая команда Vim — ваша любимая? Может, вы знаете удобные приёмчики? Делитесь ими в комментариях!
Консольный VIM в Windows
Введение
Бывают ситуации, когда очень хочется использовать любимый редактор, но под рукой нету *nix операционных систем, либо разработка ведётся на Windows.
Первое что приходит на ум — использование Windows версии gVim, но в этом случае возникает куча проблем с установкой плагинов, переносом конфигов и адаптации всего и вся. Что-то не будет компилироваться без бубна (например Ctrl-p), а что-то падать во время работы.
Cygwin и Mintty спешат на помощь
Качаем с сайта и устанавливаем последнюю версию Cygwin.
При установке выбираем любое зеркало из списка доступных.
Выбираем следующие пакеты:
- git
- Vim
- ruby
- libsasl2
- ca-certificates
Пока пакеты качаются и ставятся, самое время добыть удобный терминал. Мой выбор пал на mintty. Установка осуществляется копированием mintty.exe в папку bin Cygwin-а.
Для того, чтобы всё выглядело прилично — его нужно поднастроить. Запускаем mintty, тыкаем правой кнопкой на иконку в левом верхнем углу консольки и выбираем «Options. ».
Выключаем опцию Blinking, чтобы не отвлекало, выбираем привычный Block в качестве курсора.
Выбираем шрифт по вкусу, ставим сглаживание в Full, Locale — C, Character Set — UTF-8.
Очень важно поставить тип терминала в xterm-256color.
Одно несомненное преимущество данного подхода это то, что теперь можно использовать ту же самую конфигурацию Vim, что и в *nix системе. А так же мы получаем в своё распоряжение полноценную консоль и можем работать с Windows файлами с помощью утилит grep, find, ack.
Рекомендую создать приватный репозиторий со всеми конфигами совершенно бесплатно на каком-нибудь Bitbucket. Такие подборки обычно называют dotfiles.
Одним приятным открытием в плане конфигурации Vim-а для меня стал Vimified, который базируется на Vundle.
Его лучше ставить по шагам, а то мало-ли что-то пропустили во время установки Cygwin. Шаги установки подробно расписаны в описании к репозиторию.
Первый запуск Vim может пройти с ошибками из-за того, что предусмотренные конфигурацией пакеты ещё не установлены, но это не страшно.
Перезапускаем Vim. И вот что у нас должно получится после небольших корректировок и правок.
Заключение
В итоге мы получили:
- Полноценный рабочий Vim
- Приятная цветовая схема и палитра, которая радует глаз
- Работает прокрутка колесом мыши (для любителей)
- Работает изменение размера панелей простым кликом и перетаскиванием
Спасибо за внимание. Надеюсь кому-нибудь пригодится.
Извещения об ошибках — хабрапочтой.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.