- Как освоить Vim?
- Что такое Vim?
- Как научиться работать в Vim?
- ▍1. Используйте vimtutor
- ▍2. Постоянно пользуйтесь Vim
- ▍3. Интегрируйте с Vim всё что сможете
- ▍4. Перенастройте клавишу Caps Lock (но это необязательно)
- ▍5. Глубже изучите Vim
- Итоги
- Как пользоваться текстовым редактором vim
- Минимальные основы
- Как использовать редактор Vim
- Командный режим Vim
- Командная строка Vim
- Редактирование файла в Vim
- Поиск и замена в Vim
- Одновременное редактирование нескольких файлов
- Буфер обмена Vim
- Кириллица в Vim
- Выводы
Как освоить 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 (и освободиться от власти мыши или трекпада).
Источник
Как пользоваться текстовым редактором 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? Или другим редактором? Напишите в комментариях!
Еще немного информации по использованию Vim можно почерпнуть из видео:
Источник