一些语言,如Perl,支持打印预先格式化的代码:
print <<EOL
a line
another line
and another.
EOL
有些语言没有。
对于那些没有的,我希望能够编写我的文本,然后将其转换为一堆printfs:
printf "a line\n"; printf "another line\n"; printf "and another\n";
进行此转换的好方法是什么? (最好是在emacs中)
答案 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 ....