На хабре уже есть посты про удивительные возможности org-mode — раз, два и три. В этом экскурсе я хочу рассказать ещё об одной возможности, с помощью которой можно пользоваться таблицами в текстовом редакторе (да, я про Emacs) без боли и унижения. А в org-mode таблицы достаточно просты и удобны:
| ip | description | users |
|--------------+----------------------+-------|
| 192.168.0.11 | Бухгалтерия | 2 |
| 192.168.0.12 | Касса1 | 1 |
| 192.168.0.13 | Касса2 | 1 |
| 192.168.0.14 | Приёмная | 2 |
|--------------+----------------------+-------|
| | Всего пользователе=> | 6 |
Итак, поехали: активируем org-mode выполнив M-x org-mode RET или открыв файл .org в emacs.
1. Создание и навигация по таблице
Таблицы создаются просто: C-c | (shift + в английской раскладке). Этой же комбинацией можно превратить выделенную область текста в таблицу.
На запрос 'Table size Columns x Rows [e.g. 5x2]:' в минибуфере выбираем размер таблицы — и emacs рисует нам симпатичную таблицу в ASCII:
| | | |
|---+---+---|
| | | |
| | | |
| | | |
Перемещение между ячейками — Tab, Shift+Tab, RET. Перерисовка и выравнивание таблицы происходит при каждом перемещении или по С-с. Заполненная таблица выглядит примерно так:
| ip | description | users |
|--------------+----------------------+-------|
| 192.168.0.11 | Бухгалтерия | 2 |
| 192.168.0.12 | Касса1 | 1 |
| 192.168.0.13 | Касса2 | 1 |
2. Редактирование структуры таблицы
Emacs автоматически добавляет строку, если нажать Tab/RET в последней ячейке.
Добавление столбца выглядит интуитивно, если понимать добавление и удаление столбцов как расширение/сужение таблицы:
Удалить столбец — M-S-Left, добавить — M-S-Right
Удалить строку — M-S-Up, добавить — M-S-Down
Перемещение колонки влево/вправо — M-Left / M-Right. По аналогии, перемещение строки вверх/вниз: M-Up/ M-Down
3. Оформление и выравнивание таблицы
Если в начале первой ячейки поставить минус, emacs дорисует горизонтальную линию:
| ip | description | users | | ip | description | users |
|--------------+-------------+-------| |--------------+-------------+-------|
| 192.168.0.11 | Бухгалтерия | 2 | | 192.168.0.11 | Бухгалтерия | 2 |
| 192.168.0.12 | Касса1 | 1 | | 192.168.0.12 | Касса1 | 1 |
| 192.168.0.12 | Касса1 | 1 | | 192.168.0.12 | Касса1 | 1 |
| 192.168.0.14 | Приёмная | 2 | | 192.168.0.14 | Приёмная | 2 |
|- | | | => |--------------+-------------+-------|
Выравнивание таблицы происходит автоматически, но можно и указать фиксированную ширину для столбца — задав число в треугольных скобках в любой ячейке этого столбца:
| ip | description | users | | ip | description | users |
|--------------+---------------------------------+-------| |--------------+----------------------+-------|
| 192.168.0.11 | Бухгалтерия | 2 | | 192.168.0.11 | Бухгалтерия | 2 |
| 192.168.0.12 | Касса1 | 1 | | 192.168.0.12 | Касса1 | 1 |
| 192.168.0.13 | Касса2 | 1 | | 192.168.0.13 | Касса2 | 1 |
| 192.168.0.14 | Приёмная | 2 | | 192.168.0.14 | Приёмная | 2 |
|--------------+---------------------------------+-------| |--------------+----------------------+-------|
| | Число пользователей компьютеров | | => | | Число пользователе=> | |
| | <20> | | | | <20> | |
Слишком длинные ячейки укорачиваются и помечаются знаком =>, такие ячейки можно редактировать по C-c ` в отдельном буфере, по окончании редактирования — нажать C-c.
4. Функции в таблице
Внимания заслуживает, пожалуй, только суммирование: C-x + суммирует все числа в колонке, а С-y вставляет результат в текущую ячейку:
| ip | description | users |
|--------------+----------------------+-------|
| 192.168.0.11 | Бухгалтерия | 2 |
| 192.168.0.12 | Касса1 | 1 |
| 192.168.0.13 | Касса2 | 1 |
| 192.168.0.14 | Приёмная | 2 |
|--------------+----------------------+-------|
| | Число пользователе=> | 6 |
| | <20> | |
Заключение
Описанные возможности покрывают большинство базовых потребностей в таблицах. После данного экскурса можете смело удалять свой Calc/Excel и полностью пересаживаться на Emacs ;)
Ещё можно почитать по теме мануал по таблицам в org-mode.
Автор: reci