ascii-art для vim

Научился рисовать в виме псевдографикой. Понял, что это будет хорошим подспорьем и ценным навыком. Очень часто хочется оформить данные таблицей или сделать простейший набросок от руки. Я привык иллюстрировать свои записи в бумажной записной книжке небольшими схемами-набросками и в АБТФ этого некоторое время не хватало.

Разумеется, есть Libre Office, есть Google Docs, есть M$ Office в конце-концов. В их тексте можно делать рисунки, можно вставлять таблицы, но как по мне это типичное не то. Еще есть масса органайзеров, которая позволяет вставлять таблицы и рисунки (а-ля WinOrganizer не к ночи будь помянут) и делать разные выделения шрифтов (если мне не изменяет склероз это называется RTF — rich text format).

Когда я перешел на текстовый режим накопления информации — с этими ограничениями пришлось разбираться по отдельности. Легче всего было с RTF — вместо выделения шрифтов можно было использовать тестовую разметку где *выделение текста* делается особыми знаками разметки. Сначала это была чисто стихийная разметка, потом я перешел на markdown — как наиболее подходящий и удобный формат. И сразу ощутил преимущества — во-первых хорошая наполненность текста, во-вторых возможность оформлять документ, не особо отвлекаясь на то, как он будет выглядеть. Но это — отдельный разговор. Как и вопрос математических формул, которые, как оказалось тоже достаточно удобно и наглядно формируются через Maxima.

С картинками и таблицами я пришел к тому, что если мне нужен рисунок или таблица — я делаю их отдельно, кладу в «хайв» (мое хранилище для нетекстовых файлов) и ставлю в заметках ссылку на этот файл. У меня в vim работает универсальный просмотрщик по — нужный файл легко просмотреть встав на его линк курсором и нажав . Аналогично можно просмотреть любую сетевую ссылку — это единый механизм и он очень удобен.

Получается запись в стиле:

~/hive/jpg/map20090701.jpg
карта маршрута на первое июля

или

~/hive/odm/jrn20090701.ods
рабочий журнал по 1-ому числу

или даже

~/hive/djvu/КРИ200808.djvu
сканы записной книжки за август 2008-го года

или даже

https://tengu911.wordpress.com/cat/
Тематический каталог заметок

Недостстаток такой схемы очевиден — нельзя посмотреть все «сразу в тексте» + нужно ждать пока загрузится просмотрщик. Еще нужно, чтобы документ лежал на своем месте (в линуксе это как раз не проблема, кроме того я кладу в hive в основном свои схемы и документы, так что он получается не очень большого размера и его можно постянно держать на диске и флэшке, которую я ношу с собой).

Преимущества — схема поддерживает любой формат — любой, который может обработать операционная система. От картинок до видеофайлов. Эти файлы не засоряют и не увеличивает размер основного файла (в WinOrganizere того поколения, которым я пользовался, стоило добавить в текст достаточно много картинок и таблиц и файл начинал грузиться и работать «со скрипом»). Даже если файл куда-то запропастится — в ссылке остается его имя, по которому его можно отыскать на диске. Эта схема с моей точки зрения прекрасно вписывается в принцип KISS.

Но. При всем при этом ни старая система, ни новая мне не нравилась. То есть я заметил, что есть определенный класс задач, которые не подходят под эту систему вообще. Как я описывал это выше — часто делая заметки в бумажной записной книжке в этой же книжке рисуешь картинки и набрасываешь таблички. Набрасываешь от руки — поскольку тут важен образ, схема, а не точное или «красивое» изображение. У Макса Фрая был хороший термин для таких вещей «заметки на салфетках».

Между прочим, подобные наброски используют достаточно продвинутые люди. Например, заглянув в блог Шаттлворта, можно обнаружить там массу таких вот «салфеточных набросков» — например в качестве иллюстраций к интерфейсу Unity или как иллюстрацию к индикации на панели.

Когда хочется набросать нечто подобное в текстовых заметках «для себя», запускать для этого большой программный пакет типа офиса, GIMP’а или автокада — все равно что в реальности ради небольшой схемы тащить записную книжку на кульман и чертить в ней при помощи штриховальных линеек, лекал, угольников, циркулей и прочих чертежных инструментов. Помянутый выше Шаттлворт использует для этого отдельное платное приложение (Balsamiq), но это имхо вообще перебор — мало того, что платить за «простые наброски» сотню долларов, так еще и загружать для этого целый AIR-комбайн. Еще тут играет роль определенная эстетика. Если «бальзамик» маскируется «под бумагу», то тут все честно — чистый киберпанк плейнтекст.

Это явно не мой путь. Наброски нужно делать быстро, на ходу, не заморачиваясь на что-то сложное, «в режиме работы мысли». Дойдя до этой мысли я вспомнил, что vim хорошо заточен на работу с псевдографикой. Закопавшись в интернеты, я нашел множество дополнений которые реализуют отдельные схемы работы — иногда достаточно сложные и интересные. Например, sketch или DrawIt!. Еще нашлось несколько интересных сторонних программ, которые хорошо сочетаются с vim — например boxes, которая идеально подходит для создания комментариев в тексте программ — я давно себе такое искал.

Однако, это было все не то. Я точно помнил, что когда-то, просматривая документацию самого vim’а читал про рисование таблиц и работу с псевдографикой «по дефолту» — средствами, уже встроенными в vim. Я искал простой инструмент, а не что-то сложное и что-то, что нужно устанавливать в редактор дополнительно. И я это нашел.

Все это можно почитать или в родном хелпе vim (набрать :h 25.5) или в онлайновой документации или выкачать русское руководство и найти в нем файл usr_25.rux.

Рисование в виме «псевдографикой» базируется на нескольких концепциях.

1. Виртуальный режим редактирования, который включается через комстроку:

set virtualedit=all

или в короткой форме:

set ve=all

Это позволяет курсору «гулять» по всему тексту вне зависимости от того, есть ли что-то в этом месте или нет. Как только пользователь вводит символ — вим автоматом добавляет нужные пробелы, если это необходимо. То есть можно поставить символ где угодно, не заботясь о том, чтобы отделить его от края строки нужным количеством пробелов.

2. Копирование блоками.

Ctrl+V (Ctrl+Q в M$ Windows) — включает режим выделения блоками. В котором можно выделять не строкой, а прямоугольным (или квадратным) блоком — например выделить колонку таблицы и переставить ее в другое место.

3. Режим виртуальной замены. Если вместо r сделать gr — при замене будут подставлены нужные пробелы. Аналогично если нужно заменить много символов — можно сделать gR. А еще рулит массовая замена — если что-то выделить, потом нажать r и ввести любой символ ( = например) — то выделение будет забито им. То есть можно в строке:

123456

Выделить цифры с 2 по 5, дальше не выходя из режима выделения набрать r и любой символ (например #) — после чего получим:

1####6

В сети при желании можно накопать несколько хороших видеороликов, иллюстрирующих работу в этих режимах. В частности работу в режиме визуального блока (очень подробное руководство — must see, даже если вы не работаете с псевдографикой), иллюстрация работы с псевдографикой средствами vim и прочая и прочая. Правда режим virtualedit=all мне пока не встречался, хотя он чертовски удобен для рисования такой графикой.

К сожалению, не могу привести ничего из набросков — они делаются в основном по очень личным разделам информации. По опыту использования могу уже сказать, что получается чертовски удобно. Особенно удобно работать с «текстовыми» таблицами. Поменять колонки местами, вписать в колонку новое значение с помощью виртуальной замены и так далее и тому подобное. Там где не нужно строить «вычислительные таблицы» — то есть там где таблица составляется для себя, составлять ее с помощью ascii-art’а намного удобнее и приятнее.

Реклама

4 Responses to ascii-art для vim

  1. Как-то не заморачивался с этим, но все равно интересно, спасибо. :)

  2. Оно во-первых неочевидно, во-вторых достаточно глубоко запрятано в документацию. Ну и в век широкополосных интернетов ascii-art постепенно уходит со сцены. Если еще не ушел.

  3. Longman:

    уходит, да. что очень обидно. ибо есть в аскии-арте своя прелесть. так же как, например аудио-треки, идущие с кряками для софта под оффтопик.

  4. Угумс. Об ascii-арте, как искусстве я даже не говорю :((( Тут вообще теряется целый пласт.

    Кстати, сама графика, вполне прижилась :) Оказывается, сделать рисунок и закинуть его в сеть или в методичку (часть моей жизни проходит в писании всяческих руководств) очень просто.

    Не нужно никакого хостинга картинок. Просто несколько тегов:

    <pre><code>
    
    </pre></code>
    

    Собственно, если сделать отступ, то маркдаун сам пропишет остальное.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: