Emacs函数用printfs包装文本

时间:2009-03-03 19:14:01

标签: emacs formatting

一些语言,如Perl,支持打印预先格式化的代码:

print <<EOL
  a line
  another line
  and another.
EOL

有些语言没有。

对于那些没有的,我希望能够编写我的文本,然后将其转换为一堆printfs:

printf "a line\n";
printf "another line\n";
printf "and another\n";

进行此转换的好方法是什么? (最好是在emacs中)

3 个答案:

答案 0 :(得分:2)

(defun my-add-printf (b e)
  "Add printf's to region"
  (interactive "r")
  (let ((comment-start "\tprintf \"")
        (comment-end "\\n\";"))
    (comment-region b e)))

答案 1 :(得分:1)

除非我每天必须多次这样做,否则我可能只是以交互方式进行:

M-x query-replace-regexp RET .* RET printf "\&\\n"; RET

答案 2 :(得分:1)

只是想建议另外两种方法,确保启用cua模式然后在开始时进行C-enter,按下直到到达最后一行(同一列)并输入'printf''。

另一个是做一个宏。输入以下内容:

C-x ( 
printf "
C-e
";
C-a
C-n
C-x )
C-x e
e e e e e e e e ....