如何在vim中使用csv文件

时间:2011-03-01 09:36:07

标签: vim plugins csv

我希望csv文件在vim中以与在Microsoft Office中打开相同的方式打开。数据应采用列格式,不应看到逗号,应轻松遍历。在vim的帮助下是否可以使用任何插件?

5 个答案:

答案 0 :(得分:20)

我可能稍后回答了这个问题,但为了完整起见,无论如何我都会回答。我做了csv plugin,可以做你想做的事。

其中,它允许:

  • 显示光标所在的列以及列数
  • 使用:SearchInColumn命令
  • 在列中搜索文本
  • 突出显示光标所在的列:HiColumn命令
  • 使用:ArrangeColumn命令
  • 以可视方式排列所有列
  • 使用:DeleteColumn命令
  • 删除列
  • 使用:Header:VHeader命令
  • 显示垂直或水平标题行
  • 使用:Sort命令
  • 对列进行排序
  • 使用:Column命令
  • 复制列进行注册
  • 使用:MoveCol命令
  • 将列移到另一列后面
  • 使用:SumCol命令计算列中所有值的总和(您也可以定义自己的自定义聚合函数)
  • 使用正常模式命令(W向前,向后H,K向上,J向下)移动列
  • 设置一个很好的语法高亮,隐藏分隔符,如果你的Vim支持它

答案 1 :(得分:9)

您可能希望将sc视为另一种选择。请查看此linux journal page

答案 2 :(得分:7)

以下是在vim中使用CSV文件的一些提示:

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

我不确定是否有办法在列中显示它,没有逗号,但该链接中的提示允许vim非常容易地遍历和操作CSV。

答案 3 :(得分:6)

我尝试过使用Christian的csv插件,它可以快速查看csv文件,尤其是当您需要查看许多不同的文件时。

然而,当我要多次查看相同的csv文件时,我将文件导入sqlite3,这使得进一步分析很多更快更容易执行

例如,如果我的文件如下所示:

file.csv:
field1name, field2name, field3name
field1data, field2data, field3data
field1data, field2data, field3data

我创建了一个新的sqlite db(从命令行):

commandprompt> sqlite3 mynew.db

然后在db中创建一个表以将文件导入:

sqlite> create table mytable (field1name, field2name, field3name);
sqlite> .mode csv
sqlite> .headers ON
sqlite> .separator ,
sqlite> .import file.csv mytable

现在新表格' mytable'包含文件中的数据,但第一行是存储您通常不想要的标题,因此您需要将其删除(在字段值周围使用单引号;如果您使用双引号,则可以使用ll删除所有行):

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

现在,您可以轻松查看数据,按复杂公式过滤,按多个字段排序等。

sqlite> select * from mytable limit 30;

(对不起,这变成了一个sqlite教程,但似乎每次我导入sqlite,我最终花费更多时间使用vim / less / grep / sort / cut比我刚刚进口的那样。)

答案 4 :(得分:6)

还有rainbow_csv个vim插件。它将突出显示不同“彩虹”颜色的csv / tsv文件列,并允许您使用Python或JavaScript表达式编写类似SQL的SELECT和UPDATE查询。

demo rbql screencast