Найти тему
Блокнот математика

Навигатор по рубрике "Секреты Вим"

Навигатор по каналу в целом здесь, но статей много, поэтому открываю тематические путеводители. Это оглавление рубрики "Секреты Вим": для тех немногих избранных, кто может оценить ее по достоинству. Обновление планируется с задержкой не более недели-двух, иногда до месяца. Статьи выходят по понедельникам. Последнее обновление: 05.11.2024.

Каналу два с половиной года. Юбилейная сотая заметка "Вим: зачем, почему, что такое" вышла 15 марта 2022. Очередь на год вперед по всем направлениям! Подписчиков уже двадцать две тысячи! Рубрика Вим наименее популярная, но в ней каждую неделю выходили заметки. И будут выходить, еще больше года точно.

Потом оформлю всё как книгу-энциклопедию. Есть такие мысли.

Базовая техника

  1. Позвольте представить: Вим. Некоторое общее описание редактора.
  2. Copy-paste и регистры. Как копировать и вставлять.
  3. Поиск и замена. Как искать текст и заменять его. Тема регулярных выражений не раскрыта, но затронута.
  4. Длинные строки — сворачивание и перемещение по строке. Можно длинную строку уложить в несколько логических или уходить за экран.
  5. Выход из Вим. "Как выйти из Вим???" Все способы.
  6. Перемещение по строке. Куча удобнейших команд!
  7. Диапазоны строк. Как применить действие к строкам от и до, и как именно можно их выбрать: по абсолютному номеру, по относительному, по поиску, и еще нюансы.
  8. Фильтры строк. Как обработать только те строки, что удовлетворяют (или те, что не удовлетворяют) условию: регулярному выражению. На этих строках можно делать замены (чаще всего), их можно двигать и многое другое.
  9. Прыжки по тексту. Кое-что помимо Home-End, Page Up-Page Down. прыжки абзацами, предложениями, блоками кода, сдвиг экрана относительно курсора, поиск по слову и многое другое.
  10. Выделение текста. Общеизвестная техника и удобные секреты. См. ниже про режим классического выделения, который к базовой технике не относится.
  11. Скороговорки: несколько удобных сокращений
  12. Текстовые объекты: содержимое скобок, строки в кавычках, блоки кода, абзацы, предложения, слова и многое другое.
  13. Стрелки. Секреты перемещения курсора на символ влево-вправо и на строку вверх-вниз.
  14. Что можно в режиме вставки. Стандартные вещи и немножко волшебства.
  15. Приятные особенности режима замены. Режим замены - печати поверх текста - в Виме лучше, чем в обычных редакторах.
  16. Вход в режим вставки. А вы думали, только i?
  17. Набор текста. Что у нас есть в режиме вставки, чтобы бодрее печатать.
  18. Команды на g. Сама клавиша g работает как shift, открывая новые возможности, и много таких команд есть кроме gg. Лучше знать, что есть под рукой, верно?
  19. Команды на z. То же самое, что и для g. Но команд меньше и они сильнее сгруппированы.
  20. В начале было Слово. О словах в Вим.
  21. Регистр-выражение: как вычислить что-то "на лету"
  22. Табуляция: всё про работу с этим особым символом, который может быть так удобен и который может доставить столько проблем.
  23. Режимы. Обзор.

Настройка и удобства

  1. Некоторые удобства: мышь, подсветки, цветовая схема, номера строк, русская раскладка, автозамены и горячие клавиши.
  2. Горячие клавиши: как привязать любую команду к клавише или последовательности. Это тонкая настройка Вим под себя.
  3. Сокращения: как задать аббревиатуры, которые сами раскрываются в тексте: например dblpr в DOUBLE PRECISION или hte в the.
  4. Как сделать меню, закинув туда сложные команды. Тонкая настройка. Например, можно сделать меню проверки орфографии и выбирать в меню язык (или выключать проверку). Или сделать меню на выход и выходить без сохранения, с сохранением, из всех вкладок...
  5. Файл .viminfo. Как не потерять при выходе то, что хотелось бы сохранить. Оно, конечно, само работает, но есть као-какие настройки и кое-какие возможности, которые можно задействовать. Например, автопереход при открытии файла туда, где были на момент выхода.
  6. Строка статуса, она же информационная строка. Как настроить "внизу" вывод нужной вам информации: имя файла и его длина, позичия курсора и процент текста выше него, тип и кодировка файла, и многое другое.
  7. О позиции в тексте: как визуально отметить строку и столбец под курсором, и кое-что еще.
  8. Про мышь. Тонкости настройки этого удобного устройства.
  9. Использование файлов-шаблонов. Чтобы при создании нового файла с данным расширением там уже что-то было.
  10. Вставка шаблонных конструкций. Как по нажатию клавиши вставить в текст конструкцию с полями, которые еще и содержат подсказку. Вроде "ФИО: [Фамилия, Имя Отчество]", причем подсказка исчезает сама, когда начинаешь вводить текст.
  11. Резервная копия: настройка копии файла, которую Вим создает на случай сбоев или чтобы иметь нетронутую версию исходного файла.
  12. Распознавание типа файла. Полезный плагин в поставке. Можно настраивать Вим на файлы данного типа, перекрывать или дополнять встроенное поведение, вводить свои типы, ориентироваться не только по имени файла (расширению обычно), но и совать нос в содержимое.
  13. Типы файлов и отступы. Продолжение предыдущей заметки о типах файлов, на сей раз настройка отступов. Немного рассказано о настройке встроенных индент-плагинов для популярных языков.
  14. Команда set. Знакомимся с опциями поближе. Возможность задавать значения, смотреть их, дополнять или убавлять что-то, не задавая всё... например, если опция содержит список флагов или каталогов.
  15. Локальные опции. Кое-что имеет смысл задавать для данного файла только.
  16. Настройки в документе. Возможность дать указания Виму прямо в тексте документа.
  17. Чтение системной справки по слову под курсором. Что читает справку - настройте сами. Может быть сам Вим, может быть системный man, может быть perldoc или что вы там используете.
  18. Что делать с бипом? Можно ли противный звуковой сигнал отключить или заменить чем-нибудь другим?
  19. Создание своих :команд командной строки.
  20. Создание своих операторов: команд, работающих по движению.
  21. Настройте Вим своей девушке: как сделать менюшечки и подсказочки.
  22. Режим обычного редактора, или режим вечной вставки (расскажу, как оттуда выйти)))) Со вступлением в стиле Данте!
  23. Заголовок окна. Как задать в заголовке системного окна содержательный текст.
  24. Три плагина в поставке: мелочи, но приятные. Особенно поиск запущеного Вима, в котором открыт данный файл. Но и перевернуть мышь полезно, если вы левша. А если пишете на bash, то и третий плагни вам понравится.
  25. Подтверждение действий. "Вы точно уверены, что хотите перезаписать этот файл, или подумаете еще немного?" Если так нравится, то это несложно.
  26. Переход на вкладку с данным файлом - если открыли файл, который уже открыт, то хотелось бы увидеть открытый, а не открывать заново.
  27. Модификаторы имен файлов. Вещь необходимая для запросов типа "в том же каталоге, что и этот" или "с тем же именем, но расширение другое".
  28. Свои текстовые объекты. Помимо слов, скобок, предложений и абзацев - что хотите: числа, блоки кода Питона, весь текст, и т.п.

Возможности

  1. Вкладки и окна. Как работать с несколькими файлами.
  2. Фолдинг: сворачивание блоков текста. Для программиста необходимость, но и в общем случае полезно.
  3. vimdiff: работа с различиями. Как использовать окна, раскраску и фолдинг для анализа различий в двух файлах.
  4. Undo: отмена изменений. Анду неограниченный практически. Рецепты и подводные камни.
  5. Числа в тексте: инкремент и декремент. Числа в тексте это числа, и для них есть некоторая арифметика.
  6. Макросы: запись и использование. Автоматизация длительных серий команд. Можно запомнить серию и потом воспроизвести. Осторожно только, чудес Вим не обещает.
  7. Закладки-метки — запоминание позиции в тексте. В большом файле важно уметь быстро положить закладку и потом вернуться к ней.
  8. Визуальные закладки — как отметить место в тексте. Это про визуальные закладки. Вещь удобная, но требуется подготовка.
  9. Автодополнение: слов, строк, синонимов. Автодополнение слов из файла и "соседних" файлов равно как и строк, у вас уже есть. При минимальной настройке можно получить еще допонение слов из словаря, из тезауруса (словаря синонимов), тегов или файлов.
  10. Сортировка строк текста. Очень полезно для текстовых форматов данных. Инструмент Вим очень мощный! Можно сортировать по тексту, по числу, по выражению, с пропуском выражения, без учета регистра, в обратном порядке, с пропуском повторов...
  11. Смена регистра символов. Много любопытной информации про регистр вообще и удобные возможности Вима для смены регистра.
  12. Режим классического выделения текста. Не очень полезный режим, но может пригодиться для создания форм и прочих продуктов на базе Вим. А может, кому и понравится, особенно если повесить на горячую клавишу
  13. Редактирование двоичных файлов. Редко надо, но когда надо, то очень полезно!
  14. Минутка юмора. Шутки про и пасхалки в Вим.
  15. История команд: окно для просмотра и редактирования команд
  16. Сессии: как можно сохранить настроенную конфигурацию для другого раза.
  17. Кодировки и концы строк. Важный вопрос, на самом деле. Много крови может попортить. Как прочесть файл не в той кодировке, как сохранить. Как бороться с концами строк в стиле DOS под Линукс (и наоборот).
  18. Автокоманды. Важная вещь, но для специалистов. Можно реагировать на происходящие события: очень полезно! Ничего сложного, на самом деле. Обычное дело отработать событие "открылся новый файл с расширением .txt" или "открывается старый файл .zip" или "включен режим вставки" или "нажата клавиша" или "клавиши давно не нажимались".
  19. Списки прыжков и правок. Вим запоминает ваши перемещения по тексту и его изменения. И этим можно пользоваться.
  20. Про метки поподробнее. Помимо меток a-z, есть и системные, которые Вим ставит сам, и ими можно пользоваться.
  21. Конвертация в HTML. Есть в Вим такая возможность: сохранить текст в формате html, с сохранением оформления, фолдов, номеров строк и прочего.
  22. Иерархические списки: отступы и фолдинг.
  23. Редактирование таблиц данных. Удобные возможности для работы с таблицами, в том числе виртуальные позиции и несмещающее редактирование.
  24. Статистика по файлу. Как узнать число слов, символов и прочего.
  25. Сокрытие текста (conceal): вариант подсветки синтаксиса с заменой текста одним символом (\lambda → λ) или сокрытием текста вообще. В файле и памяти текст есть, но на экране не отображается или изображается замещенным одним символом. Удобно для ТеХ (см).
  26. Ввод символов Юникода. Разные способы ввести то, чего нет на клавиатуре.
  27. Работа с Юникодом: про сам Юникод, поиск, комбинирование символов и средства Вим для работы со сложными символами.
  28. Печать в Postscript. Удачное дополнение к конвертации в HTML (см. выше). Возможность распечатать текст с сохранением раскраски и всего прочего.
  29. Вим как more/less. Возможность использовать Вим как системный пейджер.
  30. Повторные действия. Как упростить рутину?
  31. Окна. Работа с окнами в Вим.
  32. Окно предпросмотра. Есть такое спецокошко.
  33. Выравнивание по ширине. Удобный плагин в поставке для выравнивания обоих краев текста путем вставки пробелов.
  34. Автосохранение файла. Если хотите, то это можно.
  35. Если файл изменился. Вим реагирует на внешние изменения, стараясь не запортить.
  36. Тонкости поиска. Все нюансы.
  37. Команда замены. Все тонкости.
  38. Практика замены. Приёмы из жизни.
  39. Терминал в окне Вим.
  40. Деревья правок. Отмена отмен.
  41. Свойства текста. Можно приписать произвольному тексту какие-то свойства и, например, раскрасить его или найти потом по свойству.

Вим для программиста

  1. Подсветка синтаксиса. Как раскрасить текст, чтобы было удобно с ним работать. Готовые схемы и изготовление своих.
  2. Вим как IDE. Настройка Вим для программирования: редактирование исходного кода, работа со многими файлами, учет синтаксиса, компиляция, обработка ошибок в коде, форматирование кода и комментариев.
  3. QuickFix: исправление ошибок в коде, поиск по файлам...
  4. Скобки: методы работы с ними. Скобки везде, и для работы с ними есть много удобных штук.
  5. Тэги: переходы к ключевым словам. При работе с программными проектами в десятки файлов вещь нужная.
  6. Автоматические отступы в программном коде. Разные способы автоматической и полуавтоматической расстановки отступов. Даже для Питона есть вариант.
  7. Вим и Фортран. Специальные настройки, предусмотренные для древнейшего и самого лучшего языка для расчетов.
  8. Форматирование комментариев в программном коде. Вим кое-что знает об этом, а чего не знает - можно ему объяснить.
  9. Команды квадратных скобок. В основном, для Си: прыжки и переходы особого вида.
  10. Плагин MatchIt. удобное перемещение по всяким парам типа begin-end в программном коде.

Набор текста на естественном языке

  1. Раскладки клавиатуры: как печатать по-русски, но чтоб команды остались доступны. Заодно можно обойтись без системной русской раскладки.
  2. Вим и ТеХ. Инструменты и настройки, предусмотренные специально для ТеХ, LaTeX и т.п.
  3. Проверка орфографии. Для разных языков и диалектов. Да, есть и такое. Заметка вышла 1 сентября. Если ты школьник и владеешь Вим — респект.
  4. Форматирование текста. Отступы, выравнивание, переносы строк.
  5. Диграфы — способ вводить символы Юникода без запоминания кодов, а парой символов. Всякое такое: ±√½ χ² π א る∫
  6. Ввод спецсимволов — способ вводить спецсимволы, такие, как символ конца строки или табуляции. Важно для привязок.
  7. Вим и иврит. Поддержка иврита в Вим. Очень серьезная! Никудот, дагеш, режим "справа налево", раскладки: "родная" и фонетическая... И всё это у вас уже есть!
  8. Ввод юникодного текста. Когда по одному символу вводить уже не годится, надо просто печатать на том языке, на котором вам надо.
  9. Русская дореформенная азбука в Вим: моя раскладка с ятями и фитами.
  10. Вим и арабский язык. Письмо справа налево, харакат, магия преобразования букв - все есть!
  11. Раскладка Дворака. Плагин в поставке, раскладка тоже, да и вообще про раскладку и что она такое.
  12. Работа без переключения на латиницу. Так тоже можно, хотя не вполне удобно.
  13. Вим и греческий язык. Про сам язык много интересного.
  14. Хангыль: корейский алфавит в Вим. Переписывался с автором раскладки.
  15. Восточные письменности. Идут в поставке!

Безопасность и секретность

  1. Шифрование файлов. Безопасность, криптография, будни плаща и кинжала. Да, Вим способен зашифровать файл и расшифровать его прозрачно для пользователя. Тонкости и подробности.
  2. Шифр ROT13 для сокрытия текста на экране и других целей. Простой шифр сдвига. Вим может зашифровать и расшифровать.
  3. Песочница. Есть и такое в Вим: безопасное выполнение команд. Полезно бывает, особенно если работаете в токсичной среде.
  4. Сокрытие текста (см. выше): вариант подсветки синтаксиса с заменой текста одним символом может быть полезен для секретности.

Вим и система, работа со многими файлами

  1. Вкладки и окна. Как работать с несколькими файлами.
  2. Vim и bash — как выйти "в систему"? Иногда бывает нужно что-то сделать в командной строке, не закрывая редактор. Несколько способов. Сессии описаны, но подробнее есть отдельный материал.
  3. Параметры запуска Вим. Ключи, которые помогут запустить Вим так, как вам это надо. Перенаправление вывода в Вим, режимы (только для чтения, защищенный, шифрованный и т.д.), открытие файлов в окнах и вкладках...
  4. Список файлов. Как до них добраться и что с ними можно делать.
  5. Пакетные операции. Как сразу обработать много файлов.
  6. Поиск по файлам: vimgrep. Как найти искомое и как потом с этим работать. В чем разница с системным grep.
  7. Внешние фильтры: как пропустить текст через утилиту вне Вим.
  8. Поиск файлов. Как Вим находит то, что вы просили? И как попросить?
  9. Сетевые протоколы. Как в Вим добраться до удаленных (сетевых) файлов.
  10. Запуск файлов. Иногда файл надо открыть не в Вим как текст, а "где надо", в том числе выполнить как программу. Это можно и из файлового менеджера Вим, и из текста, если в нем указано имя файла.
  11. Файловый менеджер в Вим. Просмотр папок, файловые операции.
  12. Работа с файлами. Подробнее про файловый менеджер Вим.
  13. Файловые маски и подстановки. Крайне удобные штуки можно делать, выбирая файл по шаблону и преобразуя его путь/имя/расширение...

Регулярные выражения

  1. Регулярные выражение: введение. Как найти ВСЁ! Небольшое введение для начинающих.
  2. Регулярные выражения: квантификаторы. Как найти заранее неизвестное количество чего-то.
  3. Регулярные выражения: якоря. Они же "совпадения нулевой ширины". Граница слова, начало строки, начало совпадения, символ под курсором и все такое.
  4. Регулярные выражения: захваты. Как использовать уже совпавший текст? Нужно для замены или отлова повторов вроде "длинношеее" или "едва-едва" (или опечаток вроде "the the").
  5. Регулярные выражения: классы символов. Как описать набор возможных символов, которые могут совпасть в данном месте: это точка, которая "любой символ", или перечисление вроде [abc], и исключение, вроде [^xyz], и еще кое-что небесполезное...
  6. Магия регэкспов и регистр символов. О том, как трактовать символы: + это плюс или "один или более", и Ъ это то же, что ъ, или не то же. Иногда вам нужны сложные регулярные выражения, а иногда вам надо искать текст вида \\\///***+++. И Вим может помогать вам, а не препятствовать. Равно как и где-то III и iii это одно то же, а где-то нет, и это может быть важно и в целом, и при конкретном одном поиске.

Скриптовый язык

  1. Списки (массивы).
  2. Скриптовый язык: отладка. В Вим есть встроенный отладчик!
  3. Скриптовый язык: хронометрия. И профилировщик встроенный тоже есть.
  4. Автозагрузка функций. Когда нет желания держать всё в памяти или когда нужен план Б.
  5. Vimballs: формат пакетов для установки

Примеры из практики

Прочее

Продолжение следует...