[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: elisp, replace-regexp and re-search-forward
From: |
Seweryn Kokot |
Subject: |
Re: elisp, replace-regexp and re-search-forward |
Date: |
Mon, 01 Oct 2007 18:11:06 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux) |
weber <hugows@gmail.com> writes:
> Another version imitates what you would do if you were going to do it
> manually (jump one line, press ret, jump one line..) :
>
> (defun insert-lines (beg end)
> (interactive "r")
> (goto-char beg)
> (while (< (point) end)
> (insert "\n")
> (next-line 1)))
>
> Regards,
> weber
thanks for another approach. However I needed to modify the function a
little. So now I have two working functions
; works
(defun insert-lines (beg end)
(interactive "r")
(save-excursion
(let ((line 1)
(region-lines (count-lines beg end)))
(goto-char beg)
(while (< line region-lines)
(end-of-line)
(insert "\n")
(forward-line)
(setq line (+ line 1))))))
; works
(defun my-test (beg end)
(interactive "r")
(replace-regexp "\n" "\n\n" nil beg end))
and one which doesn't work
(defun insert-empty-lines (beg end)
(interactive "r")
(goto-char beg)
(while (re-search-forward "\n" end t)
(replace-match "\n\n" nil nil)))
namely if I select the following region from 1 (mark at 1) to 7 (mark
after 7)
1
2
3
4
5
6
7
I get something like this
1
2
3
4
5
6
7
(note that there is no \n after 5 and 6). It seems that the replacement
doesn't reach the end bound which was after number 7. Any ideas what is
wrong?
regards,
--
Seweryn Kokot