haelle.vimrc
Ansible vimrc
Роль Ansible для установки NeoVim с несколькими плагинами.
Для этого требуются задачи из сообщества Ansible:
ansible-galaxy collection install community.general
Зависимости
- ⚠ Внимание, этот процесс установки включает NodeJS и npm из пакетного менеджера. ⚠
- Установите Fzf и Ag для поиска.
Цели
Полная/бесшовная поддержка следующих языков/синтаксиса:
- Ruby/RoR
- HTML
- Javascript
- VueJS
- React
- Ansible
- JSON
- YAML
- Markdown
- C#
Цель — достичь 0 ошибок в поведении.
Темы и шрифты
Текущая тема — slate (также подходят desert, industry); измените ее с помощью :colorscheme xxx, доступные темы можно увидеть с помощью Tab.
Текущий шрифт — MesloLGS NF Regular (поддерживает эмодзи), установлен для Zsh.
Плагины
Установите плагины: :PlugInstall (уже установлены через Ansible).
Навигация
Помощь: используйте :help keycodes для отображения названий кодов клавиш vim.
Возможность навигации с помощью сплитов, вкладок и Tmux:
<C-w f>: открыть в сплите<C-w gf>: открыть во вкладке<C-⬅,⬆,⬇,➡>: навигация панелей<C-w-⬅,⬆,⬇,➡>: перемещение панелиgt: переключение между вкладками vim<C-b>: задействовать навигацию Tmux.
Активные функциональности
gd: перейти к определениюgi: перейти к реализацииgr: навигация по ссылкамgf: перейти к файлу (только для Ruby/Rails)gg=G: отформатировать кодF2: переименовать переменную/метод/класс<C-k>: показать определение методаqf: запустить исправление линтера - работает не очень хорошо...fr: запустить форматирование на текущей строке (не работает на Solargraph/Ruby)fa: запустить форматирование на всем файле<C-o>: назад<C-s>: сохранить<C-space>: вызвать движок автозаполнения<tab>: переключение между предложениями автозаполнения<C-c>: комментировать/раскомментировать (строку или выделение)bufdo!: использовать!, чтобы не сохранять файлы (с этой конфигурацией это обязательно...)
Связанные с Ruby и Rails:
<C-q>: переключение между Ruby-тестом и файлом<C-w>t/s/l/aвыполнять тест/спецификации (файл, ближайший, последний, все).
Другие:
- приостановить vim
Ctrl+zи вернуться с помощью fg.
Автоматические / пассивные функции
- проверка правописания
- подсветка синтаксиса
- авто линтинг в области и в плавающем окне
- использовать 2 пробела для табуляции везде
- запоминать позицию курсора между сессиями
- удалять пустые строки при сохранении
- обрезать пробелы
- показывать все невидимые символы
- выделять ключевые слова 'TODO/FIXME/XXX'
- лучше изменять размер vim
- добавлять все виды пар (), [] тэг...
- добавлять Ruby пары (def/end, do/end)
- добавлять информацию Git в область
- добавлять информацию линтера в области или подчеркиванием
- показывать определение метода, если доступно (используйте
<C-a>и<C-b>для прокрутки назад и вперед).
Поиск
Активный:
<C-f>: искать в текущем файле (обычный vim)<Shift-f>: искать во всех файлах (с помощью fzf.vim / ag)- Внимание : возможно, вам придется отключить поиск в терминале, чтобы это работало.
<Esc>: отменить поиск (отменить подсветку).<C-p>: поиск файла по имени (с помощью fzf.vim)Enter: открыть<C-t>: открыть в новой вкладке<C-x>: открыть в горизонтальном сплите<C-v>: открыть в вертикальном сплите.
Пассивный:
- подсветка результатов в Темно-зеленом цвете.
- подсветка текущего выбора мигающим курсором.
Боковая панель (NerdTree)
Активный
<C-n>: открыть/закрыть NerdTreeEnter: открыть файлi: открыть в горизонтальном сплитеs: открыть в вертикальном сплите- ... см. документацию NerdTree
Пассивный
- значки для файлов
- символы на основе статуса Git
- игнорирование некоторых папок (
node_modules,.gitignore)
Ruby - верить, значит видеть
F4/F5/F6/F7 пометить/запустить/пометить и запустить/очистить метки кода.
Поддержка автозаполнения
Плагины будут установлены при первом запуске.
Для Solargraph необходимо установить его для каждой версии Ruby, с которой вы работаете:
:InstallGems
Полезные команды:
:CocInfo:CocList commands:checkhealth:CocList extensions:call CocAction('format'):CocList marketplace python
Имейте в виду доступные расширения:
- javascriptreact
- typescript
- typescriptreact
- typescript.tsx
- graphql
Переменные роли
Нет обязательных параметров, все параметры находятся в defaults/main.yml.
Пример плейбука
- hosts: localhost
roles:
- role: vimrc
vim_user: foo
Использование в разработке
Чтобы запустить это локально, создайте символическую ссылку: cd /etc/ansible/roles & sudo ln -s /path/to/vimrc .
Лицензия
BSD
ansible-galaxy install haelle.vimrc