Навигатор по каналу в целом здесь, но статей много, поэтому открываю тематические путеводители. Это оглавление рубрики "Секреты Вим": для тех немногих избранных, кто может оценить ее по достоинству. Обновление планируется с задержкой не более недели-двух, иногда до месяца. Статьи выходят по понедельникам. Последнее обновление: 05.11.2024.
Каналу два с половиной года. Юбилейная сотая заметка "Вим: зачем, почему, что такое" вышла 15 марта 2022. Очередь на год вперед по всем направлениям! Подписчиков уже двадцать две тысячи! Рубрика Вим наименее популярная, но в ней каждую неделю выходили заметки. И будут выходить, еще больше года точно.
Потом оформлю всё как книгу-энциклопедию. Есть такие мысли.
Базовая техника
- Позвольте представить: Вим. Некоторое общее описание редактора.
- Copy-paste и регистры. Как копировать и вставлять.
- Поиск и замена. Как искать текст и заменять его. Тема регулярных выражений не раскрыта, но затронута.
- Длинные строки — сворачивание и перемещение по строке. Можно длинную строку уложить в несколько логических или уходить за экран.
- Перемещение по строке. Куча удобнейших команд!
- Диапазоны строк. Как применить действие к строкам от и до, и как именно можно их выбрать: по абсолютному номеру, по относительному, по поиску, и еще нюансы.
- Фильтры строк. Как обработать только те строки, что удовлетворяют (или те, что не удовлетворяют) условию: регулярному выражению. На этих строках можно делать замены (чаще всего), их можно двигать и многое другое.
- Прыжки по тексту. Кое-что помимо Home-End, Page Up-Page Down. прыжки абзацами, предложениями, блоками кода, сдвиг экрана относительно курсора, поиск по слову и многое другое.
- Выделение текста. Общеизвестная техника и удобные секреты. См. ниже про режим классического выделения, который к базовой технике не относится.
- Скороговорки: несколько удобных сокращений
- Командная строка Вим (режим ex)
- Текстовые объекты: содержимое скобок, строки в кавычках, блоки кода, абзацы, предложения, слова и многое другое.
- Стрелки. Секреты перемещения курсора на символ влево-вправо и на строку вверх-вниз.
- Что можно в режиме вставки. Стандартные вещи и немножко волшебства.
- Приятные особенности режима замены. Режим замены - печати поверх текста - в Виме лучше, чем в обычных редакторах.
- Вход в режим вставки. А вы думали, только i?
- Набор текста. Что у нас есть в режиме вставки, чтобы бодрее печатать.
- Команды на g. Сама клавиша g работает как shift, открывая новые возможности, и много таких команд есть кроме gg. Лучше знать, что есть под рукой, верно?
- Команды на z. То же самое, что и для g. Но команд меньше и они сильнее сгруппированы.
- В начале было Слово. О словах в Вим.
- Регистр-выражение: как вычислить что-то "на лету"
- Табуляция: всё про работу с этим особым символом, который может быть так удобен и который может доставить столько проблем.
- Режимы. Обзор.
Настройка и удобства
- Некоторые удобства: мышь, подсветки, цветовая схема, номера строк, русская раскладка, автозамены и горячие клавиши.
- Горячие клавиши: как привязать любую команду к клавише или последовательности. Это тонкая настройка Вим под себя.
- Сокращения: как задать аббревиатуры, которые сами раскрываются в тексте: например dblpr в DOUBLE PRECISION или hte в the.
- Как сделать меню, закинув туда сложные команды. Тонкая настройка. Например, можно сделать меню проверки орфографии и выбирать в меню язык (или выключать проверку). Или сделать меню на выход и выходить без сохранения, с сохранением, из всех вкладок...
- Файл .viminfo. Как не потерять при выходе то, что хотелось бы сохранить. Оно, конечно, само работает, но есть као-какие настройки и кое-какие возможности, которые можно задействовать. Например, автопереход при открытии файла туда, где были на момент выхода.
- Строка статуса, она же информационная строка. Как настроить "внизу" вывод нужной вам информации: имя файла и его длина, позичия курсора и процент текста выше него, тип и кодировка файла, и многое другое.
- О позиции в тексте: как визуально отметить строку и столбец под курсором, и кое-что еще.
- Про мышь. Тонкости настройки этого удобного устройства.
- Использование файлов-шаблонов. Чтобы при создании нового файла с данным расширением там уже что-то было.
- Вставка шаблонных конструкций. Как по нажатию клавиши вставить в текст конструкцию с полями, которые еще и содержат подсказку. Вроде "ФИО: [Фамилия, Имя Отчество]", причем подсказка исчезает сама, когда начинаешь вводить текст.
- Резервная копия: настройка копии файла, которую Вим создает на случай сбоев или чтобы иметь нетронутую версию исходного файла.
- Распознавание типа файла. Полезный плагин в поставке. Можно настраивать Вим на файлы данного типа, перекрывать или дополнять встроенное поведение, вводить свои типы, ориентироваться не только по имени файла (расширению обычно), но и совать нос в содержимое.
- Типы файлов и отступы. Продолжение предыдущей заметки о типах файлов, на сей раз настройка отступов. Немного рассказано о настройке встроенных индент-плагинов для популярных языков.
- Команда set. Знакомимся с опциями поближе. Возможность задавать значения, смотреть их, дополнять или убавлять что-то, не задавая всё... например, если опция содержит список флагов или каталогов.
- Локальные опции. Кое-что имеет смысл задавать для данного файла только.
- Настройки в документе. Возможность дать указания Виму прямо в тексте документа.
- Чтение системной справки по слову под курсором. Что читает справку - настройте сами. Может быть сам Вим, может быть системный man, может быть perldoc или что вы там используете.
- Что делать с бипом? Можно ли противный звуковой сигнал отключить или заменить чем-нибудь другим?
- Создание своих :команд командной строки.
- Создание своих операторов: команд, работающих по движению.
- Настройте Вим своей девушке: как сделать менюшечки и подсказочки.
- Режим обычного редактора, или режим вечной вставки (расскажу, как оттуда выйти)))) Со вступлением в стиле Данте!
- Заголовок окна. Как задать в заголовке системного окна содержательный текст.
- Три плагина в поставке: мелочи, но приятные. Особенно поиск запущеного Вима, в котором открыт данный файл. Но и перевернуть мышь полезно, если вы левша. А если пишете на bash, то и третий плагни вам понравится.
- Подтверждение действий. "Вы точно уверены, что хотите перезаписать этот файл, или подумаете еще немного?" Если так нравится, то это несложно.
- Переход на вкладку с данным файлом - если открыли файл, который уже открыт, то хотелось бы увидеть открытый, а не открывать заново.
- Модификаторы имен файлов. Вещь необходимая для запросов типа "в том же каталоге, что и этот" или "с тем же именем, но расширение другое".
- Свои текстовые объекты. Помимо слов, скобок, предложений и абзацев - что хотите: числа, блоки кода Питона, весь текст, и т.п.
Возможности
- Вкладки и окна. Как работать с несколькими файлами.
- Фолдинг: сворачивание блоков текста. Для программиста необходимость, но и в общем случае полезно.
- vimdiff: работа с различиями. Как использовать окна, раскраску и фолдинг для анализа различий в двух файлах.
- Undo: отмена изменений. Анду неограниченный практически. Рецепты и подводные камни.
- Числа в тексте: инкремент и декремент. Числа в тексте это числа, и для них есть некоторая арифметика.
- Макросы: запись и использование. Автоматизация длительных серий команд. Можно запомнить серию и потом воспроизвести. Осторожно только, чудес Вим не обещает.
- Закладки-метки — запоминание позиции в тексте. В большом файле важно уметь быстро положить закладку и потом вернуться к ней.
- Визуальные закладки — как отметить место в тексте. Это про визуальные закладки. Вещь удобная, но требуется подготовка.
- Автодополнение: слов, строк, синонимов. Автодополнение слов из файла и "соседних" файлов равно как и строк, у вас уже есть. При минимальной настройке можно получить еще допонение слов из словаря, из тезауруса (словаря синонимов), тегов или файлов.
- Сортировка строк текста. Очень полезно для текстовых форматов данных. Инструмент Вим очень мощный! Можно сортировать по тексту, по числу, по выражению, с пропуском выражения, без учета регистра, в обратном порядке, с пропуском повторов...
- Смена регистра символов. Много любопытной информации про регистр вообще и удобные возможности Вима для смены регистра.
- Режим классического выделения текста. Не очень полезный режим, но может пригодиться для создания форм и прочих продуктов на базе Вим. А может, кому и понравится, особенно если повесить на горячую клавишу
- Редактирование двоичных файлов. Редко надо, но когда надо, то очень полезно!
- Минутка юмора. Шутки про и пасхалки в Вим.
- История команд: окно для просмотра и редактирования команд
- Сессии: как можно сохранить настроенную конфигурацию для другого раза.
- Кодировки и концы строк. Важный вопрос, на самом деле. Много крови может попортить. Как прочесть файл не в той кодировке, как сохранить. Как бороться с концами строк в стиле DOS под Линукс (и наоборот).
- Автокоманды. Важная вещь, но для специалистов. Можно реагировать на происходящие события: очень полезно! Ничего сложного, на самом деле. Обычное дело отработать событие "открылся новый файл с расширением .txt" или "открывается старый файл .zip" или "включен режим вставки" или "нажата клавиша" или "клавиши давно не нажимались".
- Списки прыжков и правок. Вим запоминает ваши перемещения по тексту и его изменения. И этим можно пользоваться.
- Про метки поподробнее. Помимо меток a-z, есть и системные, которые Вим ставит сам, и ими можно пользоваться.
- Конвертация в HTML. Есть в Вим такая возможность: сохранить текст в формате html, с сохранением оформления, фолдов, номеров строк и прочего.
- Иерархические списки: отступы и фолдинг.
- Редактирование таблиц данных. Удобные возможности для работы с таблицами, в том числе виртуальные позиции и несмещающее редактирование.
- Статистика по файлу. Как узнать число слов, символов и прочего.
- Сокрытие текста (conceal): вариант подсветки синтаксиса с заменой текста одним символом (\lambda → λ) или сокрытием текста вообще. В файле и памяти текст есть, но на экране не отображается или изображается замещенным одним символом. Удобно для ТеХ (см).
- Ввод символов Юникода. Разные способы ввести то, чего нет на клавиатуре.
- Работа с Юникодом: про сам Юникод, поиск, комбинирование символов и средства Вим для работы со сложными символами.
- Печать в Postscript. Удачное дополнение к конвертации в HTML (см. выше). Возможность распечатать текст с сохранением раскраски и всего прочего.
- Вим как more/less. Возможность использовать Вим как системный пейджер.
- Повторные действия. Как упростить рутину?
- Окна. Работа с окнами в Вим.
- Окно предпросмотра. Есть такое спецокошко.
- Выравнивание по ширине. Удобный плагин в поставке для выравнивания обоих краев текста путем вставки пробелов.
- Автосохранение файла. Если хотите, то это можно.
- Если файл изменился. Вим реагирует на внешние изменения, стараясь не запортить.
- Тонкости поиска. Все нюансы.
- Команда замены. Все тонкости.
- Практика замены. Приёмы из жизни.
- Терминал в окне Вим.
- Деревья правок. Отмена отмен.
- Свойства текста. Можно приписать произвольному тексту какие-то свойства и, например, раскрасить его или найти потом по свойству.
Вим для программиста
- Подсветка синтаксиса. Как раскрасить текст, чтобы было удобно с ним работать. Готовые схемы и изготовление своих.
- Вим как IDE. Настройка Вим для программирования: редактирование исходного кода, работа со многими файлами, учет синтаксиса, компиляция, обработка ошибок в коде, форматирование кода и комментариев.
- QuickFix: исправление ошибок в коде, поиск по файлам...
- Скобки: методы работы с ними. Скобки везде, и для работы с ними есть много удобных штук.
- Тэги: переходы к ключевым словам. При работе с программными проектами в десятки файлов вещь нужная.
- Автоматические отступы в программном коде. Разные способы автоматической и полуавтоматической расстановки отступов. Даже для Питона есть вариант.
- Вим и Фортран. Специальные настройки, предусмотренные для древнейшего и самого лучшего языка для расчетов.
- Форматирование комментариев в программном коде. Вим кое-что знает об этом, а чего не знает - можно ему объяснить.
- Команды квадратных скобок. В основном, для Си: прыжки и переходы особого вида.
- Плагин MatchIt. удобное перемещение по всяким парам типа begin-end в программном коде.
Набор текста на естественном языке
- Раскладки клавиатуры: как печатать по-русски, но чтоб команды остались доступны. Заодно можно обойтись без системной русской раскладки.
- Вим и ТеХ. Инструменты и настройки, предусмотренные специально для ТеХ, LaTeX и т.п.
- Проверка орфографии. Для разных языков и диалектов. Да, есть и такое. Заметка вышла 1 сентября. Если ты школьник и владеешь Вим — респект.
- Форматирование текста. Отступы, выравнивание, переносы строк.
- Диграфы — способ вводить символы Юникода без запоминания кодов, а парой символов. Всякое такое: ±√½ χ² π א る∫
- Ввод спецсимволов — способ вводить спецсимволы, такие, как символ конца строки или табуляции. Важно для привязок.
- Вим и иврит. Поддержка иврита в Вим. Очень серьезная! Никудот, дагеш, режим "справа налево", раскладки: "родная" и фонетическая... И всё это у вас уже есть!
- Ввод юникодного текста. Когда по одному символу вводить уже не годится, надо просто печатать на том языке, на котором вам надо.
- Русская дореформенная азбука в Вим: моя раскладка с ятями и фитами.
- Вим и арабский язык. Письмо справа налево, харакат, магия преобразования букв - все есть!
- Раскладка Дворака. Плагин в поставке, раскладка тоже, да и вообще про раскладку и что она такое.
- Работа без переключения на латиницу. Так тоже можно, хотя не вполне удобно.
- Вим и греческий язык. Про сам язык много интересного.
- Хангыль: корейский алфавит в Вим. Переписывался с автором раскладки.
- Восточные письменности. Идут в поставке!
- Прочие раскладки, что идут в поставке, то есть у Вас уже есть!
Безопасность и секретность
- Шифрование файлов. Безопасность, криптография, будни плаща и кинжала. Да, Вим способен зашифровать файл и расшифровать его прозрачно для пользователя. Тонкости и подробности.
- Шифр ROT13 для сокрытия текста на экране и других целей. Простой шифр сдвига. Вим может зашифровать и расшифровать.
- Песочница. Есть и такое в Вим: безопасное выполнение команд. Полезно бывает, особенно если работаете в токсичной среде.
- Сокрытие текста (см. выше): вариант подсветки синтаксиса с заменой текста одним символом может быть полезен для секретности.
Вим и система, работа со многими файлами
- Вкладки и окна. Как работать с несколькими файлами.
- Vim и bash — как выйти "в систему"? Иногда бывает нужно что-то сделать в командной строке, не закрывая редактор. Несколько способов. Сессии описаны, но подробнее есть отдельный материал.
- Параметры запуска Вим. Ключи, которые помогут запустить Вим так, как вам это надо. Перенаправление вывода в Вим, режимы (только для чтения, защищенный, шифрованный и т.д.), открытие файлов в окнах и вкладках...
- Список файлов. Как до них добраться и что с ними можно делать.
- Пакетные операции. Как сразу обработать много файлов.
- Поиск по файлам: vimgrep. Как найти искомое и как потом с этим работать. В чем разница с системным grep.
- Внешние фильтры: как пропустить текст через утилиту вне Вим.
- Поиск файлов. Как Вим находит то, что вы просили? И как попросить?
- Сетевые протоколы. Как в Вим добраться до удаленных (сетевых) файлов.
- Запуск файлов. Иногда файл надо открыть не в Вим как текст, а "где надо", в том числе выполнить как программу. Это можно и из файлового менеджера Вим, и из текста, если в нем указано имя файла.
- Файловый менеджер в Вим. Просмотр папок, файловые операции.
- Работа с файлами. Подробнее про файловый менеджер Вим.
- Файловые маски и подстановки. Крайне удобные штуки можно делать, выбирая файл по шаблону и преобразуя его путь/имя/расширение...
Регулярные выражения
- Регулярные выражение: введение. Как найти ВСЁ! Небольшое введение для начинающих.
- Регулярные выражения: квантификаторы. Как найти заранее неизвестное количество чего-то.
- Регулярные выражения: якоря. Они же "совпадения нулевой ширины". Граница слова, начало строки, начало совпадения, символ под курсором и все такое.
- Регулярные выражения: захваты. Как использовать уже совпавший текст? Нужно для замены или отлова повторов вроде "длинношеее" или "едва-едва" (или опечаток вроде "the the").
- Регулярные выражения: классы символов. Как описать набор возможных символов, которые могут совпасть в данном месте: это точка, которая "любой символ", или перечисление вроде [abc], и исключение, вроде [^xyz], и еще кое-что небесполезное...
- Магия регэкспов и регистр символов. О том, как трактовать символы: + это плюс или "один или более", и Ъ это то же, что ъ, или не то же. Иногда вам нужны сложные регулярные выражения, а иногда вам надо искать текст вида \\\///***+++. И Вим может помогать вам, а не препятствовать. Равно как и где-то III и iii это одно то же, а где-то нет, и это может быть важно и в целом, и при конкретном одном поиске.
- Некоторые тонкости регулярных выражений, которые мало кто знает.
Скриптовый язык
- Списки (массивы).
- Скриптовый язык: отладка. В Вим есть встроенный отладчик!
- Скриптовый язык: хронометрия. И профилировщик встроенный тоже есть.
- Автозагрузка функций. Когда нет желания держать всё в памяти или когда нужен план Б.
- Vimballs: формат пакетов для установки
Примеры из практики
- Конфигурация под одну задачку. Окно терминала, привязки, окна, make, bash: все совместно для удобства работы.
- Переключение раскладки: удобная наработка исправления неправильной раскладки нажатием одной клавиши.
- Время, дата и напоминания. Немного хакерской настройки.
- Сумматор. Баловство, но полезное.
- Полезные привязки. Мой опыт.
Прочее
- Как запускается Вим - технические детали
- Таблицы LaTeX - с применением сторонних пакетов
- Даты и календари. Немного не про Вим.
- Пакеты для LaTeX. Небольшой обзор сторонних пакетов.
- Остановка процесса. Один из способов выйти в систему.
- TMTOWTDI. Есть более одного способа сделать это.
Продолжение следует...