- Редактор VIM как пользоваться, инструкция команд
- Установка
- Запуск Vim
- Режимы работы
- Нормальный режим
- Режим вставки
- Режим визуального выделения
- Перемещение
- Поиск текста
- Редактирование
- Удаление текста
- Замена текста
- Копирование и вставка
- Дополнительные команды редактирования
- Командный режим
- Команды управления
- Объединение команд
- Заключение
- Как освоить Vim?
- Что такое Vim?
- Как научиться работать в Vim?
- ▍1. Используйте vimtutor
- ▍2. Постоянно пользуйтесь Vim
- ▍3. Интегрируйте с Vim всё что сможете
- ▍4. Перенастройте клавишу Caps Lock (но это необязательно)
- ▍5. Глубже изучите Vim
- Итоги
Редактор 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?
Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно. Речь идёт об изучении совершенно необычного подхода к редактированию кода, не говоря уже о работе с простым текстом. Многие несправедливо обвиняют тех, кто выбирает Vim, в том, что они впустую тратят время.
Я со всей уверенностью могу заявить о том, что Vim позволил мне повысить эффективность в деле написания программ. Работать стало удобнее (ниже я расскажу об этом более подробно). Я никому не хочу навязывать Vim, но очень рекомендую освоить этот редактор всем, кто занимается программированием, работает в сфере Data Science, в общем — тем, кто так или иначе пишет и редактирует некий код.
Если вам очень хочется узнать о том, стоит ли вам использовать Vim, и о том, кто и для чего им реально пользуется — взгляните на этот материал (кстати, не позвольте его названию, «Не пользуйтесь Vim», ввести себя в заблуждение). Ещё можете посмотреть это видео, которое, кстати, подготовил сам Люк Смит.
А теперь, учитывая всё вышесказанное, предлагаю поговорить о том, что такое, на самом деле, Vim!
Что такое Vim?
Отвечая на этот вопрос, я хочу ещё раз повторить то, что было сказано в самом начале статьи: «Vim — это редактор, реализующий совершенно необычный подход к редактированию кода, не говоря уже о работе с простым текстом».
В Vim имеется несколько «режимов работы», переключение между ними приводит к изменению функционала клавиатурных клавиш (например, клавиша W в режиме вставки, что неудивительно, позволяет ввести букву w, а вот в нормальном режиме она позволяет перемещать курсор вперёд на одно слово). При таком подходе клавиатура используется и для ввода символов, и для перемещения по тексту. Другими словами — при работе в Vim не нужна мышь.
Это очень хорошо в тех случаях, когда нужно постоянно «переключаться» между редактированием и просмотром кода. Обычно программисты именно так и работают. Если вы раньше никогда не пользовались Vim для работы с программным кодом, то вы даже не замечаете того, как много времени тратится на то, чтобы снять руку с клавиатуры и потянуться к мыши (или к трекпаду), затем — на то, чтобы переместить курсор туда, куда нужно, и наконец на то, чтобы вернуть руку на клавиатуру и приступить к вводу текста (в общем — тратится очень много времени).
Конечно, на то, чтобы привыкнуть к Vim, нужно некоторое время. И это — не прямая замена какой-нибудь IDE или редактора вроде VS Code. Но можно сказать, что Vim позволяет тому, кто умеет им пользоваться, значительно ускорить работу с кодом. Кроме того, интересно то, что его более простым аналогом является Vi — стандартный текстовый редактор большинства Unix-подобных систем, работающий в терминале.
Как научиться работать в Vim?
▍1. Используйте vimtutor
Меня не удивляет то, что в каждом руководстве по Vim рекомендуется начинать изучать этот текстовый редактор с vimtutor . Поэтому я, без зазрения совести, поступлю так же. Нет нужды играть ни в какие «Vim-игры» (хотя они и довольно интересны), или прибегать к программам, помогающим запоминать бесчисленные клавиатурные сокращения. Надо просто установить vimtutor и, когда найдётся 10-15 минут свободного времени, прорабатывать этот официальный учебник по Vim. И не пытайтесь сразу же запомнить все клавиатурные сокращения Vim; вы запомните их постепенно, снова и снова проходя уроки vimtutor .
Хочу отметить, что Windows-пользователям я рекомендую использовать WSL (Windows Subsystem for Linux, подсистему Windows для Linux) и для прохождения vimtutor , и, в целом, для работы с Vim. Лично я в Windows с Vim не работал, поэтому не могу обещать того, что при работе с ним в этой ОС всё будет точно так же, как в Linux.
▍2. Постоянно пользуйтесь Vim
Практика — это путь к совершенству. Это — главный принцип, которого стоит придерживаться при изучении чего-то нового. Изучение Vim — не исключение. Поэтому, пока вы изучаете Vim с помощью vimtutor , пользуйтесь этим редактором для решения реальных задач.
Используйте Vim как можно чаще. Нужно просмотреть текстовый файл? Запустите Vim. Хотите что-то по-быстрому изменить в Python-скрипте? Примените Vim. Делаете какие-то заметки? Делайте их с помощью Vim. В общем, полагаю, вы меня поняли. И каждый раз, когда работаете в Vim, всегда задавайтесь вопросом о том, какова наиболее эффективная последовательность нажатий на клавиши (то есть — наиболее короткая последовательность), позволяющая решить текущую задачу.
И попутно постарайтесь сократить использование мыши.
▍3. Интегрируйте с Vim всё что сможете
Используйте клавиатурные привязки Vim везде, где это возможно. Начните делать всё, что сможете, «в стиле Vim». Например, если вы пользуетесь браузером, основанным на Chromium (Chrome, Brave, Edge), или браузером Firefox, подумайте об установке расширения Vimium, которое позволяет пользоваться в браузере клавиатурными сокращениями Vim, отвечающими за перемещение по документу (H, J, K, L и так далее).
Если вы пользуетесь для работы с кодом некоей IDE — найдите плагин или расширение для добавления Vim-привязок в соответствующую среду. Например, пользователи PyCharm (или любой IDE от JetBrains) могут воспользоваться ideavim. А пользователи VS Code (в 2021 году этот инструмент уже ближе к IDE, чем к обычным текстовым редакторам) могут прибегнуть к расширению VSCodeVim.
В Jupyterlab можно включить привязки Vim для встроенного текстового редактора путём установки jupyterlab-vim, что позволит полностью эмулировать Vim в ячейках блокнотов.
Постарайтесь органично интегрировать Vim в свою рабочую среду и несколько недель поработайте по-новому. Я могу говорить о том, что после нескольких VSCode-сессий в стиле Vim мне стало гораздо удобнее пользоваться этим редактором. А ещё — я очень рад избавлению от мыши!
▍4. Перенастройте клавишу Caps Lock (но это необязательно)
Самая бесполезная клавиша, расположенная в самом лучшем месте клавиатуры. Именно так можно охарактеризовать клавишу Caps Lock. Поэтому советую превратить Caps Lock в Escape. Если вы интересуетесь Vim, то уже должны знать о том, что клавиша Escape используется в Vim для переключения режимов. Я очень советую тем, кто стремится к максимальной эффективности, воспользоваться вышеописанной модификацией.
Пользователи Windows и WSL могут использовать uncap — программу, которая превращает клавишу Caps Lock в Escape.
Пользователям macOS в плане переназначения клавиш повезло — они могут решить эту задачу, прибегнув к системным настройкам.
Если вы работаете в Linux — настроить всё как надо вам помогут StackOverflow и Google. Лично я (заслуженный пользователь Arch Linux) использую утилиту setxkbmap , с помощью которой делаю из Caps Lock ещё одну клавишу Escape. А потом включаю автозапуск утилиты при запуске системы:
▍5. Глубже изучите Vim
После того, как вы привыкнете к Vim и немного его освоите, придёт время для более глубокого освоения этого редактора ради дальнейшего повышения эффективности своего труда. Ниже я, основываясь на собственном опыте, привожу список самых полезных (и, пожалуй, уникальных для Vim) команд, применимых в нормальном режиме работы:
- ZZ — сохранить документ и выйти из Vim. Красивая команда.
- zz, zt, zb — прокрутка текста, перемещающая строку с курсором, соответственно, в центральную, в верхнюю или в нижнюю часть области просмотра.
- Ctrl+u, Ctrl+d — прокрутка области просмотра вверх или вниз на полстраницы.
- ciw — (Change Inside Word) удаление текущего слова и автоматический переход в режим вставки.
- C — удалить текст от позиции курсора до конца строки и перейти в режим вставки.
- dt — (Delete To ) удалить текст от позиции курсора до следующего вхождения указанного символа.
— (тильда, на стандартной клавиатуре вводится клавишей, находящейся под Escape) переключение регистра (верхний/нижний) текущего или выделенного символа.
Освоение подобного списка команд может показаться неподъёмной задачей. Но помните о том, что стоит стремиться к изучению нового через практику, а не через запоминание. Эти команды Vim, если взглянуть на них с другой точки зрения, показывают то, что этот редактор способен дать нам мощнейшие возможности, доступные без применения мыши или контекстных меню.
Если вас интересуют другие команды Vim — посмотрите это замечательное и довольно длительное видео, демонстрирующее прохождение уроков vimtutor , которое записал Вим Дизель (шучу — это всё тот же Люк). Тут собрано множество полезнейших советов по Vim.
Итоги
Вероятно, сейчас вы уже достаточно хорошо освоили Vim и значительно повысили свою скорость работы с кодом. И вы наконец сможете похвастаться перед пользователями Reddit или перед коллегами своими отточенными навыками редактирования текстов, когда в ходе работы вам не приходится убирать руки с основной части клавиатуры. Когда вы достигнете подобного уровня, вы можете развиваться в сфере Vim и дальше. Например — в следующих направлениях:
- Можно установить Neovim и поэкспериментировать с ним (это — отрефакторенный форк Vim, рассчитанный на высокий уровень расширяемости и на поддержку графического интерфейса).
- Можно перенести функционал Vim в терминал или интерпретатор командной строки, воспользовавшись vim-airline.
- Можно попробовать некоторые из популярных Vim-плагинов.
Желаю всем, кто дочитал до этого места, наслаждаться будущим, наполненным благами Vim (и освободиться от власти мыши или трекпада).
Источник