как работать с CSV-файлами в VIM - PullRequest
17 голосов
/ 01 марта 2011

Я хочу, чтобы файл CSV открывался в Vim так же, как он открывается в Microsoft Office. Данные должны быть в формате столбца, запятые не должны быть видны, и их следует легко просматривать. Возможно ли в vim с помощью каких-либо плагинов?

Ответы [ 5 ]

20 голосов
/ 26 июля 2011

Я, вероятно, чуть позже отвечу на этот вопрос, но для полноты я все равно отвечу. Я сделал CSV-плагин , который позволит делать то, что вы хотите.

Помимо прочего, он позволяет:

  • Показать, на каком столбце находится курсор, а также количество столбцов
  • Поиск текста в столбце с помощью команды :SearchInColumn
  • Выделите столбец, в котором курсор использует :HiColumn команда
  • Визуально расположите все столбцы, используя команду :ArrangeColumn
  • Удалить столбец, используя команду :DeleteColumn
  • Отображение вертикальной или горизонтальной строки заголовка с помощью команды :Header или :VHeader
  • Сортировка столбца с помощью команды :Sort
  • Копировать столбец для регистрации с помощью команды :Column
  • Переместите столбец за другим, используя команду :MoveCol
  • Рассчитать сумму всех значений в столбце с помощью команды :SumCol (вы также можете определить свои собственные функции агрегирования)
  • Перемещение по столбцам с помощью команд обычного режима (W вперед, H назад, K вверх, J вниз)
  • устанавливает хорошую подсветку синтаксиса, скрывая разделитель, если ваш Vim поддерживает его
9 голосов
/ 01 марта 2011

Возможно, вы захотите взглянуть на sc как на альтернативу. Посмотрите на эту страницу журнала linux

7 голосов
/ 01 марта 2011

Вот несколько советов по работе с CSV-файлами в vim:

http://vim.wikia.com/wiki/Working_with_CSV_files

Я не уверен, есть ли способ отобразить его в столбцах без запятых, хотя подсказки в этой ссылке позволяют vim очень легко перемещаться и манипулировать CSV.

6 голосов
/ 08 марта 2016

Существует также rainbow_csv плагин vim. Он будет подсвечивать столбцы файла csv / tsv различными цветами радуги и позволит вам писать SQL-подобные запросы SELECT и UPDATE с использованием выражений Python или JavaScript.

demo rbql screencast

6 голосов
/ 01 сентября 2014

Я пробовал плагин csv от Christian, и он полезен для быстрого просмотра файлов 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' содержит данные из файла, но в первой строке хранится заголовок, который вам обычно не нужен, поэтому вам нужно его удалить (используйте одинарные кавычки вокруг значения поля; если вы используете двойные кавычки, вы удалите все строки):

sqlite> delete from mytable where field1name = 'field1name';

Теперь вы можете легко просматривать данные, фильтровать их по сложным формулам, сортировать по нескольким полям и т. Д.

sqlite> select * from mytable limit 30;

(Извините, это превратилось в учебник по sqlite, но, похоже, каждый раз, когда я не импортирую в sqlite, я трачу гораздо больше времени, используя vim / less / grep / sort / cut, чем Я бы в первую очередь импортировал).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...