2011-03-01 43 views
15

我想要在vim中打開csv文件,方式與在Microsoft Office中打開的方式相同。數據應該採用列格式,不應該看到逗號,並且應該輕鬆地遍歷它。 vim可以在任何插件的幫助下使用嗎?如何在vim中使用csv文件

回答

7

下面是一些提示,在vim使用CSV文件的工作:

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

我不知道是否有在列,以顯示它的方式,沒有逗號,儘管該鏈接的提示讓VIM非常容易地遍歷和操作CSV。

18

我可能有點晚在回答這個問題,但出於完整性我反正回答。我做了csv plugin,這應該可以做到你想做的。

其中,其允許:

  • 顯示在其上的列以及列數
  • 搜索一個列內的文本使用:SearchInColumn命令
  • 突出顯示列中的光標是在其上光標正在使用:HiColumn命令
  • 使用:ArrangeColumn命令可視化排列所有列
  • 使用刪除列命令
  • 顯示使用:Header:VHeader命令
  • 排序一個柱,使用:Sort命令
  • 複製列使用:Column命令
  • 移動後面另一列一列寄存器使用:MoveCol命令的垂直或水平標題行
  • 使用:SumCol命令(也可以定義您自己的自定義聚合函數)計算列內所有值的總和
  • 移動通過使用正常模式下的命令列(W向前,H向後,K向上,J向下)
  • 設置了一個很好的語法突出顯示,隱藏定界符,如果您的Vim支持它
+0

嘿,這個插件的工作很棒。我今天花了一些時間按摩GeoNames的數據,這是一個拯救生命! – dguaraglia 2012-08-17 02:12:41

+0

我無法弄清楚如何使用csv插件默認顯示分隔符,否則它看起來很棒...... – stefanB 2013-08-18 23:21:44

+0

嘗試將變量g:csv_no_conceal設置爲1.如果這沒有幫助,請打開一個問題在github頁面。謝謝! – 2013-08-19 19:58:11

5

I」已經嘗試了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'包含來自文件的數據,但第一行是stori納克的頭,你不通常需要,因此需要將其刪除(確保發出此命令時,使用單引號!):

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

現在你可以很容易地看一下數據,通過過濾器複雜的公式,排序多個字段等

sqlite> select * from mytable limit 30; 

(很抱歉,這變成了SQLite的教程,但好像每次我導入到sqlite的時候,我用最終花費更多的時間vim/less/grep/sort/cut比我剛剛導入的第一位)。

3

還有rainbow_csv vim插件。它將突出顯示不同「彩虹」顏色的csv/tsv文件列,並允許您使用Python或JavaScript表達式編寫類似SQL的SELECT和UPDATE查詢。

demo rbql screencast