我有一个csv值的单行文本文件
我希望能够“漂亮地打印”文件以跨越多行以使其更具可读性
第1号代表没有。 csv值在下一节等等
e.g。
3,1,2,3,3,4,5,6
将转换为:
3,1,2,3
3,4,5,6
我对制作宏有点了解,例如
C-x (
C-s RET ,
C-x )
使用这个我可以做到:
C-u 3 C-x e
沿
我的关键点是如何使用文件中的值粘贴到arg C-u
也许我应该使用e-lisp函数作为我想要“保存”以便在emacs会话中持续使用的函数。是否可以保存宏?
感谢任何想法答案 0 :(得分:4)
我发现elisp比键盘宏更容易思考。怎么样:
(defun csv-line-breaks ()
(interactive)
(while (search-forward "," nil t
(1+ (string-to-number (thing-at-point 'word))))
(delete-char -1)
(insert "\n")))
(global-set-key (kbd "C-c b") 'csv-line-breaks)
在你的.emacs
中(或只是评估暂存缓冲区中的代码),你将点放在行的开头,然后点击C-c b
将行分成你的块想。
这是做什么的:
(thing-at-point 'word)
抓住在标点符号空格(或多或少)之间找到的任何内容。答案 1 :(得分:0)
您可能需要查看Emacs的csv-mode:http://emacswiki.org/emacs/CsvMode
虽然它可能无法完全满足您的需求,但它具有格式化可读性的功能,以及用于以各种方式复制csv文件的其他功能。