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

連続読み時の改行の扱い& fill



井上です。

Reiko TAKAHASHI <HFC03614@...> writes:

> } # 英語だとアクセントは前の行の連続として保存されるのだろうか
> 
>  これ……どういう意味ですか?

BEPで英語をC-e b 等で連続読みさせたとき、行の変わり目でアクセントが立て
直しになるか、そこで切れたようになるかということです。
どうもならない雰囲気ではないですか?日本語だとなんでアクセント的にも切れ
るんだろう?

> *scratch*バッファ(?)に最初から書かれている文が1行でなかったことに気づい
> たとき(たしか3行ぐらい?)、一瞬びっくりしたのを思い出しました。
> BEPの英語の読みだと、改行位置は全くわからない気がします。
> 個人的にはわかったほうがうれしいかも……。

2回改行されているような場所では分かった方がいいと思います。1回でもそう
でしょうか。

> ただ、(これがBEPの守備範囲かどうかわからないのですが)1パラグラフを1論
> 理行にしてくれるauto-fill-modeがあったら私は便利に使えるだろうなと思いま
> す。

守備範囲ではないです……
ええと、これって「auto-fillしない」のとどう違うんでしょうか。
1パラグラフを1行に続けてしまうコマンドというのはちょっとつくってみまし
た。ascii文字が改行の前後いずれかにあるときは改行を半角スペースに、それ
以外は改行を単に削除します。
なんかまだおかしな動作をするみたいですが。
# 絶対に無駄なことをたくさんしている気がする……

以下のコードを.emacsに入れて再起動し、
M-x unfill-paragraph
とやると、現在いるパラグラフが1行になる「と思います。」
ついでに、適当な場所でC-SPCでマークしてどこかに移動し、M-x unfill-region
すると、カーソル位置とマークの間が1行につながる「と思います」。

;;;----ここから
(defun unfold-region (beg end)
  "remove newlines in region"
  (interactive "r")
  (goto-char beg)
  (while (search-forward "\n" end t)
    (if (or (and
	     (multibyte-string-p (char-to-string (char-before (match-beginning 0))))
	     (multibyte-string-p (char-to-string (char-after (match-end 0)))))
	    (eq end (point)))
	(progn
	  (replace-match "")
	  (setq end (1- end)))
      (replace-match " "))
    )
  (goto-char beg))

(defun unfold-paragraph ()
  "remove newline in paragraph"
  (interactive)
  (backward-paragraph)
  (let ((beg (point)))
    (forward-paragraph)
    (unfold-region beg (point))
    ))
;;;--ここまで


-- 
                    Koichi Inoue, ARGV
                    E-Mail: inoue@...
                    ICQ UIN: 74900690