Pull to refresh

Comments 50

С разделением столбцов табуляцией было бы удобнее, на мой взгляд. Файл физически можно не менять.
Тут каждому свое. При наличии табуляций повышается наглядность, но теряется достоинство «Более высокая плотность информации».

А в авторском варианте наглядность обеспечивается раскраской столбцов. Мне понравилось.

Мне тоже удобнее работать с файлами, разделенными табуляцией (и Rainbow CSV их также поддерживает), но если у вас уже есть готовый файл, разделенный запятой, то с ним тоже как-то надо работать. Тем более табуляция реально выравняет столбцы только при очень специфическом наборе условий, чтобы реально выравнять столбцы табуляцией, можно, наверно, использовать технологию elastic tabs, которая на сколько я понимаю из коробки нигде не работает.

По-моему, эта идея с цветовой дифференциацией штанов столбцов может оказаться удобнее в случае, когда все элементы в столбце плюс-минус одинаковой длины, но изредка встречаются гораздо длиннее: при выравнивании табуляцией у нас возникнет уйма пустого места из-за одного длинного названия.
Как вариант, интеллектуально скрывать слишком длинные строки. При длинных строках заглавия столбцов тоже уплывают. В таком случае, может оказаться не понятно к чему относится поле, даже если оно цветом подсвечено.
UFO just landed and posted this here
UFO just landed and posted this here
Надо запятые заменить на точку с запятой. Для Excel нужно в первой строке прописать sep=;
На всеми любимом regex101.com не группирует по строкам

В вашем случае автодетекция не сработала, т.к. файл очень маленький. Нужно вручную переключить язык на "CSV (semicolon)" в правом нижнем углу

В PyCharm есть удобная опция "View as table" (возможно, надо для этого установить плагин CSV). Мне кажется, это даже удобнее — можно сортировать по столбцам, например.

UFO just landed and posted this here

К своему стыду, я еще не освоил мультикаретку в Idea.

Мультикаретка не работает.
Эта таблица больше Excel, чем текстовый редактор. Например, можно сортировать строки по какой-либо колонке.


Плагин для CSV не нужен.
В целом, фича довольно гибкая и позволяет настроить любые разделители:


скриншот

скриншот

Принимаются предложения/просьбы насчёт реализации поддержки других редакторов?

Например, Notepad++
Действитиельно, Notepad++ в списке не хватает
Я думал на счет Notepad++, но там, кажется, была проблема в том, что сторонние расширения не могут задавать сколько-нибудь сложные регулярки, т.е. надо коммитить в core.
Очень нужен Notepad++!

Помню, что Colorer очень крутой и точно поддерживал regexp-ы, вполне возможно, что re из статьи даже править не придётся ;)

Было бы удобнее разделители (запятые) выделять одним и тем же цветом.
Спасибо, уже ближе к тому что нужно, обязательно попробую.

А пока уточню:
1. Нормально ли работает с переносом строк внутри «ячеек»? (Test case: В Excel есть таблица с ячейками с переносом строк; экспортировать ее в CSV)
2. Еще одна боль — очень длинные строки, например, 500 символов. Есть какие-то методы, как удобно отображать CSV, когда в некоторых «ячейках» присутствуют очень длинные значения?

Нет, к сожалению с переносом строк внутри ячеек работать не будет, я упомянул об этом в статье.
У меня есть версия для Vim, которая поддерживает перенос строк, но она пока не опубликована.
Вообще проблема CSV файлов с переносом строк в ячейках в том, что если в нем есть хоть один несбалансированный символ кавычек, то весь файл будет испорчен, т.к. автоматически невозможно угадать какая кавычка лишняя. Так же с такими файлами не будет работать random sampling и стандартные линуксовые тулзы такие как grep, wc. Многие алгоритмы на таком файле будут выполняться за O(N) вместо O(1).

Ага! Я может потом отдельную статью про RBQL напишу, но пока он еще немного сыроват
UFO just landed and posted this here
Идея скрывать колонки звучит круто и чем-то похожа на code folding только не по горизонтали, а по вертикали! Разумеется на данный момент ни один из редакторов ничего такого не поддерживает на сколько мне известно. Может быть только Atom с помощью каких-нибудь совершенно адских хаков. Задать цвет в VS Code, в принципе реально, но не с помощью синтаксической подсветки, а используя специальный пост-синтаксис цветовой декоратор. Историю для RBQL я давно планирую добавить, это довольно легко сделать.
UFO just landed and posted this here
В webview сразу теряется возможность редактирования текста стандартными инструментами редактора, единственным преимуществом перед column-alignment останется только компактность. Проще в том же webview сделать стандартную графическую решетку тогда. Расширение для браузера можно сделать, да. Но не факт что этим будет кто-то пользоваться, плюс поддерживать еще такую штуку у меня точно времени не хватит. Кстати, Electron — based Atom и VS Code уже в каком-то смысле можно считать браузерными расширениями. В Atom'е так вообще все подсвеченные токены — это просто набор span'ов, которыми можно манипулировать с помощью DOM.
UFO just landed and posted this here
Вот так пользуешь и не знаешь, что автор на Хабре. Спасибо!
Раньше я был в режиме читателя =)

Статья ни о чем. Нет ни слова о новой тесле и айфоне. Автор занимается ерундой.

Может кому пригодится, для Атома есть вот такая крутая штука для работы с CSV: Tablr
Гифка с принципом работы
image
Ещё было бы удобно чётные/нечётные строки как-нибудь разделять, к примеру, тем же оттенком/насыщенностью, но чуть более тёмным цветом (когда утомлён, иногда начинаю испытывать проблемы с позиционированием взгляда и промахиваюсь на строчку выше/ниже)
Отличная идея, спасибо! Может быть попробую ее реализовать, как опцию, правда для каждого редактора это придется делать по отдельности. Кстати, в Vim, например, есть опция cursorline, которая включает подсветку текущей линии. Не совсем то что вы предлагаете, но может быть подойдет как workaround. Что-то подобное есть и в VSCode (editor.renderLineHighlight), но там это глобальная настройка и ее, видимо, не так просто включить для каких-то конкретных файлов.

Можно делать настройки для языков. https://code.visualstudio.com/docs/getstarted/settings#_language-specific-editor-settings


Не в курсе внутренней кухни, но если плагин rainbowcsv добавляет язык csv, то будет примерно такая настройка:


"[csv]": {
  "editor.renderLineHighlight": "all"
}
Полезный плагин, но в свой работе мы используем разделители из нескольких символов. Насколько я понимаю, плагин такое не поддерживает.
Нет, не поддерживает. А как выглядит многосимвольный разделитель, если не секрет?
По сути он может выглядеть хоть как. Мы договорились об использовании ~#~. Позволяет избежать неприятных ситуаций, когда точка с запятой или запятая или табуляция etc, имеются в самих столбцах
А есть ведь текстовые редакторы (помимо Excel :) ), которые позволяют csv сразу открывать и редактировать в табличном режиме?
Если пользуетесь python/pandas, есть pandastable. Не помню правда как там с редактированием, увы.
Круто! В своё время очень не хватало такой штуки.
А для Emacs будет? (для Vim же есть :))

Оставлю тут ссылку на Miller, может кому-то пригодится. Позволяет манипулировать данными в форматах CSV, TSV, DKVP, JSON и не только. Unix-way утилита для командной строки, написано на С, без рантайм-зависимостей.
Только нашел и установил этот плагин, через пару дней статья ))

Спасибо, очень удобная штука. По крайней мере для того, чтобы быстро посмотреть оригинал файла. Запросы я не пробовал: необходимости нет.
Проникся идеей, и адаптировал её для старичка NEdit (только подсветку синтаксиса). Если кому-то нужно, то вот:
RainbowCSV.pats

Для использования: запустить
nedit -import path/to/RainbowCSV.pats
, потом Preferences → Save Defaults.

Несколько изменил регулярное выражение: с исходным NEdit выдавал ошибку «? operand could be empty», так что пришлось гарантировать, что подвыражения, к которым применяется квантификатор «?», не могут соответствовать (to match, как это правильно по-русски?..) пустой строке.
Круто! А вы не могли бы этот файл с README инструкцией выложить на github?
Sign up to leave a comment.

Articles