Функция Emacs для переноса текста с помощью printfs - PullRequest
1 голос
/ 03 марта 2009

Некоторые языки, например 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 ]

2 голосов
/ 03 марта 2009
(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 голос
/ 09 марта 2009

просто хотелось предложить еще два способа: убедитесь, что режим 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 .... 
1 голос
/ 04 марта 2009

Если бы мне не приходилось делать это много раз в день, я бы, вероятно, просто делал это в интерактивном режиме:

M-x query-replace-regexp RET .* RET printf "\&\\n"; RET
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...