Как работать с csv файлами в vim

Я хочу, чтобы файл csv был открыт в vim так же, как он открывается в офисе Microsoft. Данные должны быть в формате столбцов, а запятые не должны быть видны, и их следует легко перемещать. Возможно ли это в 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.

demo rbql screencast