我希望csv文件在vim中以与在Microsoft Office中打开相同的方式打开。数据应采用列格式,不应看到逗号,应轻松遍历。在vim的帮助下是否可以使用任何插件?
答案 0 :(得分:20)
我可能稍后回答了这个问题,但为了完整起见,无论如何我都会回答。我做了csv plugin,可以做你想做的事。
其中,它允许:
:SearchInColumn
命令:HiColumn
命令:ArrangeColumn
命令:DeleteColumn
命令:Header
或:VHeader
命令:Sort
命令:Column
命令:MoveCol
命令:SumCol
命令计算列中所有值的总和(您也可以定义自己的自定义聚合函数)答案 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查询。