Vim для новичков

Экранный режим

Лучшим способом вырезать и вставлять фрагменты текста является использование экранного режима, специального режима, добавленного в современных версиях Vi, таких как Vim и elvis. Вы можете представлять себе экранный режим как режим «подсвечивания текста». Выделенный текст может быть скопирован или удален, а затем вставлен. Если вы используете GVim, выделить кусок текста вы можете просто нажав левую кнопку мышки и протащив курсор по нужной области.
Войти в экранный режим вы еще можете нажав v (это может быть вашей единственной возможностью, если вы используете Vi в консоли). Затем, двигая курсор командами перемещения (обычно стрелками), вы можете выделить область текста. Закончив выделение, вы уже готовы вырезать либо копировать текст.

Для копирования текста нажмите y (от слова «yank»). Чтобы вырезать текст нажмите d. Вы будете переведены назад в командный режим. Теперь переместитесь в то место, где вы хотите вставить вырезанный или скопированный текст, и нажмите P (заглавная) для вставки перед курсором или p (строчная) для вставки за курсором. Всё, копирование\вырезание и вставка выполнены! А теперь проделайте еще несколько раз процедуру копирования\вырезания и вставки перед тем, как перейти к следующему разделу.

Для того, чтобы вставить в редактор содержимое буфера обмена (в который Вы скопировали информацию по <Ctrl>+<C>) необходимо установить утилиту xclip

apt-get install xclip

и скопировав нужный текст выполнить в командном режиме редактора

:r! xclip -o и нажмите <ENTER>.

Блиц раздел

Как и было обещано, мы рассмотрели некоторые важные аспекты рабочей среды, которые мы успешно (относительно) смогли связать с нашим любимым редактором. Насчёт других аспектов я с полной уверенностью говорить не могу, так как у меня с ними мало опыта, но на затравочку давайте пробежимся по некоторым интересным вещам:

Комментарии про отладку

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

Это не является минусом конкретно Vim, так как в том же Sublime Text дела обстоят не лучше. Хотя вам никто не мешает просто научиться ими пользоваться из консоли. Туториалов на эту тему полно, и сам процесс несложный.

Уход за проектом

В Виме есть встроенная команда , которая ведёт себя как одноимённая программа для терминала. Плюс этого подхода в том, что она вас носом проведёт по всем предупреждениям и ошибкам, указывая на то, что её беспокоит (это поведение настраивается).

Про настройку проверки синтаксиса и непосредственного написания кода уже написано много статей, но могу посоветовать установить для автодополнения по табу, отключить у него проверку синтаксиса и поставить для неё :

Прыжки по тегам

У Вима есть встроенная комбинация клавиш , который позволяет вам перейти к имплементации выделенного термина. Однако для его работы нужны те самые тэги. Сгенерировать их можно терминальной командой ctags:

Если вам нужно перейти к объявлению этого термина, то вам поможет (у вас должен быть установлен YCM):

Однако, постоянно отправлять Вим в задний фон и запускать ручками команду — не очень удобно. Также не очень удобно в больших проектах подолгу ждать выполнение индексации. Но у меня и для этой проблемы найдётся ответ…

Асинхронные команды

Одним из недавних трендов программирования является асинхронность. Она позволяет одновременно выполнять несколько разных задач, но сама программа остаётся однопоточной.

Вим — однопоточная программа (ему можно, у него амбиции ниже). Поэтому, если на него слишком много плагинов, то он поползёт со скоростью улитки. Но начиная с версии 8 (ну и в NeoVim это тоже есть) в него добавили API для асинхронных вызовов. Теперь ваш линтер, работающий в реальном времени, не будет замедлять сам процесс редактирования текста.

Давайте в качестве нашего подопечного возьмём плагин . Он умеет запускать асинхронно терминальные программы как в Vim 8, так и в NeoVim (ну и всех их разновидностях).

Теперь по нажатию клавиши F3 вы будете прогонять рекурсивно в директории проекта ctags. Вы всегда можете посмотреть вывод запущенной через программы в окне Quickfix. Умышленно убить программу в заднем фоне можно с помощью команды .

Соответственно, вызывать zathura можно также асинхронно:

Интеграция с Git

Человечеством ещё не было придумано более удобного способа пользоваться Git, чем через терминал. Многие IDE пытались бороться с такой тенденцией, но либо упрощали процесс настолько, что терялись важные фичи, либо усложняли до безумия. Но для фанатов делать всё из-под Вим таки нашёлся плагин , просто оборачивающий всеми любимые команды.

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

Как стать продвинутым вимером

1. Изучите русскоязычную документацию и попробуйте команды, которые могут пригодиться в работе. Если что-то не понимаете или считаете какие-то команды лишними — не тратьте на них время. Vim необъятен, и большинство его возможностей вам не понадобятся — они нужны для специфичных задач. 

2. Прочтите список рекомендованной литературы. Во время чтения помните, что лучше всего материал усваивается в том случае, если подкрепить его практикой. 

3. Выберите плагины для индивидуальной настройки редактора. Это для тех, кому десктопная версия Vim понравилась больше плагина в VS Code. 

4. Присмотритесь к эргономичным клавиатурам с настраиваемым расположением клавиш. Возможно, какая-то из них поможет быстрее освоить возможности Vim. 

Текст:

Саша Бабаскин

Редактор:

Максим Ильяхов

Корректор:

Ира Михеева

Иллюстратор:

Даня Берковский

Вёрстка:

Маша Дронова

Соцсети:

Олег Вешкурцев

Как выйти из Vim:

:х или :q! и Enter

Замена текста

Для замены образцов текста мы используем ex-режим. Если вы хотите заменить первый попавшийся в текущей строке образчик, наберите:

:s/<regexp>/<replacement>/ и нажмите <ENTER>, где <regexp> — что хотите заменить, и <replacement> — на что.

Для замены всех совпадений с эталоном в текущей строке используйте команду:

  • :%s/<regexp>/<replacement>/g – замена каждого вхождения образца во всем файле (что обычно и требуется);
  • :%s/<regexp>/<replacement>/gc – подтверждение потребность замены в каждом конкретном случае при выполнении глобального замещения (здесь «c» означает «confirm»).

И не забудьте, набрав команду, нажать <ENTER>.

Копировать, Вырезать и Вставить

Когда вы нажимаете v в командном режиме, включается визуальный режим. Все передвижения курсора выделяют текст, с той позиции где был осуществлён переход в визуальный режим. Выделив нужный вам текст, нажмите команду y, после чего данный текст будет скопирован. Переместившись в новое место и нажав p скопированный текст добавится после курсора, P делает вставку перед курсором.

Выделив текст, команда x удалит этот текст. Команда d вырежет выделенный текст, в дальнейшем его можно вставить командой p.

Выделение блока

Выделять блоки текста можно после нажатия команды <ctrl>-v. Команда V включает визуальный режим, в котором выделяются строки целиком, а не отдельные символы.

Atom

Atom — это текстовый редактор с открытым исходным кодом, разработанный GitHub и доступный для Windows, Linux и MacOS. Редактор из коробки поддерживает систему управлений версиями Git и множество плагинов, написанные на JavaScript.

Основными функциями Atom являются кросс-платформенное редактирование, встроенный менеджер пакетов, браузер файловой системы, поддержка нескольких панелей, функция поиска и замены и умное автозаполнение.

Одной из выдающихся особенностей Atom является то, что плагин Teletype позволяет совместно работать над проектом с другими участниками онлайн.

Вы можете настроить Atom любым способом в соответствии с вашими требованиями. В нем все настраивается с помощью CSS или JavaScript. Если вам нужна функция, которой не существует, вы легко сможете начать писать свой пакет.

У Atom всегда были проблемы с производительностью и стабильностью, но по мере развития они значительно уменьшились. Однако он по-прежнему запускается медленнее, чем некоторые редакторы кода, но он так же надежен и быстр в использовании, как и любой другой. Самым большим преимуществом редактора Atom является качество редактора, наличие хороших плагинов и минималистичный и приятных дизайн.

Файл .vimrc

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

Файл .vimrc, файл для конфигурации Vim. Любая команда, которую вы можете использовать в режиме командной строки, может быть добавлена в этот файл, она будет включаться при каждом запуске Vim. Оказавшись в этом файле, используйте команду i, чтобы начать вводить текст. Теперь добавьте эти строки и сохраните файл:

Таким образом каждый раз открывая Vim в нем будет установлена смесь абсолютной и относительной нумерации строк, а также подсветка поиска. Подсветка поиска понадобится нам в следующем разделе. Файл .vimrc обладает множеством возможностей и настроек редактора, но их описание придётся отложить до следующего туториала.

Что такое затмение

Eclipse — это самая известная IDE (интегрированная среда разработки ), когда речь идет о программировании с использованием языка Java. Однако его возможности не ограничиваются только Java, но он также интегрирует в программу другую серию IDE, которая позволяет нам программировать на других языках программирования, таких как C / C ++, JavaScript / TypeScript, Python или PHP, в том числе другие, благодаря плагинам. Таким образом, мы можем использовать эту программу для одновременного объединения нескольких языков в одном пакете и без использования других дополнительных инструментов.

Эта программная среда IDE возникла как эволюция VisualAge , инструмент, разработанный IBM программировать как на Java, так и на Smaltalk. Когда в 2001 году Java стала очень популярной, IBM решила отказаться от поддержки Smaltalk и создать новый инструмент для программирования на Java: Eclipse. Eclipse Foundation (который состоит из компьютерных гигантов, таких как HP, Oracle или Red Hat, среди других) несет ответственность за эту программу, полностью бесплатную среду IDE с открытым исходным кодом, защищенную с помощью Общественная лицензия Eclipse .

Хотя изначально она создавалась как виртуальная машина Java, сегодня среда разработки спроектирована таким образом, что пользователи сами настраивают ее по своему вкусу с помощью плагинов. По умолчанию программа поставляется с Плагин JDT включен, что добавляет поддержку Java. Но мы можем загрузить и установить другие плагины в зависимости от языка или языков, которые мы собираемся использовать.

Вот некоторые из многих функций, которые предлагает нам эта среда программирования:

  • Ярлыки кода . Если мы нажмем Control + Space во время программирования, мы сможем увидеть панель с рядом предложений, которые помогут нам автоматически заполнять функции. Кроме того, мы также можем увидеть описание того, что делает каждая из функций.
  • Самокоррекция . Программа отвечает за анализ кода, который мы пишем, и в случае обнаружения каких-либо несоответствий или синтаксических проблем помечает их красным цветом. Это даже даст нам некоторые идеи по исправлению ошибки и возможность автоматически исправить ее, когда она очень очевидна.
  • Инструменты для рефакторинга . Мы можем найти ряд инструментов, которые помогут нам переименовывать или перемещать элементы, отслеживать ссылки и изменять их в коде. Кроме того, в нем есть расширенные инструменты, которые помогут нам, например, создавать интерфейсы для классов путем копирования методов.
  • Сравнить файлы . Если у нас есть два разных файла кода, мы можем сравнивать их одновременно, работать с ними одновременно и точно видеть, каковы их изменения.
  • Код формата . Eclipse помогает нам сделать наш код читабельным. Мы можем настроить нужный текстовый формат, придать ему цвет и т. Д.

До 2015 года Eclipse была официальной средой разработки для программирования для создания всевозможных приложений для Android, хотя Google решил отделиться от него и создать собственную Android Studio (разумеется, на базе Eclipse), специализирующуюся на разработке приложений такого типа.

Nano

После комбинации Alt-6, как команды «скопировать» я даже и не знаю что сказать
Наверное автор Nano был пианистом
из хабра-комментариевNano: И всё-таки его придётся выучитьvimРосNano-концепция:EscAltEsc EscCtrlAlt+XEsc XCtrl+KEsc Esc KСамое важное:Alt+U (Esc U)Alt+E (Esc E)F1 (Ctlr+G)F2Ctrl+XКопирование и вставка текста:Alt-A (Ctrl-6)Alt+6 (Esc 6)Ctrl+K (или F9)Ctrl+U (или F10)Ctrl+Shift+VInsПоиск и замена:Ctrl+WAlt+WCtrl+\Навигация:Alt+\ (Ctrl+Home)Alt+/ (Ctrl+End)Ctrl+Y (PgUp)Ctrl+V (PgDn)Alt+SCtrl+BCtrl+FCtrl+NCtrl+PCtrl+SpaceCtrl+курсорAlt+SpaceESC SpaceESC SpaceAlt-Alt=Alt+7 (Esc 7)Ctrl+курсорAlt+8 (Esc 8).Alt+0 (Esc 0)Alt+9 (Esc 9)Alt+G

Alt+< — Переход к предыдущему открытому файлу (Если nano запущен с несколькими файлами)

Alt+>Переход к следующему открытому файлу.

Ещё пишут про команду Alt+F, которая не то включает такую возможность, не то позволяет зачем-то иметь отдельные буфера обмена на каждый файл, но как она работает я не понял.

Редактирование текста:Ctrl+D (Del)Ctrl+H (BSp)Ctrl+M (Enter)Ctrl+I (Tab)Alt+Shift+{Alt+Shift+}Ctrl+]Alt+3 (Esc 3)Alt+J (F4)Разное:Esc Esc 220Alt+VAlt+TCtrl+CF11Alt+DCtrl+LНастройки nano:Alt+Shift+4Alt+KCtrl+KAlt+QAlt+LAlt+CCtrl+CAlt+XAlt+Shift+3Alt+PAlt+YAlt+H (Esc H)Alt+I (Esc I)Alt+BAlt+MРаздватри

Замена и отмена символа (операция отмены)

Команды Replace и Undo предназначены для работы в нормальном режиме.

команда Описание
+ <буква, которую нужно заменить> Замените букву, на которой стоит курсор, указанной буквой
Заменяйте постоянно, пока не нажмете
Заменить всю строку, то есть удалить строку, где находится курсор, и перейти в режим вставки
Заменить слово, удалить слово и перейти в режим вставки
(капитал) После замены курсора на конец строки
Поменяйте регистр буквы, в которой находится курсор.
{n} Отменить одну или n операций
(капитал) Отменить все изменения в текущей строке
повторить, то есть отменить операцию отмены

найти

Вход в нормальном режиме Затем введите строку, которую нужно найти, и нажмите Enter для поиска. против Та же функция, кроме Вверх и Смотри вниз. После ввода в поиск введите с участием Вы можете продолжить поиск.Найти следующий контент,Найдите предыдущий контент.

Расширенный поиск

  • Вход в нормальном режимеНайдите слово, на котором стоит курсор
  • Вход в нормальном режимеТо же, что и выше, но С нетерпением жду (вверх),Посмотрите назад (вниз)
  • Вход в нормальном режимес участием , Но части слова достаточно
  • Вход в нормальном режимес участием , Но части слова достаточно

Режимы работы

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

Нормальный режим

Режим по умолчанию, в котором vim находится после запуска. Применяется для быстрой навигации по документу и редактирования: в нем можно копировать, вставлять, перемещать, удалять и изменять текст. Переход из других режимов осуществляется нажатием клавиши «escape». Для набора текста не используется.

Режим вставки

Для набора текста нужно перейти в режим “вставки”. Он похож на интерфейс набора текста многих других программ. Вводимый вами текст появляется на экране в документе, каждая клавиша соответствует своему символу. Перейти в этот режим можно следующим образом:

i — в текущем положении курсораa — на следующем символе после текущего положенияI — в начале текущей строкиA — в конце текущей строки

Режим визуального выделения

Позволяет визуально выделять текстовые фрагменты. Затем к ним можно применять команды нормального режима для редактирования или форматирования.

v — режим обычного (посимвольного) визуального выделения перемещением курсора вверх, вниз, влево или вправо

V — режим построчного визуального выделения. Строки выделяются целиком перемещением вверх или вниз

-v — режим блочного визуального выделения. Выделяется прямоугольный участок, который можно увеличивать и уменьшать. Позволяет выбирать фрагменты нескольких линий.

Лучшие современные текстовые редакторы с открытым исходным кодом для Linux

Я пользуюсь Ubuntu, поэтому я предоставил инструкции по установке для дистрибутивов Ubuntu. Однако это не означает, что список содержит лучшие редакторы кода только для Ubuntu, потому что они подходят для любого дистрибутива Linux. К слову, редакторы в этом списке расположены в произвольном порядке.

1. Brackets

Brackets  —  это редактор c открытым исходным кода от компании Adobe. Brackets делает акцент исключительно на потребностях веб-дизайнеров, обладая встроенной поддержкой HTML, CSS и JavaScript. Он легковесный, но в то же время функциональный. Он предоставляет вам быстрое редактирование и режим интерактивного просмотра страницы. Также существует большое количество плагинов для расширения возможностей при работе с Brackets.

Некоторые из основных особенностей редактора кода Brackets:

  • Быстрое редактирование
  • Интерактивный просмотр страницы
  • Поддержка препроцессоров
  • Встроенный менеджер расширений
  • Кроссплатформенность

Вы можете загрузить исходный код, а также бинарные файлы для Linux, OS X и Windows на сайте Brackets.

2. Atom

Atom  —  еще один современный и стильно оформленный редактор с открытым исходным кодом для программистов. Atom был создан разработчиками Github’а и пропагандируется как “текстовый редактор для хакеров 21-го века”. Внешне Atom очень похож на текстовый редактор Sublime Text, который чрезвычайно популярен среди программистов, но имеет закрытый исходный код.

Atom стал известен еще до своего первого стабильного релиза. Исходя из его возможностей, я, определенно, могу назвать его одним из лучших текстовых редакторов для Ubuntu или любой другой операционной системы.

Чтобы не быть голословным, взгляните на некоторые из основных преимуществ редактора кода Atom:

  • Легко расширяемый
  • Встроенный пакетный менеджер с огромным количеством доступных плагинов
  • Умное автодополнение
  • Разделение окон
  • Кроссплатформенность
  • Встроенная возможность работы с Git
  • Кастомизация интерфейса

Недавно Atom выпустил .deb и .rpm пакеты, чтобы можно было легко установить Atom в дистрибутивах Linux на основе Ubuntu и Fedora. Разумеется, его исходный код также открыт.

3. Light Table

Light Table, представленный как “редактор кода следующего поколения” — это еще один современный, недооцененный, но многофункциональный редактор с открытым исходным кодом, который скорее похож на IDE, чем на простой текстовый редактор.

Для увеличения его возможностей доступны многочисленные расширения. Функция немедленного просмотра результата выполнения написанного кода — это то, что вам несомненно понравится. Её стоит использовать, чтобы по существу оценить удобство при работе в редакторе Light Table.

Некоторые из основных характеристик Light Table:

  • Встроенный менеджер расширений
  • Встроенное выполнение кода устраняет необходимость вывода на экран, так как код можно запустить в редакторе в режиме реального времени
  • Функция “наблюдения” позволяет мгновенно видеть результат выполнения кода
  • Кроссплатформенность

Если вы используете дистрибутив Linux на основе Ubuntu, то вам не составит большого труда установить себе Light Table. Однако, официально Light Table не предоставляет никаких пакетов.

4. Visual Studio Code

Visual Studio Code  —  популярный редактор кода от Microsoft. Только без паники — Visual Studio Code обладает полностью открытым исходным кодом.

По факту, Visual Studio Code был одним из первых “мирных предложений” от компании Microsoft для Linux и мира Open Source. После этого Microsoft открыла исходный код некоторых своих программ, конечно же, за исключением Microsoft Office.

Visual Studio Code — превосходный редактор кода, особенно для веб-разработки. Он также легковесен. Некоторые из основных его особенностей:

  • Технология Intellisense дает полезные подсказки и функцию автодополнения
  • Встроенная поддержка Git
  • Встроенный менеджер расширений со множеством доступных для загрузки расширений
  • Интегрированный терминал
  • Поддержка пользовательских фрагментов кода
  • Инструменты отладки
  • Поддержка огромного количества языков программирования
  • Кроссплатформенность

Установка Visual Studio Code в Ubuntu, а также других дистрибутивах, основанных на Fedora, очень проста благодаря Snap пакетам. Также можно скачать пакеты для Ubuntu и Fedora с сайта:

ПОИСК И ЗАМЕНА В VIM

Довольно часто нам нужно найти определенную последовательность в тексте. Текстовый редактор Vim умеет это делать.

Во-первых, если нужно найти символ в строке, нажмите f и наберите нужный символ, курсор будет перемещен к его позиции.

Для поиска по всему файлу используйте команду /. После нее нужно ввести слово, которое нужно найти. Для поиска следующего вхождения используйте n, для предыдущего — N.

Для замены будет использоваться немного другая конструкция:

Двоеточие запускает командную оболочку с командой s для замены. Символ % означает что обрабатывать нужно весь файл, а g значит, что нужно обработать все найденные строки, а не только первую. Чтобы программа спрашивала перед каждой заменой можно добавить в конец строки опцию c.

Выводы

Vim нельзя воспринимать как просто еще один текстовый редактор. Это нечто сродни командной строке Unix. Те, кто не умеют ее использовать, считают командную строку анахронизмом. Те, кто умеют и знают, используют ее постоянно и выполняют свои задачи намного быстрее и эффективнее людей, предпочитающих графический интерфейс.

Как и у командной строки, у Вим очень высокий порог вхождения. Его нельзя просто запустить и начать использовать. Сначала вы должны понять, как он работает, на каких принципах базируется и почему он именно такой, какой есть. Затем вам придется заучить множество команд, попрактиковаться, набить руку и только тогда Vim станет для вас действительно удобным, и вы уже не променяете его ни на какой другой редактор.

По статистике одной фирмы пользователей Vim берут на работу чаще, чем остальных

Зависит от того, насколько часто вы работаете с текстовыми данными: пишите статьи, код, редактируете HTML. Vim может сделать эту работу намного более эффективной. При этом навыки пригодятся и при работе в других программах — плагины с режимом Вим есть почти для всех популярных сред разработки. Я, к примеру, использую плагин IdeaVim в Android Studio. Он позволяет получить мощь команд Vim, не отказываясь от богатых возможностей среды Idea.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: