有没有一个很好的emacs模式来显示和编辑巨大的分隔符分隔文件?

unh*_*mer 28 csv emacs alignment

我一直在搜索没有找到一个模式,使编辑巨大的制表符/逗号/冒号分隔文件很容易.我一直想要一种模式,确保列始终排列,就像组织模式表一样.我知道我可以轻松地将整个文件转换为组织模式表,然后在我完成后将其关闭,但是对于大文件来说这会变得非常慢,并且对于快速编辑很麻烦(还有发生的问题)如果一个字段包含一个垂直条).所以有人知道我可以使用的模式或内置函数/变量,以便我可以得到一个像这样的文件

col1\tcol2\tcol3
very long column1\tcol2\tcol3
Run Code Online (Sandbox Code Playgroud)

显示像

col1               col2  col3
very long column1  col2  col3
Run Code Online (Sandbox Code Playgroud)

?(或许有一些颜色衬里隔板)

cho*_*oba 11

尝试csv-mode,至少在Emacs 24中有效.

csv-separators如果不使用默认值(逗号),可以设置变量以更改分隔符.

请参阅EmacsWiki.

  • 我最终使用了csv-mode,但是对齐整个文件太慢了,所以我使用这个只对齐可见行的键绑定:`(add-hook'csv-mode-hook(lambda()(define-key csv-) mode-map(kbd"Cc Cc")(defun csv-align-visible(&optional arg)"Align visible fields"(交互式"P")(csv-align-fields nil(window-start)(window-end)) ))))`(理想情况下,它会在滚动时对齐,但我无法让它工作得很好) (4认同)

phi*_*ils 10

也许你可以告诉我们你已经找到并拒绝了什么?

如果您一直在搜索,那么您肯定已经看过http://emacswiki.org/emacs/CsvMode?你没有提到它,或者说为什么它没有任何好处.

SES(Simple Emacs Spreadsheet)可能是一种有用的方法:

C-hig (ses) RET

您可以创建一个ses-mode缓冲区并将制表符分隔的数据放入其中(这是导入机制).

但是,它可能比你追求的更麻烦,而且我不确定它对"巨大"文件的表现有多好.

  • 另请注意,`csv-mode`现在在GNU ELPA中(并且在emacswiki中没有提到,因为我碰巧使用了被禁止的IP). (3认同)