[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:00646] backward-sentence



亀井さん、こんにちは。
emacs lisp な話題で申し訳ありませんが、
次のようにしたところ、backward-sentence が
ちゃんと働いてくれません。どこに問題があるのか
お教えいただけますでしょうか?
----------------------------------------
(defvar-local sentence-end "\\(\\([.?!][]\"')}]*\\|[.?!][]”
’)}〕〉》」』]*\\)\\($\\|\t\\|  \\)\\|。\\)[ \t\n]*")

(defun forward-sentence (&optional (arg 1))
  (interactive "p")
;  (or arg (setq arg 1))
  (while (< arg 0)
    (let ((par-beg (save-excursion (start-of-paragraph-text) (point))))
      (if (scan-buffer (concat sentence-end "[^ \t\n]") :regexp t :reverse t
:limit par-beg :tail t :case-fold t)
   (goto-char (1- (match-end 0)))
 (goto-char par-beg)))
    (setq arg (1+ arg)))
  (while (> arg 0)
    (let ((par-end (save-excursion (end-of-paragraph-text) (point))))
      (if (scan-buffer sentence-end :regexp t :limit par-end :tail t
:case-fold t)
   (skip-chars-backward " \t\n")
 (goto-char par-end)))
    (setq arg (1- arg))))

(defun backward-sentence (&optional (arg 1))
  "Move backward to start of sentence.  With arg, do it arg times.
See `forward-sentence' for more information."
  (interactive "p")
;  (or arg (setq arg 1))
  (forward-sentence (- arg)))

----------
須田誠也
EZU11330@xxxxxxxxxxx

Index Home