惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
人人都是产品经理
人人都是产品经理
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
F
Fortinet All Blogs
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
Jina AI
Jina AI
J
Java Code Geeks
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
美团技术团队
博客园 - 司徒正美
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
С Vim удобно программировать (часть III)
Oldchip · 2026-04-23 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение2 мин

Охват и читатели1.1K

Туториал

Приведем пару простых примеров для иллюстрации изложенного здесь и здесь.

  1. 1 Ruby + Sinatra

    Sinatra - фреймворк для Ruby, позволяющий создавать несложные сайты. Не буду загромождать статью изложением установки этого гема; предполагаю, что у читателей не возникнет с этим проблем.

Задача: на Ruby + Sinatra создать учебный сайт (см 2., Урок 19). Он будет состоять из программы на ruby app1.rb и одного представления index.erb, выводящего страницу с заголовком <h1>Hello!</h1>.

Структуру проекта создаем вручную. Создаем каталог 19, в нем будет находиться главный файл app1.rb. В этом каталоге создаем подкаталог ./views, где будут располагаться представления.
Запускаем команду vim project и добавляем в файл проекта строку app1.rb. Выходим с сохранением (:wq) и запускаем снова команду vim project. В редакторе появилась вкладка app1.rb. Добавляем в неё код

require 'sinatra'

get '/' do
erb :index
end

Видим, что для сайта нам потребовалось представление ./views/index.erb.
Добавляем в project вторую строчку ./views/index.erb. Всё сохраняем (:wa) и отовсюду выходим (:qa); на эти команды рекомендую предварительно сделать сопоставления для режима вставки, например,

inoremap <C-w> :wai
inoremap <C-q> :qa

Запускаем снова vim project, видим, что появилась новая вкладка ./views/index.erb. Добавляем в неё код
<h1>Hello!</h1>

Запускаем проект из Вима по Ctrl-F5 (можно из любой вкладки). Открываем в браузере страницу localhost:4567, убеждаемся, что всё работает, закрываем Синатру по Ctrl-c и снова оказываемся в Виме. REPL на Vim работает.

  1. 2. Работа с Git

    Что такое Git - все знают. Опять же автор предполагает, что читатели знают и несколько консольных команд Git.

    Допустим, мы начали разработку и хотим зафиксировать изменения. Сперва инициализируем Git, как обычно:

    git init

    Далее, необходимо добавить в Git файлы для отслеживания. Логично, что это будут файлы, перечисленные в project:

    git add `cat project`

    Проверим статус:

    git status

    ... и убеждаемся, что весь наш проект в Гите!

    Вот такой небольшой трюк, облегчающий одну из самых трудоемких операций в Git. Далее работа стандартная: фиксируем изменения (commit) и при необходимости отправляем их на удаленный сервер (предварительно, конечно, зарегистрировавшись).

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

Ресурсы

  1. Википедия: https://ru.wikipedia.org/wiki/REPL

  2. RubySchool: https://rubyschool.us/

  3. Git за полчаса: https://proglib.io/p/git-for-half-an-hour