Ответ 1
Вероятно, вы захотите взглянуть на sc как на альтернативу. Посмотрите на эту страницу журнала Linux
Я хочу, чтобы файл csv был открыт в vim так же, как он открывается в офисе Microsoft. Данные должны быть в формате столбцов, а запятые не должны быть видны, и их следует легко перемещать. Возможно ли это в vim с помощью любых плагинов?
Вероятно, вы захотите взглянуть на sc как на альтернативу. Посмотрите на эту страницу журнала Linux
Я, вероятно, чуть позже отвечу на этот вопрос, но для полноты я все равно отвечу. Я сделал плагин CSV, который должен делать то, что вы хотите.
Среди прочего, это позволяет:
:SearchInColumn
:HiColumn
команда :HiColumn
:ArrangeColumn
:DeleteColumn
:Header
или :VHeader
:Sort
:Column
команду :Column
:MoveCol
:SumCol
(вы также можете определить свои собственные функции агрегирования)Вот несколько советов по работе с CSV файлами в vim:
http://vim.wikia.com/wiki/Working_with_CSV_files
Я не уверен, есть ли способ показать его в столбцах без запятых, хотя подсказки в этой ссылке позволяют vim легко перемещаться и управлять CSV.
Я пробовал плагин 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, чем если бы я просто импортировал в первое место).
Также существуют rainbow_csv vim plugin. Он будет выделять столбцы файла csv/tsv в разных цветах "радуги" и позволит вам писать SQL-запросы SELECT и UPDATE с использованием выражений Python или JavaScript.