В основі своїй, великі мовні моделі (LLMs) генерують фрагменти тексту — фрагменти коду, пояснення, рефакторинги — які розробники повинні оцінювати та інтегрувати в свої проекти.
Vim, з його ефективними можливостями маніпулювання текстом і навігації, забезпечує ідеальне середовище для використання потужності LLM. Його модальний дизайн перетворює редагування на плавний, керований клавіатурою діалог: витягувати фрагменти в регістри для подальшого використання, стрибати між файлами за допомогою міток або переписувати блоки з точністю — все це, зберігаючи неперервну концентрацію.
VimLM має на меті безшовно інтегрувати LLM у цей робочий процес.
Початок роботи
Встановлення
Встановіть VimLM за допомогою простого pip-командного рядка:
$ pip install vimlm
Для більш детальної інформації та останніх оновлень відвідайте репозиторій GitHub.
Запуск
Запустіть VimLM зі свого термінала:
$ vimlm
Ви побачите розділений інтерфейс: панель редагування зліва та вікно відповіді LLM справа. У правому вікні з’являться результати роботи AI-помічника.
Основний робочий процес
Запит до AI
Щоб задати запит LLM, натисніть ``
У командному рядку з’явиться “VimLM:” — готовий для вашого вводу. Напишіть свій запит і натисніть Enter.
Наприклад, попросіть допомогу у створенні розширення для Chrome:
Create a Chrome Extension for copying selected content from webpages
Відповідь передається асинхронно до розділеного вікна, дозволяючи вам продовжувати редагування в іншому вікні.
Щоб зосередитися тільки на згенерованому контенті, використовуйте `` для закриття порожнього вікна і максимізації вікна відповіді:
Наступні запитання
Коли вам потрібно вдосконалити або налаштувати відповідь AI, натисніть `` для того, щоб зробити наступний запит.
Попередній контекст зберігається.
Наприклад, якщо ви помітили, що згенерований код використовує застарілу версію маніфесту:
Use manifest V3 instead
Розгортання згенерованого коду
Щоб витягнути блоки коду з відповіді та зберегти їх як окремі файли, використовуйте команду !deploy
у подальшому запиті ``:
Застосування пропозицій до вашого коду
Відкрийте файл, який ви хочете редагувати: :e popup.js
(або vimlm popup.js
у терміналі)
Зробіть вибір і натисніть `` та задайте конкретне питання про вибраний код:
how to get rid of html tags from item.content
Коли ви побачите рішення, яке вам подобається, натисніть `` для застосування запропонованого виправлення коду безпосередньо до вашого вибору.
gg=G
автоматично відступає увесь файл:
Якщо запропоновані зміни коду не відповідають вашому початковому вибору, натисніть gv
, щоб повернутися до попереднього вибору, а потім використовуйте o
, щоб перемикатися між початковою та кінцевою точкою для коригування за потреби.
Додавання контексту
VimLM за замовчуванням працює з багатошаровим контекстом — ваш активний вибір і весь поточний файл автоматично додаються разом із запитами. Але як зазначив творець Vim Брам Муленар, “файл рідко існує сам по собі”. Ви можете використовувати !include
, щоб додати більше контексту до запиту:
AJAX-ify this app !include ~/scrap/hypermedia-applications.summ.md
Це можна використовувати для автоматизації рутинних частин розробки, таких як перевірка змін для повідомлення про коміт:
Git commit message for the code changes !include $(git diff popup.js)
Або для генерації змін у журналі після оновлення версії:
Summarize the changes !include $(git log - oneline -n 50)
Ви також можете використовувати фільтрацію та зворотній зв'язок, щоб зосередитися на конкретних шаблонах, як у терміналі:
Diagnose server errors !include $(grep -r "500 Internal Error" ./fuzz | head -n 5)
Ex Commands
Для часто використовуваних робочих процесів LLM, VimLM надає команду :VimLM
, що дозволяє створювати та зберігати повторно використовувані шаблони запитів. Ось кілька прикладів:
" Debug CI failures using error logs
:VimLM Fix Dockerfile !include .gitlab-ci.yml !include $(tail -n 20 ci.log)
" Generate unit tests for selected functions and save to test/
:VimLM Write pytest tests for this !include ./src !deploy ./test
" Add docstrings to all Python functions in file
:VimLM Add Google-style docstrings !include % !continue 4000
Зміна моделі LLM
За замовчуванням VimLM використовує неконтрольовану модель Llama 3.2 3B з лімітом токенів 2000. Ви можете переключитися на будь-яку модель, сумісну з MLX:
"LLM_MODEL": "mlx-community/DeepSeek-R1-Distill-Qwen-7B-4bit",
"NUM_TOKEN": 32768
Збережіть у ~/vimlm/cfg.json
і перезапустіть VimLM.
Висновки
Ефективність Vim і можливості LLM — це ідеальна комбінація. VimLM заповнює цей пробіл, надаючи вам AI-помічника, не залишаючи улюблений редактор. Незалежно від того, чи пишете ви код, виправляєте помилки або досліджуєте нові фреймворки, VimLM допомагає вам залишатися в потоці, використовуючи потужність AI.
Перекладено з: VimLM: Bringing AI Assistance to Vim