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