Мой vim
Заметка написана в 2017 году и успела устареть. Сейчас у меня установлен neovim, а набор плагинов стал минималистичнее. Актуальная версия vimrc всегда доступна на гитхабе
К слову, у меня установлен не vim, а gvim. При использовании в терминале он ни чем не отличается от обычного вима, но, возможно, работа некоторых плагинов в обычном виме будет отличаться.
Установка плагинов
В качестве пакетного менеджера для плагинов vim я использую vundle. Для установки надо просто склонировать репозиторий в директорию ~/.vim/bundle
, создать .vimrc
по шаблону и выполнить :PluginInstall
.
Теперь для добавления нового плагина достаточно прописать строчку со ссылкой на него в конфиг и выполнить :PluginInstall
.
Полезные шорткаты
Перед тем как перейти к установке плагинов, я хочу показать наиболее полезные шорткаты, без которых я с трудом представляю использование вима. Последующие команды прописываются в конфиг после вызова vundle#end().
По умолчанию кнопка <leader>
привязана к \
, но мне удобнее переназначить её на запятую let mapleader=","
.
Вим для копирования и вставки использует свои собственные буферы, поэтому я сделал шорткаты для копирования в системный буфер (обозначается символом “). Отдельные сокращаения для копирования между экземплярами вима (на всякий случай).
На заметку: vmap
означает привязку сокращения к команде в режиме визуального выделения, а nmap
―вне этого режима.
nmap <silent> // :nohlsearch<CR>
― выключение подсветки результатов поиска.
Изменение регистра всего слова:
Переключение между режимами переноса строк:
Ввод пароля суперпользователя для сохранения файла с рут-правами:
Хранение истории undo после закрытия файла:
В случае, когда надо совершить вставку куска кода из системного буфера без использования вимовской автоматической табуляции, поможет следующий конфиг:
А этот шорткат найдёт метки мердж-конфликтов при работе с гитом:
Визуальное оформление
Плагин для темы jellybeans Plugin 'nanotech/jellybeans.vim'
. Включаем цветовое оформление:
Теперь надо сделать редактор более удобным для работы с исходниками. Для этого мне понадобится отображение номеров строк, выделение текущей строки, подсветка результатов поиска и ещё несколько опций:
Последняя опция добавляет удобное автодополнение команд редактора в командной строке.
Ещё одна важная настройка ― это активация скролла и выделения мышью:
Стандартная строка состояния отображает мало информации, поэтому я подключил сторонний плагин:
Активация командной строки и установка темы:
Полный список тем можно посмотреть здесь. Если строка статуса отображается не так, как на скриншотах у разработчиков, позможно, есть проблемы с текущим шрифтом. Я прописал нужные символы в свой конфиг:
На заметку: пока искал информацию по кастомизации строки состояния, узнал что при выходе из режимов INSERT и VISUAL по нажатию
То, без чего нельзя представить современные текстовые редакторы ― это дерево файлов. Есть плагин и для этого. Заодно добавил плагин для быстрого поиска по файлам проекта:
Теперь можно искать файлы по нажатию
Настройка редактора
Теперь к конфигурации непосредственно редактирования текста:
Но редактировать текст без автодополнения как-то скучно. Поэтому надо добавить плагины
и настроить автодополнение:
Для того, чтобы иметь возможность заменять строки сразу во всех файлах проекта по команде :Replace abc cba
, надо поставить ещё один плагин:
Этот плагин, кстати, поддерживает регулярки по умолчанию и предоставляет более подробный поиск по :Grep abc
.
При помощи Plugin 'mbbill/undotree'
можно получить удобный доступ к истории изменения файла. Только надо сделать удобный шорткат для этого: nmap <silent> <leader>z :UndotreeToggle<CR>
.
Ещё можно добавить подсветку опечаток и грамматически неверных слов в файлах некоторых форматов:
Окружение для разработки
Чтобы редактор мог находить определение функций или переменных в разных языках программирования, понадобится плагин, применяющий утилиту ctags. Устанавливаем exuberant-ctags в своей операционной системе и прописываем в .vimrc
:
Теперь по нажатию
Я хочу иметь возможность запускать командную строку прямо в редакторе. Для этого понадобятся плагины:
Но сейчас недостаточно просто поставить плагины через пакетный менеджер. Надо ещё выполнить
Теперь можно запускать командную строку командой :VimShell
.
Естественно, для нормальной разработки необходим git. Плагин fugitive даёт возможность работать с гитом прямо из вима. Можно использовать спецальные команды плагина, например, :Gstatus
, а можно писать обычные комманды гита :Git status
.
Для проверки синтаксических ошибок в языках программирования надо прописать в конфиг:
Плагин ale будет на лету прогонять код через линтеры. Соответственно, утилиты для проверки кода, например, flake8 для Python, должны быть установлены в системе. Для использования утилиты, проверяющей код, не по умолчанию, используется следующая запись:
Информацию по доступным утилитам можно посмотреть при помощи :help syntastic-checkers
.
Мне очень нравится комментирование строк в IDE от JetBrains. По нажатию
На заметку: в конфигах вима сочетания Control и слэша записывается как <C-_>
.
Результат
Полный конфиг на данном этапе можно посмотреть здесь. А на гитхабе лежат мои текущие дотфайлы.