我正在嘗試編寫一個elisp函數來獲取文本區域,引用每行,並在每行的結尾處添加逗號(除最後一行外)。Elisp檢查當前點是否在給定點之後的線上
這將是一個例子轉型:
從
Aaaa Bbbb CCcc
DDddd eeeee ffffffff
ggggg hhh iiii
要:
"Aaaa Bbbb CCcc",
"DDddd eeeee ffffffff",
"ggggg hhh iiii"
這是我到目前爲止有:
(defun quote-lines (p1 p2)
(interactive "r")
(save-excursion
(while (<= (point) p2) ; Would like to check if we are on
; the line after p2
(move-beginning-of-line nil)
(insert "\"")
(move-end-of-line nil)
(insert "\",")
(forward-line))
(move-end-of-line nil)
(delete-char 1)))
任何幫助決策我的elisp功能更多地道的也將不勝感激。
看起來沒問題,只是你沒有使用'p1',並且'move-beginning/end-of-line'只能用於交互式使用(Lisp代碼中首選沒有「move-」的版本)。你可以在循環前使用'(forward-line 0)',這樣你就知道每個迭代開始時這個點已經在行的開頭。 – Stefan