Я хочу, чтобы файл csv был открыт в vim так же, как он открывается в офисе Microsoft. Данные должны быть в формате столбцов, а запятые не должны быть видны, и их следует легко перемещать. Возможно ли это в vim с помощью любых плагинов?
Как работать с csv файлами в vim
Ответ 1
Вероятно, вы захотите взглянуть на sc как на альтернативу. Посмотрите на эту страницу журнала Linux
Ответ 2
Я, вероятно, чуть позже отвечу на этот вопрос, но для полноты я все равно отвечу. Я сделал плагин CSV, который должен делать то, что вы хотите.
Среди прочего, это позволяет:
- Показать, на каком столбце находится курсор, а также количество столбцов
- Поиск текста в столбце с помощью команды
:SearchInColumn
- Выделите столбец, в котором используется курсор
:HiColumn
команда:HiColumn
- Визуально расположите все столбцы с помощью команды
:ArrangeColumn
- Удалить столбец, используя команду
:DeleteColumn
- Отобразите вертикальную или горизонтальную строку заголовка с помощью команды
:Header
или:VHeader
- Сортировать столбец с помощью команды
:Sort
- Скопируйте столбец для регистрации, используя
:Column
команду:Column
- Переместите столбец за другим, используя команду
:MoveCol
- Вычислите сумму всех значений в столбце с помощью команды
:SumCol
(вы также можете определить свои собственные функции агрегирования) - Перемещайтесь по столбцам с помощью команд обычного режима (W вперед, H назад, K вверх, J вниз)
- устанавливает хорошую подсветку синтаксиса, скрывая разделитель, если ваш Vim поддерживает его
Ответ 3
Вот несколько советов по работе с CSV файлами в vim:
http://vim.wikia.com/wiki/Working_with_CSV_files
Я не уверен, есть ли способ показать его в столбцах без запятых, хотя подсказки в этой ссылке позволяют vim легко перемещаться и управлять CSV.
Ответ 4
Я пробовал плагин Christian csv, и он полезен для быстрого просмотра файлов csv, особенно когда вам нужно просмотреть много разных файлов.
Однако, когда я собираюсь смотреть на один и тот же CSV файл несколько раз, я импортирую этот файл в sqlite3, что значительно ускоряет и облегчает дальнейший анализ.
Например, если мой файл выглядит так:
file.csv:
field1name, field2name, field3name
field1data, field2data, field3data
field1data, field2data, field3data
Я создаю новую базу данных sqlite (из командной строки):
commandprompt> sqlite3 mynew.db
Затем создайте таблицу в БД для импорта файла в:
sqlite> create table mytable (field1name, field2name, field3name);
sqlite> .mode csv
sqlite> .headers ON
sqlite> .separator ,
sqlite> .import file.csv mytable
Теперь новая таблица "mytable" содержит данные из файла, но в первой строке хранится заголовок, который вам обычно не нужен, поэтому вам нужно удалить его (используйте одинарные кавычки вокруг значения поля; если вы используете double цитаты вы удалите все строки):
sqlite> delete from mytable where field1name = 'field1name';
Теперь вы можете легко просматривать данные, фильтровать их по сложным формулам, сортировать по нескольким полям и т.д.
sqlite> select * from mytable limit 30;
(Извините, это превратилось в учебник по sqlite, но, похоже, каждый раз, когда я не импортирую в sqlite, я трачу гораздо больше времени на использование vim/less/grep/sort/cut, чем если бы я просто импортировал в первое место).
Ответ 5
Также существуют rainbow_csv vim plugin. Он будет выделять столбцы файла csv/tsv в разных цветах "радуги" и позволит вам писать SQL-запросы SELECT и UPDATE с использованием выражений Python или JavaScript.