Как сделать из vim конфетку

Добавил пользователь Skiper
Обновлено: 04.10.2024

Очень сложная штука, но мы попытаемся объяснить просто.

Сейчас попробуем разложить по полочкам, что это за зверь и почему вокруг него такой культ.

Что такое Vim

Vim — это специализированный текстовый редактор для программистов. Он предназначен для работы с большими объёмами кода без использования мыши.

Главная особенность Vim — два режима: режим написания текста и режим команд. В первом режиме вы как обычно пишете код, а во втором молниеносно управляете им. Режимы работают параллельно друг другу и меняются по нажатию клавиш.

Главная сила — в огромном количестве клавиатурных команд, которые помогают быстро редактировать текст. Например:

dd — удалить строку, на которой вы сейчас стоите;

10dd — удалить сколько-то строк, в этом случае 10;

cw — заменить слово на другое;

w, b — курсор вперёд или назад на одно слово;

A — дописать текст в конец строки;

I — Начать вписывать текст в начало строки;

U — вернуть изменения в строке (например, если случайно стёр);

: 10,25 w temp — сохранить кусок документа в файл temp. Конкретно здесь сохранится кусок с 10-й по 25-ю строку.

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

Команды Vim, разложенные на клавиатуре

🤔 Зачем редактировать текст без мыши?

У мыши один курсор, которым нужно целиться в мелкие объекты на экране. А пальцев на руках десять, и ими никуда целиться не надо (при должной сноровке). Если у вас выработана мышечная память и вы знаете горячие клавиши (или команды Vim), вы будете редактировать текст быстрее, чем при использовании мыши.

Посмотрите, как удаляет строку среднестатистический пользователь:

  1. Он отрывает одну руку от клавиатуры.
  2. Берётся за мышку.
  3. Выделяет мышкой ненужную строку.
  4. Нажимает свободной рукой клавишу удаления.
  5. Возвращает обе руки в исходное положение на клавиатуру.

А так это же действие выполнит пользователь Vim:

Пользователь Vim убирает руки с клавиатуры, только чтобы поесть или почесать репу. Всё остальное время он короткими командами обрабатывает текст в несколько раз быстрее, чем любой человек с мышью.

После привыкания работа в Vim сравнима с игрой на гитаре: вы управляете текстом, будто он продолжение вашей руки. Фильмы про хакеров видели? Вот такой эффект.

Кому подходит

Vim считается нестандартным инструментом со множеством недостатков:

  • его сложно и долго изучать, поскольку без использования основных команд сам по себе редактор не даёт прироста в скорости;
  • у него нет коробочной версии, чтобы можно было установить и сразу решать большинство программистских задач;
  • все доступные плагины работают хуже тех, что предлагает любая современная среда разработки.

Vim однозначно не подходит руководителям и тем разработчикам, которые большую часть времени занимаются организационными задачами и мало кодят — не получится быстро редактировать код, если постоянно не тренироваться.

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

Если вас не испугали перечисленные недостатки и ваша работа связана с постоянным кодингом, то Vim может стать вашим незаменимым помощником.

Комментарий типичного вимера

Комментарий типичного вимера. Если узнали себя — однозначно стоит попробовать. Источник

Как установить

Добавление Vim в VS Code

Vim поддерживает множество плагинов, которые после установки позволяют превратить старый редактор в аналог современной среды разработки. На наш взгляд, для новичка это не слишком удобно и лучше наоборот — установить Vim в современную среду разработки вроде VS Code.

Расширение vscodevim.vim для VS Code

Расширение vscodevim.vim для VS Code

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

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

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

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

После изучения Vim for Beginners, вы видели, что относительная нумерация строк не сохраняется после выхода из Vim. Однако данную опцию мы можем указать в файле конфигурации Vim.

Файл .vimrc

Вся информация о настройках Vim располагается в файле .vimrc, находящийся у вас в домашней директории. Вы можете открыть его в Vim, при помощи команды для редактирования файлов.

Этот файл пустой, так как он ещё не был использован. Данный туториал покажет вам, как им пользоваться.

Комментарии

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

Для файла .vimrc, всё, что находится после двойных кавычек, до конца строки, не используется. Следовательно, вы можете писать таким образом для себя пометки, чтобы вспомнить, что вы делали.

Теперь вы будите всегда знать, что команда set number включает нумерацию строк.

Опции и Переменные

Включить нумерацию строк и сделать её относительной, можно добавив в файл .vimrc:

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

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

Не ставьте оба set'а, которые мы рассматривали в .vimrc. Это включит опцию и тут же её выключит. Скоро, я покажу вам, как делать это более программным путем.

Если вам известно текущее состояние опции, переключение опции, может быть альтернативным вариантом установки необходимой опции. Переключить её можно посредством ! после названия опции. Это включит/выключит опцию:

Если же хочется узнать текущее значение опции, используйте ? после названия опции, например

Это вернёт нам number. Теперь, с этой информацией, вы всегда сможете узнать состоянии интересующей вас опции.

Если вы хотите изменить количество колонок, которое занимает нумерация на экране, вы можете присвоить значение опции numberwidth. Данный пример установит нумерацию в 4 колонки шириной:

Посмотрите сколько места подойдет вам для нумерации и добавьте данную опцию в ваш .vimrc.

Если вам понадобится создать переменную, используйте выражение let. К примеру:

Когда сохраните это в файле .vimrc (используйте свое имя в качестве значения переменной), можно отобразить его в режиме командной стоки с помощью :echo name

Показывает значение переменной

Поставив перед опцией префикс &, с ней можно обращаться, как с переменной. Показать значение опции можно таким образом:

Команда echo используется исключительно для переменных, но указав префикс & перед опцией, тем самым мы сообщаем Vim, что хотим взаимодействовать с данной опцией, как с переменной. Теперь, удобно производить над значением опции различные математические операции. Следовательно, чтобы увеличить ширину нумерации на одну колонку, можно воспользоваться следующим примером:

echo &numberwidth должно показать значение 5.

Все переменные имеют свою область видимости. Чтобы определить область видимости, нам нужно указать букву, :, и имя переменной. Неопределенная область видимости считается глобальной. Перечислим области видимости:

b: Область видимости буфера—Переменная будет доступна только в текущем буфере
w: Область видимости окна—Доступна только внутри текущего окна
t: Область видимости вкладки—Доступна на текущей вкладке
g: Глобальная область видимости - Доступна везде
I: Локальная область видимости—Переменная доступна локально, для функции в которой была определена
s: Область видимости скрипта—Переменная является локальной, только для текущего скрипта
a: Область видимости аргумента—Переменная будет доступна только внутри функции
v: Глобальная область видимости—Используется для переменных определённых и используемых Vim

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

Получаем информацию

И Vim покажет все доступные опции в программе. Напечатав :let и нажав enter, покажет все переменные.

Команда :help используется для поиска по обширной документации встроенной в Vim. Чтобы выйти из :help, воспользуйтесь :q. В режиме help, вы не выйдите из программы, однако это переключит редактор в командный режим.

Функции

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

Для определения функции в VimScript, используйте:

Мне нравится обычная нумерация и относительная нумерация, но бывают моменты, когда относительную нумерация не нужна. Каждый раз печатать полную команду :set norelativenumber или даже :set relativenumber!, утомительно. Нам бы пригодилась функция для включения и выключения.

Вызвать функцию можно командой :call.

Команда function не позволяет вам переписать уже существующую функцию. Если эта функция уже где-то была определена, или вы попробовали перезагрузить файл, Vim покажет ошибку и перестанет обрабатывать файл на этом месте. Команду function! позволяет переписать функцию без ошибок. Это хорошая практика в VimScript, всегда использовать function!.

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

Для передачи параметров функции, вам нужно указать имя переменной внутри скобок. К примеру:

При вызове функции вам нужно передать аргумент. Теперь когда вы вызовите функцию с именем, вы получите следующий результат:

Основы настройки клавиш

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

С этой строкой в файле .vimrc, если нажать Control-T, относительная нумерация будет включаться и выключаться. Попробуйте теперь сами, установить клавишу для переключения обычной нумерации.

Настроить подобного рода клавиши можно не только для командного режима, но и для всех остальных. Если вы укажите префикс с первой буквой необходимого режима, в вашем распоряжении будет горячая клавиша именно для данного режима. nmap устанавливает клавиши для командного режима. vmap клавиши для визуального режима. imap для текстового режима.

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

Чтобы предотвратить подобного рода ситуацию, вы должны добавить nore после режима и до map. Следовательно, nmap станет nnoremap, vmap станет vnoremap, и imap станет inoremap. Тем самым вы всегда будите ссылаться на сочетание клавиш, которое стоит по умолчанию. Эти команды гораздо безопаснее использовать в конфигурационном файле.

Заключение

В этом уроке я показал вам основы создания конфигурационного файла в Vim. Я показал как: комментировать код в этом файле, включать/выключать опции и определять переменные, создавать функции и настраивать горячие клавиши. Лучше способ запомнить пройденный материал — использовать полученные знания на практике.


Чем хорош Vim в плане разработки на Python?

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

В редакторе Vim очень логичный и структурированный язык команд. Когда новичок приступает к ознакомлению с редактором, названия команд могут показаться ему непонятными и, как следствие, трудными для запоминания. Но все они строятся и комбинируются, подчиняясь определенным правилам. Когда вы усваиваете эти правила, язык команд становится понятным и предсказуемым.

Настройка Vim при помощи файла Vimrc

Для настройки редактора Vim используется файл Vimrc. Он может быть пустым, а может содержать сотни или даже тысячи строк конфигурационных команд.

Вот короткий пример файла .vimrc (с комментариями), который можно использовать для разработки на Python:

Вот как выглядит текст этой статьи в редакторе Vim, настроенном подобным образом:


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


Файл Vimrc находится в домашней директории пользователя, запускающего Vim. Например, для аккаунта пользователя matt в Mac OS X путь к файлу Vimrc будет следующим: /Users/matt/.vimrc

В Ubuntu (Linux) файл .vimrc будет находиться в директории /home/matt/ .

Если файл Vimrc не существует, просто создайте его в своей домашней директории, и Vim его подхватит при следующем запуске.

Руководства по Vim

Vim имеет репутацию сложного в изучении редактора, но эти руководства облегчат вам старт.

Ресурсы по Vimrc

Есть несколько ресурсов, которые помогут вам научиться структурировать файл .vimrc. Лучше добавлять опции конфигурации и тестировать их по отдельности, а не всем скопом (особенно если вы еще не знакомы с Vimrc).

    . Фантастически подробный обзор и надежное руководство по настройке Vim. Пригодится как начинающим, так и опытным пользователям этого редактора. . Эта статья познакомит вас с опциями файла .vimrc для работы с Python. . Из этой статьи вы узнаете о плагинах и настройках редактора Vim, позволяющих использовать его в качестве среды разработки Python.
  • В этом репозитории есть отдельная папка с файлами Vimrc. Примеры конфигурации в этих файлах сопровождаются хорошими комментариями, благодаря чему по ним можно учиться.
  • Если вам тяжело дается начало работы с Vim, обратите внимание на статью Two Simple Steps Helped Me Learn Vim.

Руководства по установке Vim

Эти руководства научат вас, как установить и запустить Vim на машине с Mac OS X, Linux или Windows.

  • Статья Upgrading Vim on OS X поясняет, зачем нужно обновлять Vim 7.2 до 7.3+ и как это сделать при помощи Homebrew.
  • Самый простой способ установить Vim на Windows это скачать и запустить файл vim74.exe.
  • В Linux Vim устанавливается командой sudo apt-get install vim .
  • Если вы в качестве среды разработки используете PyCharm, вам нет нужды устанавливать Vim отдельно. Вместо этого можно использовать плагин IdeaVim.

Использование Vim в качестве Python IDE

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

Плагины Vim

Менеджеры плагинов Vim

Если вы используете много плагинов Vim одновременно, для упорядочивания всех зависимостей вам пригодится менеджер плагинов. Чаще всего в экосистеме Vim используются следующие менеджеры:

    — часто рекомендуется пользователями. — тоже очень широко используется. — позиционируется как минималистичный менеджер.

Специфичные руководства

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


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

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

Речь пойдет о мелочах, которые можно очень быстро освоить, но которые, тем не менее, могут существенно улучшить ваш опыт работы с Vim. По крайней мере, мою жизнь они точно сделали проще.

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

    — интерактивное руководство.
  • vimtutor — интерактивное руководство прямо в терминале. Его можно установить в дистрибутивах Mac и Linux (в некоторых он уже предустановлен). Чтобы начать работать с этим туториалом, введите в командной строке vimtutor. — игра для изучения Vim. Первые пара уровней бесплатные, дальше нужно заплатить $25.

Если вам нравится Vim, но не хочется запускать его отдельно, установите расширение Vim в своем любимом редакторе, например, в VS Code или Sublime. Таким образом вы сможете привыкнуть к сочетаниям клавиш и работе с Vim, не покидая более привычный интерфейс редактора.

Есть одно важное соображение насчет изучения Vim и работы с ним: чтобы начать пользоваться этим редактором, вам совершенно не обязательно овладевать всем функционалом сразу (это в любом случае практически невозможно).

Освоив основы, начинайте работать. Когда у вас будут возникать вопросы или проблемы, записывайте их и ищите в интернете, как сделать необходимое при помощи Vim. Таким образом вы постепенно заполните пробелы в знаниях. Каждый маленький прием работы будет пополнять ваш репертуар.

А теперь давайте перейдем к самому интересному: практическим советам. Чтобы применить их на практике, вам не понадобятся никакие плагины, только сам Vim.

1. Как сделать так, чтобы новая строка кода сразу имела нужный отступ?

Прежде, чем я научился этому приему, я поступал следующим образом:

  1. переходил в режим вставки,
  2. нажимал TAB, чтобы добавить отступ,
  3. начинал писать нужный код.

Но количество операций можно сократить. Если вы встанете на нужную строку и наберете S (SHIFT+s), вы моментально перейдете в режим вставки, а отступ появится автоматически. Примечание: если строка не была пустой, весь текст сотрется.

2. Автоматическое изменение размеров окон

Когда мы разбиваем экран на несколько окон (вертикально или горизонтально), а затем меняем размеры окна терминала, окна тоже меняются в размерах. При этом одни могут стать слишком широкими, а другие — слишком узкими. Чтобы это увидеть, попробуйте открыть одновременно три файла с разбивкой окон по вертикали:

После этого измените размер окна терминала.

Сделать окна снова равными, нажмите CTRL+w = (CTRL+w, а затем знак равенства).

3. Переход к парной скобке

Когда ваш курсор стоит на квадратной, круглой или фигурной скобке, вы можете моментально переместиться на ее парную скобку, нажав % (SHIFT+5). Повторное нажатие вернет вас назад.

4. Отступ для строки или нескольких строк

Когда у вас выделено несколько строк (в командном режиме), вы можете установить для них отступ (или убрать его), нажав > или . Чтобы установить или убрать отступ для отдельной строки, используйте >> и .

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

Переместитесь в начало файла (где бы вы ни находились в этом файле, введите gg — и вы переместитесь в начало). Затем введите =G (т. е., знак равенства, затем SHIFT+G). Vim автоматически исправит отступы во всем файле. Если ввести =G , не переходя в начало, исправятся отступы от текущего положения курсора и до конца файла.

6. Основы работы со вкладками

Часто возникает необходимость работать с несколькими файлами параллельно. Для этого удобно использовать вкладки. Мне нравится при работе с кодом держать открытыми файлы, касающиеся этого кода, например, README или список TODO. Так я могу вносить в них правки по ходу работы.

Перейдите в режим команд. Введите двоеточие, а затем нужную команду (по мере ввода она будет видна в левом нижнем углу экрана). Нажмите enter.

  • :tabnew — создать новую вкладку;
  • gt — перейти в следующую вкладку;
  • gT — перейти в предыдущую вкладку;
  • :tabo — закрыть все вкладки, кроме активной.

7. Быстрое возвращение к предыдущему файлу

Когда вы редактируете какой-то код, часто случается открыть другой файл в том же окне. А вернуться к прежнему не так-то просто. Можно вывести список и найти нужный файл, но это же надо еще помнить, как он назывался. Да и времени жалко. А пользователи Vim не любят разбазаривать свое время:) Поэтому, чтобы вернуться к предыдущему файлу, можно просто нажать CTRL+o .

Это сочетание клавиш применяется для поиска предыдущей позиции курсора. И если предыдущая позиция была в другом файле — вы окажетесь в нем!

Состояние перевода: На этой странице представлен перевод статьи Vim. Дата последней синхронизации: 29 июня 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Vim - консольный текстовый редактор, являющийся расширенной версией vi с дополнительными функциями, которые включают в себя: подсветку синтаксиса, полноценную систему помощи, встроенную поддержку скриптов (vimscript), визуальный режим для простоты выделения и сравнение файлов (vimdiff).

Contents

Установка

Установите один из следующих пакетов:

  • vim — с поддержкой Python 2/3, Lua, Ruby и Perl, но без поддержки GTK/X.
  • gvim — идентичен vim , но c поддержкой GTK/X.
  • Пакет vim собран без поддержки Xorg; отсутствует компонент +clipboard , поэтому Vim не сможет оперировать с основным и обменным буфером. Пакет gvim предоставляет доступ также и к Vim с интерфейсом командной строки, но с поддержкой +clipboard
  • Неофициальный репозиторий herecura предоставляет несколько версий Vim/gVim: vim-cli , vim-gvim-common , vim-gvim-gtk , vim-gvim-qt , vim-rt and vim-tiny .

Использование

Также вы можете запустить vimtutor (для версии с интерфейсом командной строки) или gvimtutor (для версии с графическим интерфейсом) для отображения руководства по использованию Vim.

Vim включает в себя широкую справочную систему, доступ к которой можно получить посредством :h субъект . Субъекты включают в себя команды, опции, горячие клавиши, плагины и так далее. Используйте команду :h (без какого-либо субъекта), чтобы полчуить информацию о вспомогательной системе и о том, как перемещаться между субъектами.

Настройка

Файл конфигурации Vim для конкретного пользователя расположен в домашней директории - ~/.vimrc , файлы текущего пользователя в ~/.vim/ . Общий файл конфигурации - ~/.vimrc , а общие файлы находятся в /usr/share/vim/ .

Примечание: Более ли менее стандартное поведение - например, подсветка синтаксиса - определяется в defaults.vim , который загружается, когда отсутствует ~/.vimrc . Добавьте let skip_defaults_vim=1 в /etc/vimrc для полного отключения загрузки defaults.vim . [1]

Буфер обмена

Такие команды Vim как :yank или :paste работают с безымянным регистром, который по умолчанию соответствует регистру "* . Если доступна +clipboard , то регистр "* отображается в PRIMARY буфер в X.

Чтобы изменить стандартный регистр на "+ , используйте :set clipboard=unnamedplus . Регистр "+ соответствует CLIPBOARD буферу в X.

Для более подробной информации смотрите :help 'clipboard' .

Совет: Для копирования и вставки могут быть созданы горячие клавиши. Смотрите, например, [2] для ctrl+c , ctrl+v и ctrl+x .

Подсветка синтаксиса

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

Отступы

Отступы для определенного типа файла:

Визуальный перенос

Опция wrap (включена по умолчанию) указывает Vim переносить длинные строки, которые не помещаются на экран, так, что оставшаяся часть строки отображается на следующей линии. Опция wrap влияет только на отображение текста, сам текст при этом не изменяется.

Изначально перенос строки происходит ровно в том месте, где размещается последний ее символ, поместившийся на экране, даже если он находится в середине слова. Для более умного переноса используйте опцию linebreak . Когда эта опция включена командой set linebreak , перенос строки происходит только после символов, которые перечислены в опции breakat , которая по умолчанию содержит в себе пробел и некоторые знаки препинания (смотрите :help breakat ).

Остаток строки обычно начинается с начала следующей линии, без всякого отступа. Опция breakindent сообщает Vim, что необходимо отображать перенесенный остаток строки с отступом, так, что на всех последующих линиях перенесенные части строки имеют тот же отступ, что и начало этой строки. Поведение breakindent может быть настроено при помощи опции breakindentopt . Например, для файлов исходного кода на языке Python может быть полезно добавлять дополнительный отступ в 4 пробела для перенесенных частей длинной строки (подробнее смотрите в :help breakindentopt ):

Использование мыши

Vim позволяет пользоваться мышью, но только в тех терминалах, которые это поддерживают:

    /urxvt
  • Консоль linux с gpm (смотрите подробнее на странице Console mouse support)

Чтобы включить поддержку мыши, добавьте в ~/.vimrc :

Опция mouse=a устанавливается в defaults.vim

Переход на новую строку с помощью клавиш со стрелками

По умолчанию, при нажатии ← в начале строки или → в конце, курсор не переводится на следующую/предыдущую строку.

Объединение файлов

Vim включает в себя diff-редактор (программа, которая отображает различия между двумя файлами и позволяет удобно их объединять). Используйте vimdiff для этого — просто укажите ей пару файлов: vimdiff файл1 файл2 . Ниже приведен список команд vimdiff.

Действие Горячая клавиша
следующие изменение ]c
предыдущее изменение [c
diff obtain do
diff put dp
развернуть блок zo
свернуть блок zc
перечитать файлы :diffupdate
переключить окна Ctrl+w+w

Советы и рекомендации

Нумерация строк

Чтобы включить отображение номера столбца, используйте :set number . По умолчанию показываются абсолютные значения номеров строк, относительные включаются посредством :set relativenumber .

Переход к новой строке осуществляется посредством :line number или line numbergg . Все переходы запоминаются в лист переходов, для более подробной информации смотрите :h jump-motions .

Проверка орфографии

Проверку орфографии в Vim можно включить с помощью:

По умолчанию установлен только английский словарь. Другие словари можно найти в официальных репозиториях по запросу vim-spell . Еще больше словарей можно найти в FTP-архиве Vim. Словари необходимо поместить в каталог для словарей — ~/.vim/spell/ . Включить словарь можно командой :setlocal spell spelllang=ru_yo (заменив ru_yo на имя нужного словаря).

Действие Команда
следующая ошибка ]s
предыдущая ошибка [s
предложения для исправления z=
добавить правильное написание zg
добавить правильное написание (на сеанс) zG
добавить неправильное написание zw
добавить неправильное написание (на сеанс) zW
повторить проверку орфографии во всем файле :spellr

  • Чтобы включить проверку сразу для двух языков (например, английского и русского), добавьте set spelllang=en,ru в ~/.vimrc или /etc/vimrc и перезапустите Vim.
  • Вы можете включить проверку орфографии для конкретных типов файлов (например .txt), используя плагин FileType и собственное правило для определения типа файла. Чтобы включить проверку орфографии для всех файлов, оканчивающихся на .txt, создайте файл /usr/share/vim/vimfiles/ftdetect/plaintext.vim и вставьте туда строку: autocmd BufRead,BufNewFile *.txt setfiletype plaintext . Далее, вставьте строку autocmd FileType plaintext setlocal spell spelllang=ru в файл ~/.vimrc или /etc/vimrc и перезапустите Vim. Или поместите строку autocmd BufRead,BufNewFile *.txt setlocal spell в ~/.vimrc или /etc/vimrc и перезапустите Vim. Не забудьте отредактировать строчку (specifically *.txt ), чтобы включить соответствующие типы файлов для проверки орфографии.
  • Чтобы включить проверку орфографии только для документов LaTeX (или TeX), добавьте autocmd FileType tex setlocal spell spelllang=ru в файл ~/.vimrc или /etc/vimrc и перезапустите Vim.

Сохранение позиции курсора

Если вы хотите, чтобы курсор возвращался в прежнее положение после открытия файла, добавьте следующее в ~/.vimrc :

Запуск Vim по команде vi

Создайте псевдоним для vi на vim .

Если вы хотите, чтобы при вводе sudo vi запускался vim , то установите пакет vi-vim-symlink AUR , который удалит vi и заменить его символической ссылкой на vim .

Возврат каретки DOS/Windows

Если вы видите последовательность ^M в конце каждой линии, это означает, что вы редактируете текстовый файл, который был создан в MS-DOS или Windows. Дело в том, что в Linux для переноса принято использовать один символ новой строки (LR), тогда как в системах Windows/MS DOS для той же цели используется последовательность из двух символов: возврата каретки (CR) и новой строки (LR). Как раз эти символы возврата каретки и отображаются в виде ^M .

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

Обратите внимание, что ^ здесь — управляющий символ, а не обычный. Чтобы ввести управляющую последовательность ^M , нажмите Ctrl+v,Ctrl+m .

Также вы можете просто установить пакет dos2unix и исправлять файлы командой dos2unix файл .

Примечание: Другой простой способ заключается в изменении опции fileformat . Используйте set ff=unix для преобразования файлов с окончанием строки DOS/Windows в файлы с окончанием строки Unix. Для того, чтобы сделать обратное, просто используйте set ff=dos .

Пустое пространство в нижней части окон gVim

Когда используется оконный менеджер, настроенный на игнорирование размеров окна, gVim заполняет неиспользованные области окна стандартным фоновым цветом темы GTK.

Решение заключается в регулировании количества места, которое будет резервировать в нижней части окна gVim. Поместите следующую строку в ~/.vimrc :

Плагины

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

Установка

Используя встроенную систему управления пакетами

В Vim 8 добавлена возможность загрузки сторонних плагинов. Чтобы использовать эту функциональность, переместите плагины в ~/.vim/pack/foo .

Используя менеджер плагинов

Менеджер плагинов позволяет устанавливать плагины и управлять ими одинаковым образом независимо от того, на какой системе вы запускаете Vim. Он представляет собой специальный плагин, который выполняет роль пакетного менеджера для других плагинов.

    — в настоящее время наиболее популярный менеджер плагинов Vim. - минималистичный менеджер плагинов для Vim, который имеет много особенностей, например, загрузка плагинов по запросу и параллельное обновление. — простой плагин для управления переменной runtimepath. - менеджер плагинов, заменяющий NeoBundle, доступен как vim-dein-gitAUR .

Из репозиториев Arch

Группа vim-plugins объединяет множество разнообразных плагинов. Используйте команду pacman -Sg vim-plugins для отображения списка пакетов, которые вы можете затем установить, используя pacman.

cscope

Cscope является инструментом для навигации по программному проекту. Путем перехода к слову/символу/функции и вызову cscope (обычно с помощью горячих клавиш) можно найти: функции, которые вызывают данную, определение функции и многое другое.

Скопируйте стандартный файл cscope, который Vim будет автоматически читать:

Примечание: Вам наверное понадобится откомментировать следующие строки в ~/.vim/plugin/cscope_maps.vim , чтобы включить горячие клавиши cscope в Vim 7.x:

Создайте файл, который содержит список файлов для индексации (cscope может обрабатывать множество языков, но для примера мы возьмем файлы на Си/Си++ с расширениями .c, .cpp и .h):

Создание файлы базы данных, которые cscope будет читать:

Примечание: cscope ищет файл cscope.out в рабочем каталоге, поэтому тот же каталог следует использовать и для навигации по проекту в Vim. Также, вы можете указать путь до этого файла явно, установив его в переменной окружения $CSCOPE_DB .

Горячие клавиши по умолчанию:

Не стесняйтесь изменять горячие клавиши:

Taglist

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

Читайте также: